New Feature: Heartbeat Monitoring (Pro Plan)

Uptime Robot can already check the status of servers/devices who have public IPs with its ping and port monitoring feature.

Yet, there are many other servers/computers/devices that are inside an intranet (but connected to the internet) and need to be monitored.

Heartbeat monitoring

It is now possible to monitor such endpoints using heartbeat monitoring.

The feature works in an opposite way compared to other monitoring types.

Uptime Robot provides a unique URL for each heartbeat monitor created and expects the monitored item to send regular requests to this URL.

Once a regular request doesn’t arrive on time, the monitor is marked as down.

Heartbeat Monitoring

Heartbeat monitoring is not only ideal for monitoring servers/computers inside an intranet but also a great fit for monitoring the health of the regular/cron jobs your website/app may be performing.

As an example, if your app runs a cron job which deletes the old logs every 10 minutes, you can update the code to send a HTTP request to the heartbeat monitor’s URL once that cron job is ran and know that the cron job may be having problems if the heartbeat monitor is down.

How to use the feature?

Heartbeat monitoring is available in the Pro Plan and it works with steps:

  • Create a new heartbeat monitor using the Add New Monitor dialog
  • Get the URL of the heartbeat monitor created in the same dialog
  • Setup a cron job (or a scheduled task in Windows) that sends an HTTP request to this heartbeat URL every x minutes (where x is the interval selected for the monitor)
  • That is it.

Alternatively, please check the docs for creating cron jobs in Unix/Linux and scheduled tasks in Windows.

P.S> The feature is in beta status and look forward to any feedback/suggestions.

If you find Uptime Robot useful, help us spreading the word:

