Heartbeat Monitoring

Know when your cron jobs
stop running.

Create HTTP ping endpoints for every scheduled task in your infrastructure. HostAtlas tracks every ping, measures job duration, and alerts you the moment an expected ping doesn't arrive. No more silent cron failures. No more broken backups discovered days later.

Add to any cron job

$ ./backup.sh && curl -sSL https://app.hostatlas.app/api/hb/abc123/success_

<0 min

Missed detection time

0

Endpoint types per heartbeat

0

SDKs or libraries required

0d

Ping history retention

Heartbeat Endpoints

Four endpoints. Complete job lifecycle coverage.

Every heartbeat you create gets a unique ID and four distinct HTTP endpoints. Use the simple ping for basic monitoring, or combine start/success/fail for full lifecycle tracking with duration measurement.

favorite

Basic Ping

Simplest integration — one HTTP call confirms the job ran

terminal

# Simple cron job with heartbeat ping

$ crontab -e

# Every day at 2 AM — run backup, then ping

0 2 * * * /opt/scripts/backup.sh && \

curl -sSL https://app.hostatlas.app/api/hb/{id}

A GET or POST request to /api/hb/{id} records a successful ping. The timestamp is stored and the heartbeat timer resets. If the next ping doesn't arrive within the expected interval plus grace period, an alert is triggered.

check_circle

Success Endpoint

Explicitly report that a job completed successfully

terminal

# Report success after the job completes

$ /opt/scripts/db-export.sh

$ if [ $? -eq 0 ]; then

curl -sSL https://app.hostatlas.app/api/hb/{id}/success

  fi

A request to /api/hb/{id}/success records a successful completion. This is distinct from the basic ping — it explicitly signals that the job ran and completed without error. HostAtlas stores the success state and resets the heartbeat timer.

cancel

Failure Endpoint

Explicitly report that a job encountered an error

terminal

# Report failure if the job exits non-zero

$ /opt/scripts/sync-data.sh

$ if [ $? -ne 0 ]; then

curl -sSL https://app.hostatlas.app/api/hb/{id}/fail

  fi

