Heartbeat monitors

Introduction

Heartbeat monitors enable you to monitor periodic tasks like GNU/Linux cron jobs, Microsoft Windows scheduled tasks, or Kubernetes CronJobs.

Put simply, it works like this:

  1. You configure the heartbeat monitor with a period and expected parameters.
  2. The periodic task of any kind sends an HTTP GET request to WebGazer when the task completes.
  3. You get alerted when the task doesn't send the HTTP request (meaning the task didn't complete), or sends invalid parameters.

For example, let's say you have a database backup cron job, which takes the dump of the database, uploads it to some reliable place (e.g. AWS S3). You can utilize WebGazer's heartbeat monitors to ensure database backups are done as they are supposed to, and get alerted when the backup somehow fails. Assume this backup task;

  • Runs with a 24 hours interval
  • Supposed to complete in less than 10 seconds

To monitor the cron job, you just add an HTTP request to be sent to WebGazer at the end of the script. This way, WebGazer gets informed if the script is successfully run, or not. And notifies you when it is not.

For this database backup case, there might be 3 cases:

  1. Script is run, and process is completed successfully in a period shorter than 10 seconds. This is the expected case.

    Successful request

  2. Backup somehow didn't run, or an error happened in the script, and it didn't come up to the HTTP request sending part. So in 24 hours period the request is not delivered, at all.

    In this case, WebGazer marks the monitor as down, and triggers alerts.

    Request is not delivered

  3. Script is run, backup successfully happened, but it took more than the anticipated 10 seconds.

    In this case, again, WebGazer marks the monitor as down, and triggers alerts.

    Unsuccessful request