alerting.custom provider to send endpoint health-check alerts to Flashduty On-call. Trigger, reminder, and recovery notifications for the same endpoint update one Flashduty alert.
Gatus has no fixed webhook format: you write the request body in its configuration. The template on this page is the format Flashduty parses, so copy it as is.
In Flashduty On-call
Create either a dedicated or shared Gatus alert integration and copy its complete Push URL.
Configure Gatus
1
Configure the custom provider
Add
alerting.custom to the Gatus configuration file and replace url with the complete Flashduty Push URL:2
Enable the custom alert on endpoints
Add an alert of
type: custom to each endpoint you want to send, and turn on send-on-resolved; otherwise Gatus does not send recovery notifications:failure-threshold is the number of consecutive failures before the alert triggers, and success-threshold is the number of consecutive successes before it resolves. If you set minimum-reminder-interval, Gatus resends TRIGGERED while the alert is ongoing, and those reminders update the same Flashduty alert.3
Reload Gatus and verify the lifecycle
Restart or reload Gatus so the configuration takes effect. Make an endpoint condition fail continuously and confirm Flashduty receives an active alert, then let the endpoint recover and confirm the same alert resolves. Gatus has no test button, so verify with a real failure and recovery.
Alert Key
Flashduty computes the Alert Key from the endpoint’s
group and name. Gatus identifies an endpoint by <group>_<name> and provides no separate ID per alert, so the trigger, reminders, and recovery of one endpoint share one Alert Key. An endpoint without a group uses name alone.
- After you rename an endpoint or change its
group, Gatus treats it as a new endpoint, and the old Flashduty alert is not resolved; close it manually - Several
customalerts on one endpoint (with differentdescriptionvalues) share one Alert Key - Changes to
url,description, orerrorsdo not change the Alert Key
Status and severity
Gatus alerts have no severity field, so a failing endpoint health check is treated as Critical. Empty or other status values are rejected.
Troubleshooting
- Gatus logs
status code 400: confirmmethodisPOST, the body is valid JSON, andnameandstatusare not empty. Gatus escapes only double quotes in[RESULT_ERRORS]; a double quote, backslash, or line break in an endpoint name, group, or description breaks the JSON, so avoid those characters - Gatus logs
status code 404or401: confirm the Push URL is complete and containsintegration_key - The alert does not recover: confirm the endpoint alert sets
send-on-resolved: trueand thatplaceholdersdoes not rewrite the status values - No alert arrives: confirm the endpoint alert type is
customand the failure count has reachedfailure-threshold - Do not add
[RESULT_CONDITIONS]: it contains backticks and is not escaped, so a double quote in a condition breaks the JSON