A request to /api/hb/{id}/fail records an explicit failure. Unlike a missed heartbeat (which means the job didn't run at all), a failure means the job ran but something went wrong. HostAtlas immediately triggers alerts on your configured notification channels.

timer

Start + Finish (Duration Tracking)

Measure exact job duration with paired start/success calls

terminal

# Full lifecycle: start, run, report result

$ curl -sSL https://app.hostatlas.app/api/hb/{id}/start

$ /opt/scripts/etl-pipeline.sh

$ if [ $? -eq 0 ]; then

curl -sSL .../api/hb/{id}/success

  else

curl -sSL .../api/hb/{id}/fail

  fi

Hit /api/hb/{id}/start before your job begins, then /api/hb/{id}/success or /api/hb/{id}/fail when it finishes. HostAtlas calculates the exact duration, tracks averages over time, and detects performance regressions when a job takes significantly longer than its historical baseline.

How It Works

Expected interval. Grace period. Missed detection.

Every heartbeat has two timing parameters: the expected interval (how often the job should run) and the grace period (how much lateness is tolerable). When the clock runs out on both, HostAtlas marks the heartbeat as missed and triggers your alerts.

1

Set the expected interval

Define how often your job should run: every 5 minutes, every hour, every day, or a custom interval. This is the heartbeat's "expected rhythm." HostAtlas uses this to calculate when the next ping should arrive.

schedule Example: Database backup
Expected interval Every 6 hours
Schedule expression 0 */6 * * *
2

Add a grace period

Jobs don't always run at the exact same second. The grace period gives your job extra time before HostAtlas considers it missed. Set it based on how variable your job's timing is — 1 minute for tight schedules, 30 minutes for flexible ones.

hourglass_top Grace period buffer
Grace period 10 minutes
Total allowed window 6h 10m
3

Missed detection fires

When the expected interval plus grace period expires without a ping, HostAtlas marks the heartbeat as "missed" and immediately triggers notifications on all configured channels. The heartbeat stays in missed state until the next successful ping arrives.

notification_important Alert triggered
Status Missed
Overdue by 23 minutes

Detection Timeline — Database Backup (6h interval, 10m grace)

Expected Window

0h — 6h after last ping. HostAtlas expects a new ping during this window. Status: Healthy.

Grace Period

6h — 6h 10m after last ping. The job is late but still within tolerance. Status: Late.

Missed

After 6h 10m with no ping. HostAtlas triggers alerts immediately. Status: Missed.

Dashboard

Every heartbeat.
One view.

The heartbeat dashboard gives you a real-time overview of every monitored job. See which jobs are healthy, which are late, and which have missed their expected run time. Each heartbeat shows its schedule, grace period, last ping time, average duration, and current status.

filter_list

Filter by status

Show only healthy, missed, or failed heartbeats. Quickly identify which jobs need attention.

history

Ping history

Click any heartbeat to see a full timeline of pings with timestamps, durations, and payloads.

label

Tags and grouping

Organize heartbeats with custom tags. Group by server, team, environment, or job category.

favorite Heartbeat Checks
7 total
5 1 1

Database Backup

Every 6 hours · 5 min grace

Healthy

Last: 2h 14m ago · Duration: 4m 31s

Cache Warmup

Every 15 min · 2 min grace

Healthy

Last: 3m ago · Avg: 12s

ETL Pipeline

Every 1 hour · 10 min grace

Missed

Expected: 1h 23m ago

CI/CD Deploy Hook

On demand · 30 min grace

Healthy

Last: 4h ago · Duration: 3m 42s

Email Queue Processor

Every 5 min · 1 min grace

Failed

Exit code 1 · 2m ago

SSL Cert Renewal Check

Every 24 hours · 1 hour grace

Healthy

Last: 6h ago · Duration: 8s

Log Rotation

Every 24 hours · 30 min grace

Healthy

Last: 14h ago · Duration: 1m 04s

Use Cases

Monitor every scheduled task in your stack.

From nightly database dumps to real-time queue workers — if it runs on a schedule, HostAtlas can monitor it. One HTTP call is all it takes.

backup

Database Backups

Monitor nightly pg_dump, mysqldump, or mongodump jobs. Know immediately when a backup fails or doesn't run at all.

0 2 * * * pg_dump ... && curl .../hb/bkp01
cached

Cache Warmup

Ensure your Redis or Memcached cache warmup scripts run on schedule. Detect stale caches before they impact user experience.

*/15 * * * * php warm.php && curl .../hb/cache
swap_horiz

Data Import/Export

Track data sync jobs that pull from external APIs or push to data warehouses. Catch integration failures before downstream systems are affected.

0 */4 * * * python sync.py && curl .../hb/sync
queue

Queue Workers

Monitor long-running queue processors that should ping on each batch. Detect when a worker silently dies or stops processing jobs.

# Every 5m worker pings .../hb/queue
rocket_launch

CI/CD Pipelines

Add heartbeat pings to your GitHub Actions, GitLab CI, or Jenkins pipelines. Track deploy frequency, duration, and catch stuck builds.

# post-deploy curl .../hb/deploy/success
transform

ETL Jobs

Monitor extract-transform-load pipelines that feed dashboards and reports. Use duration tracking to catch performance degradation early.

0 * * * * etl.sh && curl .../hb/etl/success
mail

Email Sync

Track scheduled email sends, newsletter dispatches, and inbox sync jobs. Know when your transactional email pipeline stops processing.

*/10 * * * * mail-sync && curl .../hb/mail

Duration Tracking

Know how long
every job takes.

When you use the start and success/fail endpoint pair, HostAtlas calculates the exact duration of every run. Over time, it builds a historical profile of each job's performance — average duration, minimum, maximum, and standard deviation.

avg_pace

Average duration calculation

HostAtlas computes a rolling average over the last 50 runs. See whether your job is getting faster or slower over time.

trending_up

Performance regression detection

Set a maximum expected duration. If a job exceeds its historical average by a configurable threshold, HostAtlas flags it as slow and sends an alert.

bar_chart

Duration history chart

Visualize job durations over time on a line chart. Identify patterns — jobs that slow down on certain days or gradually degrade.

ETL Pipeline — Duration History

Last 14 days

Avg: 12m 34s
Mar 7 Mar 14 Mar 21

Average

12m 34s

Minimum

9m 12s

Maximum

22m 07s

Std Dev

2m 41s

Recent Runs
Mar 21, 01:00
13m 21s
Mar 20, 01:00
11m 48s
Mar 19, 01:00
22m 07s (slow)
Sending a payload with curl POST

# Send custom metrics with your heartbeat ping

$ curl -sSL -X POST \

https://app.hostatlas.app/api/hb/{id}/success \

-H "Content-Type: application/json" \

-d '{

"rows_processed": 14832,

"files_synced": 47,

"errors": 0,

"db_size_mb": 2341.8

}'

