alarms topic to Flashduty On-call. Paired Mist alarms (for example device_down and device_reconnected) are correlated by device, so the recovery type recovers the matching alert. A Marvis alarm recovers when its status changes from open to resolved on the same alarm id. Every other alarm is deduplicated by alarm id and does not recover automatically.
In Flashduty On-call
You can obtain an integration push URL in either of the following ways.
Use a dedicated integration
- In the Flashduty console, select Channel and open a channel
- Select Configuration → Integrations → Private integration, then click Add an integration
- Select Juniper Mist, then click Save
- Open the generated integration card and copy the Push URL
Use a shared integration
- In the Flashduty console, select Integration Center → Alert Events
- Select Juniper Mist and enter an integration name
- Configure the default route and select a channel; after creation, add more rules under Route if needed
- Click Save and copy the generated Push URL
Configure Juniper Mist
1
Create a webhook
Create an organization (Org) or site webhook in Mist, either on the Webhooks configuration page of the Mist portal or through the API. For an organization webhook:Notes:
- Set
typetohttp-postandurlto the full Flashduty push URL, includingintegration_key - Select only the
alarmstopic. Other topics (such asdevice-updownsoraudits) are not alarms; Flashduty acknowledges them and creates no alert - The secret can be left empty. When a secret is set, Mist adds signatures in the
X-Mist-Signature-v2(HMAC-SHA256) andX-Mist-Signature(HMAC-SHA1) headers; Flashduty does not verify them and authenticates with theintegration_keyin the push URL - The API host depends on your Mist cloud region (for example
api.eu.mist.com)
2
Choose the alarm types to send
The webhook only sends alarm types that are enabled. Enable the types you need in the Alerts configuration in Mist.
GET https://api.mist.com/api/v1/const/alarm_defs lists every alarm type with its default enablement, severity, and an example payload.3
Save and verify
- After saving the webhook, call Ping Org Webhook (
POST /api/v1/orgs/<org_id>/webhooks/<webhook_id>/ping) or Ping Site Webhook to send a test request. Flashduty creates a separate Info alert titledJuniper Mist test notification; no recovery follows, so close it by hand - Trigger a real alarm (for example, disconnect an AP) and confirm Flashduty receives the alert
- After the device reconnects, confirm the matching alert recovers
Alert Key
One delivery can carry several alarm events (the
events array). Flashduty handles each event on its own.
Paired alarms: Mist reports a fault and its recovery as two alarm types, for example device_down and device_reconnected, and their alarm id values differ. Flashduty uses the type correspondence in alarm_defs and builds the Alert Key from org_id, site_id, the type pair (for example AP connection), and the device, so the fault and recovery types share one Alert Key. The device comes from aps, switches, gateways, mxedge_ids, or cellular_edges, and from hostnames when none of them is present. An event that names several devices produces one Flashduty alert per device, so a recovery for some of them recovers only those alerts.
DHCP, DNS, and ARP types (infra_dhcp_failure / infra_dhcp_success and so on) carry no device field and use vlans and servers. LACP members, tunnels, and Mist Edge power and fan types also add the port (port_ids), tunnel name (tunnel_names), or component (component).
Other alarms: the alarm id is the Alert Key. When Mist re-sends an alarm within its aggregation window, it sends update: true with the same id, and Flashduty merges it into the same alert. When the status of a Marvis alarm becomes resolved, the alert with that id recovers.
Changes to severity, count, hostnames, or names do not change the Alert Key. An event without type, an unpaired event without id, or a paired event without any device information is rejected.
The paired types are: AP, switch, and WAN Edge offline and reconnect (device_down, switch_down, gateway_down); VPN peers and paths; BGP and OSPF neighbors; critical ports and virtual chassis ports; tunnels; chassis alarms (sw_alarm_chassis_* and gw_alarm_chassis_* with their _clear types); cellular edge connect and disconnect; Mist Edge connection, power, fan, and CPU, memory, and disk usage; tunnel terminator tunnels; WAN Edge flow and FIB thresholds; switch DDoS protocol violations; and DHCP, DNS, and ARP.
Several critical-port alarms on the same switch or gateway share one Alert Key, and so do the two nodes of an HA cluster.
Status and severity
Severity comes from
severity:
A recovery event keeps its own severity.
Labels
The alert title is
type: device or hostname, for example device down: d420b02000fa. The description comes from reasons, text, suggestion, and count.
Troubleshooting
- Flashduty returns an invalid-parameter error: confirm the URL is complete and includes
integration_key, and that the body is a Mistalarmstopic payload - An alert does not recover: confirm the matching recovery type is enabled in Mist too (for example, if AP offline is enabled, also enable AP reconnected). Check each type’s default enablement in
alarm_defs - The webhook arrives but no alert appears: deliveries whose
topicis notalarms(such asdevice-updowns) are ignored - The test request created an alert: the ping creates a separate Info alert; close it by hand