Pulse+Data Checks

Checks & Monitoring Updated Apr 2, 2026

Pulse+Data checks extend regular Pulse checks with JSON payload validation. Your service sends a heartbeat along with structured data, and Chglog validates that data against a customisable rule engine.

How it works

  1. Create a Pulse+Data check with an expected interval.
  2. Send a POST request to the Pulse endpoint with a JSON body (max 50 KB).
  3. Chglog validates the JSON payload against your configured rules.
  4. If any rule fails, the check is marked degraded or down depending on your configuration.

Rule engine

Rules define assertions about the data in your JSON payload. Each rule has:

FieldDescription
JSONPathThe path to the value in the JSON body (e.g. $.queue.length, $.cpu.usage).
Operator==, !=, <, >, <=, >=, contains, not_contains.
Expected ValueThe threshold or target value.
LabelA human-readable name for the rule (e.g. "Queue not backed up").

Rules can be individually enabled or disabled without deleting them.

Data point history

Every payload received is stored as a data point. You can browse the history from the check detail page to inspect past payloads and see which rules passed or failed.

Example payload

curl -X POST https://pulse.chglog.com/abc123/def456 \
  -H "Content-Type: application/json" \
  -d '{"queue": {"length": 12}, "cpu": {"usage": 42.5}, "status": "healthy"}'

With rules like:

  • $.queue.length < 1000 — "Queue not backed up"
  • $.cpu.usage < 90 — "CPU within limits"
  • $.status == healthy — "Service reports healthy"