$EVENT_* variables. This integration therefore asks you to create the webhook integrations from the template below, and Flashduty parses exactly the output of that template. The Flashduty alert triggers when the monitor enters the alert or warning state and closes automatically when it recovers.
In Flashduty On-call
You can get the integration push URL in either of the following ways.
Use a dedicated integration
- In the Flashduty console, go to Channels and open a channel
- Select Configuration → Integrations → Private integration, then click Add an integration
- Select Edge Delta and click Save
- Open the new integration card and copy the push URL
Use a shared integration
- In the Flashduty console, go to Integration Center → Alert Events
- Select Edge Delta and enter an integration name
- Configure the default route and select a channel. You can add more rules under Routes after creation
- Click Save and copy the generated push URL
In Edge Delta
1
Create one webhook integration per state
- Log in to Edge Delta, click Admin → Legacy Integrations, open the Available tab, then search for and select Webhook
- Create an integration named
flashduty-alert: set Endpoint to the complete Flashduty push URL, add the headerContent-Type: application/json, and paste the template below into Payload - Create
flashduty-recoverythe same way (withstatusset torecovery). For warnings, also createflashduty-warning(withstatusset towarning)
The template leaves out
$EVENT_MSG, $EVENT_QUERY and $EVENT_TITLE: they can contain quotes or line breaks that make the JSON invalid, so the alert or its recovery would be lost. $EVENT_METRIC and $EVENT_EVALUATED_VALUE are empty for log monitors (log threshold, pattern anomaly); Flashduty accepts empty values.2
Reference the integrations in the monitor notification
Edit the monitor and reference each integration by state in Notifications:Save the monitor.
{{#is_recovery}} applies when an alert or warning returns to normal.3
Verify the lifecycle
Click Test Notifications in the monitor’s notification section to send a test request. Flashduty receives a Critical alert (the test request looks the same as a real alert and cannot be told apart), so close it manually after verifying. You can also let the monitor enter the alert state for real, confirm Flashduty receives the alert, and confirm it closes automatically after recovery.
Payload
Alert Key
Flashduty builds the Alert Key from
monitor and group. The alert, warning and recovery requests of one monitor (and one group) carry the same monitor and group, so they land on the same alert; different groups stay separate. A monitor without group by has an empty group, so the whole monitor maps to one alert. value, metric and the time are not part of the Alert Key.
The Edge Delta documentation does not provide a stable ID for monitor events, so the Alert Key is built from the
monitor text you type and $EVENT_GROUP_ALL. Edge Delta’s own PagerDuty example also pairs trigger and resolve on the group value. This integration has not been verified on a live account yet.Status and severity
If
monitor or status is missing, or status is not one of the values above, Flashduty returns a parameter error.
FAQ
Why must monitor be typed instead of using a variable?
Why must monitor be typed instead of using a variable?
Among the
$EVENT_* variables listed in the Edge Delta documentation there is no monitor ID or name, only $EVENT_ID (the event ID, and the documentation does not say whether the alert and the recovery of one monitor share it). Fixed text guarantees that the alert and the recovery match.Do I get repeated notifications while the monitor stays in alert?
Do I get repeated notifications while the monitor stays in alert?
If the monitor has a renotification period, Edge Delta sends the alert request again at that interval. These requests have the same Alert Key, so Flashduty merges them into one alert and does not create a new incident.
Troubleshooting
- Edge Delta does not push: confirm the monitor’s Notifications reference
@webhook-<integration name>inside the matching{{#is_alert}}or similar block - Flashduty returns a parameter error: confirm
statusin the template isalert,warningorrecovery,monitoris not empty, and the body is valid JSON - The alert does not recover: confirm
monitorin the recovery integration is identical to the alert integration; for a monitor with group by, confirmgroupin the recovery request matches the alert