Ping Sandglass from a Jenkins build so you know it ran on schedule. If the job stops executing, gets stuck in the queue, or fails before the ping step, Sandglass opens an incident.
Add a new Heartbeat check in Sandglass. Set the expected interval to match your Jenkins job schedule, adding a few minutes of buffer for queue wait time. Copy the heartbeat URL after saving.
In Jenkins, go to Manage Jenkins > Credentials and add a new "Secret text" credential. Paste the heartbeat URL as the secret and give it an ID like SANDGLASS_HEARTBEAT_URL. Reference it in your pipeline with the credentials() binding so it never appears in console output.
For a declarative pipeline, add a post { success { ... } } block with: "sh 'curl -fsS -m 10 --retry 3 \"$SANDGLASS_HEARTBEAT_URL\"' ". For a freestyle job, add an "Execute shell" build step at the end of the build with the same curl command. The post success block only fires when all stages pass, which is the right default.
Run the job manually from the Jenkins dashboard. Open the console output and confirm the curl step ran and printed a 200 response. In Sandglass, the heartbeat check should flip to "Up" within seconds. If it stays pending, check that the agent can reach sandglass.it on port 443.