receiver, status, alerts, groupLabels, commonLabels, commonAnnotations, externalURL, and so on; each alert carries status, labels, annotations, startsAt, endsAt, generatorURL, fingerprint, plus CubeAPM’s own cubeImageURL and cubeSampleLog). The Flashduty Prometheus integration accepts this format, so no separate CubeAPM integration is needed: create a Prometheus integration in Flashduty and paste its push URL into CubeAPM.
In Flashduty On-call
Get an integration push URL in either of the two ways below. Choose the Prometheus integration type in both, not Chronosphere.
Use a dedicated integration
- In the Flashduty console, go to Channels and open a channel
- Go to Settings → Integrations → Dedicated integrations and click Add an integration
- Select Prometheus and click Save
- Open the generated integration card and copy the Push URL, in the form
https://api.flashcat.cloud/event/push/alert/prometheus?integration_key=<integration key>
Use a shared integration
- In the Flashduty console, go to Integration Center → Alert Events
- Select Prometheus 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
Configure in CubeAPM
1
Create a webhook receiver
When creating an alert in CubeAPM, select Webhook as the Receiver Type and enter the full push URL copied above, including
?integration_key=..., in Webhook URL.The CubeAPM documentation states that the webhook JSON body is Alertmanager-compatible by default and can be customized with a Go template in Payload. If you customize it, keep the Alertmanager-style alerts array and make every alert carry status, labels, annotations, startsAt, endsAt and fingerprint; otherwise Flashduty cannot tell trigger from recovery or match a recovery to its alert.2
Verify
Let a CubeAPM alert rule fire and confirm Flashduty receives an active alert; after it resolves, confirm the original alert closes in Flashduty.
Field mapping
One notification can carry several alerts, and Flashduty handles each one separately (up to 100 per request).
Recovery and deduplication
- When CubeAPM sends a notification whose
statusis notfiring(for exampleresolved), Flashduty closes the alert with the samefingerprint. CubeAPM’s own PagerDuty and Zenduty examples likewise map any non-firingstatus to a resolve. - The CubeAPM documentation does not say whether the webhook has a test-send function. After the first setup, verify with a real alert that both trigger and recovery appear in Flashduty.
Troubleshooting
- Flashduty returns
Invalid parameters: the push URL is incomplete,integration_keyis missing, or the integration type is not Prometheus - Alerts do not resolve: confirm that every alert in a customized Payload has
statusandfingerprint, and that the recovery notification carries the samefingerprintas the trigger - No alerts arrive: confirm CubeAPM can reach
api.flashcat.cloudand that the alert rule uses this webhook receiver