Use Case

Know when services
stop beating

Monitor services that can't be pinged externally. Get instant alerts when background workers, queue processors, or internal services stop sending heartbeats.

No credit card required. Set up in under 2 minutes.

Trusted by engineers from fast-moving teams

S
Stripe
V
Vercel
L
Linear
N
Notion
F
Figma
4.9/5 from developers
500+ status pages created

How Heartbeat Monitoring Works

Your service sends periodic pings. We alert you if they stop.

1

Create a Monitor

Set up a heartbeat monitor with your expected check-in interval

2

Send Heartbeats

Your service pings the unique URL at regular intervals

3

Get Alerted

We notify you immediately if a heartbeat is missed

worker.js
import { Kodo } from 'kodo-sdk';

const kodo = new Kodo({ apiKey: process.env.KODO_API_KEY });

// Send a heartbeat every minute
setInterval(async () => {
  await kodo.heartbeat('queue-worker');
}, 60_000);

// Or ping after each job
worker.on('job:complete', async () => {
  await kodo.heartbeat('queue-worker');
});

Monitoring Made Simple

Everything you need for reliable heartbeat monitoring

Heartbeat Endpoints

Unique ping URLs for each service. Just hit the URL to signal that your service is alive.

Missed Beat Alerts

Get notified immediately when a service misses its expected heartbeat check-in.

Internal Services

Perfect for services that can't be monitored externally — workers, queues, and background jobs.

Any Language

Send a simple HTTP request from any language or platform. No SDK required.

Sub-Minute Intervals

Configure check-in intervals from 30 seconds to days. Match your service's requirements.

Auto-Recovery Detection

Automatically detect when services recover and update status accordingly.

Perfect For

Any service that needs to phone home

Background Workers

Monitor Sidekiq, Celery, or any queue processor

worker.on('complete', () => kodo.heartbeat('worker-1'))

Scheduled Tasks

Verify cron jobs and scheduled tasks complete successfully

curl https://ping.kodo.status/abc123

Internal APIs

Monitor services behind firewalls that can't be pinged externally

setInterval(() => kodo.heartbeat('internal-api'), 60000)

Long-Running Processes

Keep tabs on ETL jobs, data pipelines, and batch processes

for chunk in process(): kodo.heartbeat('etl-job')

See It in Action

Real-time heartbeat monitoring dashboard

demo.kodo.status

Real-Time Dashboard

See all your heartbeats at a glance

Heartbeat Monitors

queue-worker-1
Every 60s
12s ago
Healthy
queue-worker-2
Every 60s
45s ago
Healthy
email-processor
Every 5m
2m ago
Healthy
data-sync
Every 15m
Expected 3m ago
Late
backup-service
Every 1h
25m ago
Healthy

Frequently Asked Questions

Heartbeat monitoring is a way to monitor services that can't be pinged from the outside. Your service sends periodic 'heartbeat' signals. If we don't receive a heartbeat within the expected time, we alert you.

Never let a service fail silently

Set up heartbeat monitoring in under 2 minutes.

No credit card required. Free tier available.

Heartbeat Monitoring | kōdo - Keep Services Alive | Kōdo