Probe Server IP Address Change – [NV] and additions – [OT, UK]

Our probe server in Las Vegas Nevada (US) will be changing IP addresses on 2015/03/18:
NV will change from 208.66.75.231 to 5.226.169.94

As NodePing continues to grow, we’ll also be adding two new probes on 2015/03/18:
Ottawa, Ontario (CA) – OT (199.167.130.19) in the North America region (NAM)
Bristol, England (UK) – UK (37.9.59.21) in the Europe region (EUR)

Please adjust your firewalls appropriately so your checks do not fail because of the probe IP addresses change and additions.

An always current and updated list of all the IP addresses for our probe servers can be found in the FAQ

[UPDATE – 2015-03-18 16:05GMT-6] – IP change for NV and additions for OT and UK are complete.

Probe Server IP Address Changes – [LD, TX]

Our probe servers in the following locations will be changing IP addresses on 2015/01/08:
LD will change from 87.117.200.68 to 5.2.16.148
TX will change from 23.92.75.43 to 107.155.78.66

Please adjust your firewalls appropriately so your checks do not fail because of the probe IP addresses changes.

An always current and updated list of all the IP addresses for our probe servers can be found in the FAQ.

[UPDATE – 2015-01-08 11:25GMT-7] – IP changes for LD and TX are complete.

Follow redirects for HTTP checks

We’re happy to announce a new optional feature for our HTTP checks – follow redirects.

Until today, NodePing website monitoring only supported the single HTTP request/response.  An often requested feature was the ability to follow HTTP redirect codes in the 300s and evaluate the check on the final page of the redirects.

redirect

We believe you should monitor everything, including your redirect pages. We recommend you create a separate check for the redirect and ensure the 301 or 302 status code and the header ‘Location’ is to the destination URL you expect and then create another check to monitor that destination URL. We still think this is a best practice for website monitoring and will help you pinpoint a failure more quickly should something happen to your redirect or destination URL.

We realize there’s a use case for monitoring HTTP responses that includes following redirects and we’re happy to include that option in our HTTP checks. The default behavior remains the same – that is we do not follow redirects but rather evaluate an HTTP status code in the 300 range as a successful response.

To activate this option in your HTTP check, set the “Redirects:” drop down to “Follow redirects” or, if you’re using the API, set a ‘follow’ parameter to true. Our probes will follow up to 4 redirects and per the RFC, will only redirect on HTTP GET requests.

For more information, please see our documentation on the supported HTTP checks:
HTTP – Simple website monitoring for 200-399 HTTP status codes
HTTP Content – Verify content exists (or doesn’t exist) in the returned HTML
HTTP Advanced – The swiss-army-knife of HTTP checks. Set request headers, verify response headers, send JSON, XML, or form data, use GET/POST/PUT/HEAD/DELETE/TRACE/CONNECT methods, verify content, and expected returned HTTP status codes. You can even monitor a 404 page.

 

Adding Probes to North America and Europe along with an IP Change [DE]

We’re adding three new probes in the North America region and two to the Europe region.
These changes will take place 2014-12-02. Please update your firewalls appropriately.

Phoenix, Arizona (US) – AZ (198.20.67.72)
Kansas City, Kansas (US) – KS (173.208.220.194)
New York City, New York (US) – NY (168.235.67.200)

Paris, France (FR) – FR (5.196.125.25)
Budapest, Hungry (HU) – HU (79.120.211.210)

In addition, we have one IP change to our current probe in Germany:
DE will change from 94.249.196.145 to 62.113.242.111

As always, a current list of all the IP addresses for our probe servers can be found in the FAQ.

[UPDATE – 2014-12-02 11:28GMT-7] – New probes are online and IP change for DE is complete.

Probe Server IP Address Change – [WA]

Our probe server in Seattle Washington, USA will be changing IP addresses on 2014/10/30:
WA will change from 162.210.249.48 to 107.161.26.116

No data loss is expected.

Please adjust your firewalls appropriately so your checks do not fail because of the probe IP addresses change.

An always current and updated list of all the IP addresses for our probe servers can be found in the FAQ.

[UPDATE – 2014-10-30 11:55GMT-6] – IP change for WA is complete

Disabling SSLv3 on NodePing website and API

In response to the recently announced vulnerability in SSLv3, we are disabling this version on our web site today, and for our API tomorrow. We do not anticipate that this will negatively impact any of our users. However, if you use our API with an older implementation of a library or scripting language, you may want to check to make sure that it supports newer protocols.

Probe Server IP Address Changes – [LD, ES]

