CREATED) and end (ENDED) notifications to Flashduty On-call. Each ClusterControl alarm maps to one Flashduty alert: the alert triggers when the alarm is raised and recovers when the alarm ends.
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 ClusterControl 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 ClusterControl 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 ClusterControl
1
Add a webhook integration
- Log in to the ClusterControl console and go to Settings → Notification services → Add new integration → Webhook
- Enter
Flashdutyas the Integration name - Paste the full Flashduty push URL into Url
- Click Test credentials to check the configuration
2
Choose clusters and events
Under Notification settings, select the Clusters and Events to forward (for example All Warnings Events and All Critical Events), then click Finish.
3
Verify the lifecycle
Raise a real alarm (for example, stop a managed database node) and confirm Flashduty receives an active alert. After the node is back, ClusterControl sends an
ENDED notification and the Flashduty alert recovers.Payload
ClusterControl POSTs the following JSON fields. Flashduty parses them directly, with no template to configure:
The alert title is
title; when empty, it is ClusterControl alarm <id>.
Alert Key
Flashduty uses the alarm
id as the Alert Key. The ClusterControl documentation states that when an alarm ends it sends another event with the same alarm ID and status set to ENDED, so the created, changed and ended notifications land on the same Flashduty alert, and different id values produce different alerts. Changing the title, host or severity does not change the Alert Key.
The documented payload has no cluster ID (ClusterControl 2.1.0 also sends controller_hostname, cluster_id and cluster_name, which Flashduty does not use), and alarm IDs are unique only within one ClusterControl controller. If you run several controllers, create a separate Flashduty integration for each.
When a request has no id, Flashduty returns a parameter error, because a recovery could not be matched to its alert reliably.
Status and severity
A request whose
status is empty or any other value is rejected, so a request with an unknown state never enters the wrong alert lifecycle. ClusterControl forwards only CREATED and ENDED by default; CHANGED must be enabled with the allowed_events parameter of cmon-events.
FAQ
Test credentials reports a failure in ClusterControl?
Test credentials reports a failure in ClusterControl?
The button sends a fixed test alarm (
id 1, component ServiceCredentialsTest, title “Test credentials alarm”). Flashduty answers HTTP 200 and opens one separate Info alert under its own Alert Key, so it never merges with a real alarm. No recovery follows; close the alert manually in the channel.Why were existing alarms not synced?
Why were existing alarms not synced?
ClusterControl forwards only alarms raised after the integration was created. The
ENDED notification of an earlier alarm has no active alert in Flashduty and does not create a new one.Are muted alarms pushed?
Are muted alarms pushed?
In ClusterControl, a muted alarm type sends no notification until it is unmuted.
Troubleshooting
- Flashduty receives no alert: confirm the URL is the complete push URL (including
integration_key), that thecmon-eventsprocess is running, and that notifications are enabled for the cluster and events - Flashduty returns a parameter error: confirm the body is ClusterControl’s JSON and that
idandstatusare not empty - The alert does not recover: confirm the alarm has ended in ClusterControl and that the recovery notification carries the same
idas the trigger