What is Push Monitoring?
Push testing is a type of monitoring where your servers or other devices checks in with our service to let us know it is still active. It’s also frequently called heartbeat monitoring, or webhook monitoring.
Push Monitoring is included with all free and paid subscriptions and can be found under uptime monitoring.
Questions? Scroll down to the Frequently Asked Questions, or contact us!
What is Push Monitoring used for?
It can be used for multiple purposes, listed below are a few of our favourite use cases.
You have an important cronjob running every 15 minutes, and want to know when it fails. Emails are handy, but don’t offer historical data. The solution is to use push monitoring, and contact our servers every time your cronjobs execute successfully.
Did it fail? We’ll let you know through email, sms, or one of our many integrations.
Monitoring of internal systems
You have a server with sensitive data behind several layers of security, normal monitoring will not be able to check if your server is still up. You can either install a monitoring agent, which may contain unknown code, or you can ping our servers to let us know your device is still active.
This gives you full control over what’s installed on your device, keeping your security intact.
These are just a few examples, but the possibilities are endless, so give it a spin and see what you can come up with.
How does it work?
When you create a Push test, you configure a name and a push period. The Push period is the beating heart of Push testing. After you’ve created the test, you will be presented with a unique Push URL. It looks something like this: https://push.statuscake.com?PK=abc123&TestID=123456&time=0.
Each time the Push period expires, our system will do a heartbeat, and check if it has received at least 1 push since the last beat.
- If it did, your test is up, and the whole process starts again.
- If it did not receive a push, the test is down and you will be alerted.
During this heartbeat, a new data point will be logged in your test details panel.
If your test is down, and you send a successful push, we’ll instantly let you know your test is back up.
As you may have noticed, there’s a `time` parameter in the URL. This can be freely provided by you and will be reflected in the graph as `performance`. This value must be a valid integer.
Frequently Asked Questions
Q: What happens if I send multiple pushes within a Push period
A: Only the last push in a push period is taken into account and stored. So if you send multiple pushes, the last value gets overwritten.
Q: I don’t see any values in my graphs, but I’ve pushed multiple times
A: Your ‘push period’ value might be set too high. This value is in seconds. We recommend setting this as low as possible to ensure frequent testing.
Example 1: You push every minute (60s), we recommend setting the ‘push period’ value to 80 seconds (1m20s) to allow for network latency and slight variations in execution time.
Example 2: You push every hour (3600s), we recommend setting the ‘push period’ value to 3620 seconds (1h20s).
Q: I receive frequent alerts, even though I’ve just pushed
A: Your ‘push period’ value might be too low. We recommend adding 20 seconds to your expected push period, to allow for script execution, network latency and other variables.
Q: My Push test shows as down, but I did not receive an alert
A: Please ensure a contact group is added to your test, and that the contact group has valid contact details.
Q: I use curl, wget or other command line tools, but the push fails
A: This is most likely due to the ampersand (&) in the URL. It is used as a control operator in bash (Linux CLI) and must be escaped if you wish to use it in your url.
You can escape it by adding a backslash in front of them, eg: `https://push.statuscake.com/PK=abc123\&TestID=123456\&time=5` or by surrounding the url with double quotes, eq: “https://push.statuscake.com?PK=abc123&TestID=123456&time=5”
Q: My push still fails after that, why?
A: In case of an error, we’ll provide you with a useful description of what went wrong in the response of your push request. If you require further assistance, please don’t hesitate to contact us.
- Push testing will not start checking until it has received the first successful push.
- The `time` parameter is optional, and defaults to 0. The value is interpreted in milliseconds. (1000ms = 1 second)