Drumbeats Documentation

Drumbeats watches your cron jobs, queue workers, and HTTP endpoints, and pages your team when one stops behaving.

Add one line to the end of your job:

bash
curl https://api.drumbeats.io/v1/ping/<monitor-id>/success
curl https://api.drumbeats.io/v1/ping/<monitor-id>/success

That is the whole integration. No SDK, no agent, no API key on the ping path. Drumbeats now knows when that job last finished.

What happens when it breaks#

Drumbeats watches the clock, not your server. When the ping you promised does not arrive, the monitor flips to DOWN and Drumbeats opens an incident.

FailureWhat Drumbeats seesIncident event
The job never ranNo ping by the scheduled time plus the grace periodMISSED
The job ran and failedA failure ping, or a non-zero exit codeFAILED
The job hungA start ping with no finish inside max_duration_secondsFAILED
The job finished lateThe finish ping arrives past max_duration_secondsDURATION_HIGH
Your HTTP endpoint stopped answeringThree failed checks in a rowFAILED

How you get alerted#

The incident pages a notification group. Every channel in that group fires in parallel: Slack, email, Microsoft Teams, Telegram, Discord, PagerDuty, browser push, or a webhook. The message carries the monitor name, the incident event, the timestamp, and a link straight to the incident.

The next success ping resolves the incident, flips the monitor back to UP, and sends a recovery message with the outage duration.

Quickstart walks the whole loop, including a test failure you can trigger by hand. It takes about five minutes.

Pick a monitor type#

Choose the type that matches what you are watching. The rest of the docs assume you have already chosen.

What you are watchingMonitor typeReference
A job on a fixed schedule (cron, Airflow, Kubernetes CronJob)CronCron monitors
A worker loop that ticks every N minutesHeartbeatHeartbeat monitors
An on-demand task (queue message, webhook, manual script)Event-drivenEvent-driven monitors
A public HTTP endpoint (API, website, health check)UptimeUptime monitors

Monitor types walks the decision tree if none of those is an obvious match.

Wire it into your stack#

Every monitor type works with one HTTP request from your job.

StackGuide
Node.js and TypeScriptNode.js
PythonPython
GoGo
PHPPHP
Shell and BashShell
GitHub ActionsGitHub Actions
Kubernetes CronJobsKubernetes
Claude, Cursor, VS CodeAI agent

Read the API reference#

ReferenceWhat it coversAuth
Ping APIEvery endpoint your job calls: events, payloads, exit codesNone. The monitor ID in the URL is the credential
REST APIMonitors, incidents, projects, notification channels and groupsX-API-Key header
NotificationsChannels, routing groups, alert thresholdsDashboard
Webhook payloadsExact JSON body Drumbeats POSTs on DOWN and RECOVERYYours to set
IncidentsThe OPEN to ACKNOWLEDGED to RESOLVED lifecycleDashboard or REST API
Status pagesPublic health pages your customers can subscribe toNone for readers

Operate Drumbeats#

TaskPage
Set up projects, members, roles, and 2FAWorkspace setup
Understand what you are billed forBeats and usage
Handle invoices, plan changes, failed paymentsBilling lifecycle
Add retries, timeouts, and ping isolationProduction hardening
Diagnose a monitor that is not behavingSupport
Review security posture before rolloutSecurity

Understand the model#

How Drumbeats works traces one ping from your job to the alert in your Slack channel. Alternatives compares Drumbeats to Cronitor, Healthchecks.io, and Dead Man's Snitch if you are still evaluating.