Stored ping record JSON

{

"id": "ping_9f8a2b1c",

"heartbeat_id": "hb_abc123",

"type": "success",

"timestamp": "2026-03-21T02:04:31Z",

"duration_ms": 271420,

"payload": {

"rows_processed": 14832,

"files_synced": 47,

"errors": 0,

"db_size_mb": 2341.8

}

}

Custom Payloads

Attach data to
every ping.

Send a JSON body with any heartbeat ping to include custom metrics from your job. Rows processed, files synced, error counts, database sizes, API response times — whatever your job produces. HostAtlas stores the payload alongside the ping and displays it in the ping history.

data_object

Arbitrary JSON payloads

Send any valid JSON object up to 10 KB. HostAtlas stores it verbatim and makes it searchable in the ping history.

visibility

Payload inspection

View payloads inline in the ping timeline. Compare payloads across runs to spot trends in rows processed, error counts, or custom metrics.

api

API-accessible

Query ping history and payloads via the HostAtlas REST API. Feed heartbeat data into your own dashboards, reports, or monitoring pipelines.

Alert Integration

Missed heartbeat? Your team knows immediately.

Heartbeat alerts flow through the same notification pipeline as all other HostAtlas alerts. Slack, email, PagerDuty, webhooks — configure once, and every missed or failed heartbeat reaches the right people through the right channels.

alarm

Step 1

Detection

Heartbeat timer expires (interval + grace period) without receiving a ping, or an explicit failure endpoint is hit.

rule

Step 2

Evaluate

HostAtlas checks maintenance windows, cooldown periods, and alert suppression rules. If none apply, the alert proceeds.

route

Step 3

Route

The alert is routed to all notification channels configured for this heartbeat — Slack channels, email addresses, PagerDuty, and webhooks.

send

Step 4

Deliver

Notifications are delivered simultaneously to all channels. Delivery status (sent, delivered, failed) is tracked for every notification.

moving

Step 5

Escalate

If the heartbeat stays missed and no one acknowledges, escalation policies kick in and the alert is sent to the next tier of responders.

chat

Slack

Rich message with heartbeat name, expected schedule, how long it's overdue, and a direct link to the heartbeat detail page in HostAtlas.

mail

Email

Detailed email with heartbeat configuration, last successful ping time, expected next ping time, and recent ping history summary.

pager

PagerDuty

Creates a PagerDuty incident with severity mapping. When the heartbeat recovers, the incident is auto-resolved in PagerDuty.

webhook

Webhooks

HMAC-signed JSON payload with complete heartbeat state, timing data, and the event type (missed, failed, or recovered).

Example Slack notification

H
HostAtlas APP 2:14 AM

Heartbeat Missed: ETL Pipeline

Status: Missed

Expected interval: Every 1 hour

Grace period: 10 minutes

Last successful ping: Mar 21, 2026, 12:01 AM (2h 13m ago)

Overdue by: 1h 3m

View in HostAtlas →

Why HostAtlas

Heartbeat monitoring that's part of the whole picture.

Standalone cron monitoring tools give you pings and alerts. HostAtlas gives you heartbeat monitoring alongside server metrics, incident management, log access, and infrastructure discovery — all correlated in one platform.

link

Correlated with server metrics

When a heartbeat misses, check if the server's CPU spiked or disk filled up — right from the same dashboard. No context switching between tools.

emergency_home

Automatic incident creation

Missed heartbeats can automatically create incidents with full context — server state, recent logs, and related alerts all linked together.

terminal

No SDK required

Plain HTTP calls. Use curl, wget, PowerShell, Python requests, or any HTTP client. No libraries to install, no dependencies to manage, no vendor lock-in.

receipt_long

Check server logs instantly

When a job fails, access the server's logs from your browser without SSH. See what happened around the time the job should have run.

lock

Enterprise-grade security

RBAC, 2FA, audit logs, and tenant isolation. Heartbeat endpoints are authenticated with your team's API key. Every access is logged.

payments

Included in every plan

Heartbeat monitoring isn't an add-on. It's included in every HostAtlas plan — free tier gets 3 heartbeats, paid plans get unlimited.

Get started

Stop guessing whether your cron jobs ran.

Create your first heartbeat in under a minute. Add a single curl command to your cron job or CI/CD pipeline. HostAtlas handles the rest — tracking, alerting, duration measurement, and historical analysis. Free plan includes 3 heartbeats. No credit card required.

Add to your crontab

$ curl -sSL https://app.hostatlas.app/api/hb/{id}/success_