Monitoring Logic

Go-Upkeep supports two monitoring modes: active HTTP/S polling and passive push-based heartbeats. This page explains how each works under the hood.

HTTP/HTTPS Monitors (Active)

Active monitors reach out to your server at a configured interval and check the response.

  • URL must include the schema (e.g., https://google.com).
  • Interval is the time in seconds between checks.
  • SSL Check: When enabled, the certificate is examined. If Valid Until < Threshold, a WARNING alert is sent. If Valid Until < Now, the status becomes SSL EXP (Down).
  • Max Retries: To prevent flapping (false positives), alerts only fire after X consecutive failed checks.
Example: With Interval 60s and Retries 2, the check runs at 0s (Fail), 60s (Fail), 120s (Fail), and the alert is sent on the third failure.

Push Monitors (Passive / Heartbeats)

Passive monitors wait for your server to check in. If it doesn't report within the expected window, an alert fires.

  • Create a monitor and set Type to PUSH.
  • Set the Interval to the expected frequency (e.g., 3600s for an hourly backup).
  • Use the generated URL in your script.

Push Logic

Go-Upkeep calculates a deadline: LastSeen + Interval + 5 seconds. If the current time passes the deadline without a new ping, the monitor is marked DOWN.

crontabbash
# Run backup script, then ping Upkeep if successful
0 2 * * * /opt/backup.sh && curl -s "http://monitor.corp:8080/api/push?token=a1b2c3d4"