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. IfValid 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"