PUSH checks allow you to send heartbeats and metrics from your servers to NodePing. Use a PUSH check for things like monitoring your servers that are behind firewalls, tracking CPU load on your Windows SQL servers, or getting alerts before you run out of disk space on your web servers.
PUSH checks are quite different from all the other check types NodePing offers. The others use our probe servers to reach out and see if your services are working correctly. With PUSH checks, you provide the monitoring results to us through an HTTP POST. You can use your own scripts or one of our many PUSH clients for Linux and Windows to push the results into NodePing.
Simple heartbeat monitoring with a PUSH check will ensure you get an alert if one of your servers stops sending in results. This can be used to send alerts of a server or process goes offline, or if a server that can't be reached from the Internet loses the ability to make outbound connections.
You can also go well beyond simple heartbeats and use the PUSH check to track basically any numeric value. You can send the PUSH check a data payload, and NodePing will parse it to see if the metrics are missing or are outside your configured range for the fields you've chosen to track. This allows you send any kind of metric you can muster from your server and we'll track it and you can get alerts about it. We'll also automatically graph the metrics in our reports.
The JSON data payload provides deep linking using a flattened path. For example, in this typical JSON payload:
{ "load": { "1min": 0.17, "5min": 0.19, "15min": 0.17 }, "memfree": 26596, "diskfree": { "/": 0.96 } }
We can also handle arrays in the JSON by using the numbered element in the flattened path. For example, in this payload:
{ "mount": [ { "filesystem": "/dev/sda1", "free": 99 }, { "filesystem": "/dev/sda2", "free": 70 } ] }
PUSH results must be an HTTP POST to https://push.nodeping.com/v1 and require the following elements in the query string:
If you want to pass a data payload to the PUSH results, please POST it as a JSON body, with the required HTTP header "Content-Type: application/json" and in the following format:
{ "data": { { "<Your metric name here>": <Your float parsable value here>}, { "<Your other metric name here>": <Your other float parsable value here>} } }
Below is a simple heartbeat PUSH example:
curl -X POST 'https://push.nodeping.com/v1?id=MY_CHECK_ID_HERE&checktoken=LONG_CHECK_TOKEN_HERE'
And here's a sample data payload PUSH example:
curl -X POST -H "Content-Type: application/json" --data '{"data":{"mymetric":5}}' 'https://push.nodeping.com/v1?id=MY_CHECK_ID_HERE&checktoken=LONG_CHECK_TOKEN_HERE'
NodePing's PUSH Client Wizard provides a very cool command line wizard for creating, configuring, and deploying PUSH clients to both *nix and Windows.
Use PUSH checks to monitor servers and their system metrics that are not accessible by our other check types. They may be located behind network firewalls or we just don't have a check type for the metric you want to track. You can also use them as a way to get notified if your cron jobs are no longer running using the simple heartbeat PUSH.
To set up a PUSH check,
Common usage:
We have several open-source PUSH client scripts available for Linux, Windows, freeBSD, etc that you can use, modify, and extend with our modules - or write your own.
The PUSH Client Wizard can be used to create, configure, and deploy PUSH clients. It's a simple command line interface wizard that walks you through the process.