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
- Create a Pulse+Data check with an expected interval.
- Send a POST request to the Pulse endpoint with a JSON body (max 50 KB).
- Chglog validates the JSON payload against your configured rules.
- 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:
| Field | Description |
|---|---|
| JSONPath | The path to the value in the JSON body (e.g. $.queue.length, $.cpu.usage). |
| Operator | ==, !=, <, >, <=, >=, contains, not_contains. |
| Expected Value | The threshold or target value. |
| Label | A 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"