Comments

  1. Peter

    This sounds great!

    I think it’d be nice if
    1) longer intervals were allowed. 24 hours is not enough for weekly tasks, and problematic for daily tasks — just because Monday’s task finished at 04:00 doesn’t mean that Tuesday’s task will also finish by 04:00; it might take minutes or hours longer.
    2) the heartbeat URLs included human-readable text, to make it easier to verify that a task was configured with the correct URL. Instead of “https://heartbeat.uptimerobot.com/mMonitorGUID” something like “https://heartbeat.uptimerobot.com/Initial-Monitor-Name/mMonitorGUID” would be nice.

    Reply
    1. Umut Muhaddisoglu Post author

      Peter,

      Both are great suggestions and noted them. Thanks a lot.

      Reply
  2. Louis

    Great addition! However, we have many cron jobs running only once a week. Would be great if the monitoring interval could be extended to that time range.

    Reply
    1. Umut Muhaddisoglu Post author

      Louis,

      Thanks very much for this. Added a +1 besides Peter’s suggestion :).

      Reply
  3. TimC

    Great addition!

    I have processes that have to run during a specific window of time, rather than at a specific interval. It would be useful to add a ‘must check-in during this period:’ condition. Also, a combination of this plus interval, such as ‘must check-in every 4hrs between 0 and 15m past the hour’.

    Thx.

    T.

    Reply
  4. Glenn van Es

    Would be nice if this could also be used for monitoring backups, if an e-mail is received and the subject is backup for XXX is successfull, make it green, otherwise red.

    Reply
  5. Erica Kane

    Make this a +1 for longer intervals (and then a way to type them in rather than using the slider). We pay for a service to do exactly this, and they can’t handle our one job that is supposed to run once every 45 days, because it isn’t a cron expression. If you avoid that limitation you will be far ahead of the current services out there.

    Reply
  6. Padraig

    Just to add I agree with Peter and Louis above.

    Reply
  7. Alexandre

    That’s awesome. Nice addition.
    +1 for Peter’s suggestion. We have daily cron jobs that depends on external services and execution time may wildly fluctuate.

    I’ll add that for cron jobs it would be great to be able to say when we expect an heartbeat. Given a cron that runs everyday at 0200, if there is no heartbeat by 0400 I should get an alert. Setting the interval to 26 hours would do that. Now imagine that my cron have a nasty bug an take longer every day to run. The “window” will slide every day a little bit further and basically allow 26 hours from last execution *end* to the next end. Which may end in a cron that takes 10 hours to run and finish at 1200, with no alerts, since last execution was also very slow and withing the 26 hours.
    A monitoring definition like a cron and a delay would make it easy to detect performance problems in crons. Granted, this is way more complex than what is currently in place. Just throwing the idea here :)

    Anyway, nice job!

    Reply
  8. Martin

    Nice feature! Thanks

    Reply
  9. Marcel

    Very nice, thanks for this awesome Feature!

    Reply
  10. Aaron

    Heartbeat tests sound great. Sort of the thin end of passive monitoring.

    I concur with the others that heartbeat tests should be able to be long intervals, e.g. monthly or quarterly password rotations. I would like to be able to specify everything up to ~370 days.

    If would be convenient to be able to specify two times, the ‘expected frequency’, as now, e.g. 1 hour, and an ‘allowed tolerance’ e.g. 10 minutes. So an hourly task heartbeat would be ‘Down’ if an hour and 10 minutes had elapsed since the last heartbeat.

    Otherwise, if there is only one time setting as now, the time should be treated as a the time when the heartbeat response is late. E.g. a weekly backup is late when 8 days have elapsed, not 7 days and 1 minute.

    Given a heartbeat is basically a passive check, it would be a nice extension to be able to make a negative heartbeat, ie. to actually declare a heartbeat failure.

    e.g. my suggestion, something like, normal heatbeat:

    https://heartbeat.uptimerobot.com/Current-Monitor-Name-But-Ignored/mMonitorGUID/UP

    and option affirmatively negative heatbeat:

    https://heartbeat.uptimerobot.com/Current-Monitor-Name-But-Ignored/mMonitorGUID/DOWN

    This would give a lot of flexibility to the heatbeat system. It would enable/encoruage using longer heatbeat intervals, because we have the option to come in early with a ‘DOWN’. So could check every 10 seconds as the source end, but only heatbeat to uptimerobot every 5 minutes. With the option to notify DOWN immediately for known failure.

    Reply
  11. Fran Rodríguez

    Hi,

    And are you planned something similar to this, but with emails?

    Cheers.

    Reply
  12. João André Mezzari

    +1 for Aaron suggestion

    Reply
  13. Mara

    Thank you, this is very useful!

    Reply
  14. Afsin Toparlak

    Great!
    Nice!
    I will use it!

    Reply
  15. Rui Meleiro

    That’s a great feature, it will allow us to reduce the risk surface (open ports and ICMP) for monitoring purposes.
    Nevertheless, we’ve tested it and no alerts are being sent out, either via email or SMS.
    Care to check that?
    Thank you
    Rui Meleiro

    Reply
    1. Rui Meleiro

      It seems you have fixed the issue before my question even past moderation (probably due to the additional queries on the same issue, I guess)

      Reply
    2. Umut Muhaddisoglu Post author

      Sorry for the trouble and this bug is all fixed now.

      Reply
  16. Guy S

    Nice idea and it will probably convince me to move over to Pro once it is out of beta. How about moving it to the free plan until it comes out of beta? You might get more useful comments if users don’t have to pay to test your new features.

    Reply
  17. HenrikT

    I have try to make a tast schedule in windows, but i works not for me. I can see thenext tast will run after 5 min, but this time only change even 5 min. If i run the tast manuel it works and the monitor are UP, but after 5 min the monitor is down aging.
    I have make the tast schedule like written in the help site to create a Tast schedule.
    What is wrong ?

    Reply
  18. Scott

    +1 for: longer time intervals (yes up to a year), some tolerance on the check (e.g. job takes 5 mins longer one day), and also time windows.

    Basically would agree with all of above … longer time frames being probably the first most useful change.

    Good though.

    Reply
  19. Jim Washington

    It does not appear email notifications are working for the heartbeat monitoring. Can somebody confirm? Thanks, Jim

    Reply
    1. Umut Muhaddisoglu Post author

      Thanks very much for sharing the issue and it is all fixed.

      Reply
  20. Neil.work

    This is great, but do you think you’ll ever allow a heartbeat that takes a parameter at the end of the URL and then we can create a threshold for it? something like

    https://heartbeat.uptimerobot.com/guid?value=100

    Then trigger the alert if the value is high/low? Something really simple? Myabe?

    Reply
  21. Blaine Sherman

    This is fantastic! I am a Pro user. I’m with everyone else. More control over the interval. I too want to use this for backup monitoring.

    Keep up the great work!!

    Reply
  22. shawn

    This is great, however is there a known issue with the alerts? I set a few heartbeat monitors up shortly after this post, I am not getting status alerts for the heartbeat monitors

    Reply
    1. Umut Muhaddisoglu Post author

      Thanks very much for sharing the issue and it is all fixed.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>