Skip to content

Datadog ​

Datadog monitor webhooks POST custom JSON to Exhale. Each tenant gets a unique HTTPS URL token. Exhale scrubs the payload, upserts a Pulse (source=datadog), and runs triage when the alert transition maps to triggered / warn / similar.

Not the same as Context Datadog: Connections → Context → Datadog is API-key enrichment at triage time. Connections → Sources → Datadog (this guide) creates Pulses from webhook deliveries only.

See Sources for how Datadog fits with the other incoming webhooks.

On the hosted app, use the URL Connections copies. It starts with https://exhaleoncall.com/webhooks/. The customer host does not publish /v1/webhooks/....


Endpoint ​

After Connect in Connections → Sources → Observability & alerts → Datadog:

Preferred (keeps tokens out of proxy access logs):

POST https://exhaleoncall.com/webhooks/datadog

Send header X-Exhale-Webhook-Token: {token}.

Path form (also supported):

POST https://exhaleoncall.com/webhooks/datadog/{token}
  • token — opaque URL segment; this token authenticates the delivery.
  • Response: 202 Accepted with pulse_id, status, created, and message.

Unknown tokens return 404. Disabled or expired-trial tenants return 403.


Customer setup ​

  1. Sign in as admin → Connections → Sources → Datadog.
  2. Click Connect Datadog and copy the webhook URL.
  3. In Datadog, open Integrations → Webhooks, add a webhook, and paste the Exhale URL.
  4. Use a custom payload template with alert_id and alert_transition (Datadog variables such as $ALERT_ID and $ALERT_TRANSITION).
  5. Route monitors to that webhook.
  6. Send test alert creates a synthetic pulse and marks the integration configured.

See Datadog's official guide: Webhooks.

Rotate webhook token replaces the previous URL right away. Update Datadog after rotating.


Payload shape ​

FieldRequiredNotes
alert_idYes (or monitor_id / alert_cycle_key)Stable id for dedupe (source=datadog)
alert_transitionNoTriggered, Recovered, Warn, …
title / alert_titleNoPulse title

Lifecycle mapping ​

Datadog transitionPulse status
Triggered, Warn, No Data, Renotify, …Received → triage
Recovered, Resolved, OKResolved

Example ​

bash
TOKEN="your-url-token"
curl -i -X POST "https://exhaleoncall.com/webhooks/datadog/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"alert_id":"123","alert_transition":"Triggered","title":"High CPU"}'

See Errors & authentication for structured errors, 413 size limits, Redis delivery dedupe, and token rotation. Context Datadog (Connections → Context) is a separate connector and does not receive this webhook.

Exhale by Kolstrom Systems LLC