Our probe servers in the following locations will be changing IP addresses on 2014/09/23:
LD will change from 78.157.217.106 to 87.117.200.68
ES will change from 94.46.242.178 to 185.4.92.30

No data loss is expected.

Please adjust your firewalls appropriately so your checks do not fail because of the probe IP addresses changes.

An always current and updated list of all the IP addresses for our probe servers can be found in the FAQ.

[UPDATE – 2014-09-23 08:04GMT-6] – IP change for LD and ES are complete

Adding Probes to North America and Europe along with an IP Change [BR]

NodePing continues to grow!
We’re adding two new probes in the North America region one to the Europe region.

Las Vegas, Nevada (US) – NV (208.66.75.231)
Seattle, Washington (US) – WA (162.210.249.48)
Madrid, Spain (ES) – ES (94.46.242.178)

In addition, we have one IP change to our current probe in Brazil:
BR will change from 177.54.149.101 to 177.67.81.184

These changes will take place 2014-07-02. Please update your firewalls appropriately.

As always, a current list of all the IP addresses for our probe servers can be found in the FAQ.

[UPDATE – 2014-07-02 09:48GMT-6] – New probes are online and IP change for BR complete

Monitoring Memory Usage in Node Applications

I recently started a new node.js project that stored a good bit of data in memory, and talked to clients over web sockets as well as providing a REST interface. The combination of components meant there were several spots that I wanted to monitor.

For the WebSockets, I hooked up NodePing’s WebSocket check. In this case, I didn’t need it to pass any data, just connect and make sure the WebSocket interface was accessible. This was a quick win, and in seconds I was monitoring the WebSockets interface of my new app.

One of our concerns with this particular application was how much memory it would use over time, since it retains quite a bit of data in memory for as long as the server is running. I was curious about how much memory it would end up using in real use. I was also concerned about any memory leaks, both from the data caching and the use of buffers as the system interacted with WebSockets clients. This called for monitoring memory usage over time and getting notifications if it passed certain thresholds.

To accomplish this, I used NodePing’s HTTP Parse check. In my node app, I created a route in the REST interface that would return various statistics, including record counts in the cache and a few other things I was curious about. The key piece for monitoring purposes, though, was the output from the node.js process.memoryUsage() call. This gives me a nice JSON object with rss, heapTotal, and heapUsed numbers. This was in combination with some other stats I wanted to capture, and the output looked something like this:

 {
  "server": {
    "osuptime": 22734099.6647312,
    "loadavg": [
      0.17041015625,
      0.09814453125,
      0.12451171875
    ],
    "freemem": 1883095040,
    "processmem": {
      "rss": 77959168,
      "heapTotal": 63371520,
      "heapUsed": 30490000
    }
  }
}

Next I added an HTTP Parse check in NodePing, and added the rss and heapUsed fields to the check. For the check setup, we use JSONPath syntax, so the full fields looked like this:
server.processmem.rss
server.processmem.heapUsed

At first I was a little startled by the results of this. The rss figure is consistently a good bit higher than the heapUsed number, and it climbs slowly over time. At first glance this looks like the system has a memory leak. However, it turns out this is normal for node.js applications. Node manages the memory used internally, and the rss figure shows what’s been allocated at some point and is still reserved, but not what’s actually in use. The heapUsed figure, on the other hand, does reflect Node’s periodic garbage collection.

I found the HTTP Parse check to be perfect for watching memory usage and checking for a memory leak in my Node application. The key was capturing the heapUsed as reported by Node. In my case I had the check grab this information once a minute, and I quickly had a handy chart showing the total memory usage of my application over time. As a result, trends become quickly apparent and I can see how my memory usage grows and shrinks as Node manages its memory usage.

Since I was hitting the REST interface of my application once a minute to collect the memory information, this had the side benefit of notifying me if the REST interface ever goes down. If I wanted to chart the REST interface’s response time, I’d add a separate HTTP check.

At NodePing, a lot of what we’ve built originated in our own experiences building and supporting Internet-based services. This is another example of how we have used our own monitoring systems internally to help us build and maintain our own systems.  If you  and haven’t tried out NodePing’s monitoring, check out our 15-day free trial.

Heartbleed Statement

Many of you are scrambling to mitigate the Heartbleed SSL vulnerability (CVE-2014-0160) with your list of vendors and services. You can check NodePing off that list.

NodePing’s SSL services (including our website, user interfaces, API, and client checks) were all unaffected by the Heartbleed vulnerability.

Our application and service is based on Node.js and in a stroke of dumb luck or serendipitous genius the core developers had chosen over a year ago to disable the ‘heartbeat’ functionality in the Node.js implementation of SSL. Thank you, core devs!

Please contact support if you have any further questions.