Skip to content

Dynatrace ​

Dynatrace problem notification webhooks POST JSON to Exhale. Each tenant gets a unique HTTPS URL token. Exhale scrubs the payload, upserts a Pulse (source=dynatrace), and runs triage when the problem state maps to OPEN / similar.

This is ingest (creates Pulses). For problem and entity enrichment at triage time, see Dynatrace context.

See Sources for how Dynatrace 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 → Dynatrace:

Preferred (keeps tokens out of proxy access logs):

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

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

Path form (also supported):

POST https://exhaleoncall.com/webhooks/dynatrace/{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 → Dynatrace.
  2. Click Connect Dynatrace and copy the webhook URL.
  3. In Dynatrace, open Problem notifications, add a custom webhook integration, and paste the Exhale URL.
  4. Include PID and State in the custom payload (Dynatrace placeholders such as {PID} / {State}).
  5. Send test alert creates a synthetic pulse and marks the integration configured.

See Dynatrace's official guide: Send Dynatrace notifications via webhooks.

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


Payload shape ​

FieldRequiredNotes
PIDYesStable id for dedupe (source=dynatrace)
StateNoOPEN, CLOSED, …
ProblemTitleNoPulse title

Lifecycle mapping ​

Dynatrace statePulse status
OPEN, OPENED, NEW, activeReceived → triage
CLOSED, RESOLVED, MERGEDResolved

Example ​

bash
TOKEN="your-url-token"
curl -i -X POST "https://exhaleoncall.com/webhooks/dynatrace/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"PID":"P-1","State":"OPEN","ProblemTitle":"High CPU"}'

See Errors & authentication for structured errors, 413 size limits, Redis delivery dedupe, and token rotation.

Exhale by Kolstrom Systems LLC