Appearance
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.
See Incoming integrations for how Dynatrace fits alongside PagerDuty, New Relic, and Manual webhook.
OpenAPI: POST /webhooks/dynatrace (header token) and POST /webhooks/dynatrace/{token}.
Endpoint
After Connect in Connections → Integrations → Observability & alerts → Dynatrace:
Preferred (keeps tokens out of proxy access logs):
POST https://exhale.kolstromsystems.com/webhooks/dynatraceSend header X-Exhale-Webhook-Token: {token}.
Path form (also supported):
POST https://exhale.kolstromsystems.com/webhooks/dynatrace/{token}Design partners may substitute https://exhale-staging.kolstromsystems.com as the host.
token— opaque URL segment; this token authenticates the delivery.- Response: 202 Accepted with
pulse_id,status,created, andmessage.
Unknown tokens return 404. Disabled or expired-trial tenants return 403.
Customer setup
- Sign in as admin → Connections → Integrations → Dynatrace.
- Click Connect Dynatrace and copy the webhook URL.
- In Dynatrace, open Problem notifications, add a custom webhook integration, and paste the Exhale URL.
- Include
PIDandStatein the custom payload (Dynatrace placeholders such as{PID}/{State}). - Send test alert creates a synthetic pulse and marks the integration configured.
Rotate webhook token invalidates the previous URL immediately — update Dynatrace after rotating.
Payload shape
| Field | Required | Notes |
|---|---|---|
PID | Yes | Stable id for dedupe (source=dynatrace) |
State | No | OPEN, CLOSED, … |
ProblemTitle | No | Pulse title |
Lifecycle mapping
| Dynatrace state | Pulse status |
|---|---|
| OPEN, OPENED, NEW, active | Received → triage |
| CLOSED, RESOLVED, MERGED | Resolved |
Example
bash
TOKEN="your-url-token"
curl -i -X POST "https://exhale.kolstromsystems.com/webhooks/dynatrace/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"PID":"P-1","State":"OPEN","ProblemTitle":"High CPU"}'Related
Full detail (dedupe, fixtures, security): Dynatrace webhooks in the repository wiki. Planning track: Observability ingest v2.