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 in Gatus
Where: config.yaml › alerting › customGatus reads
config/config.yaml by default; set the GATUS_CONFIG_PATH environment variable to use another location.2
Enable the custom alert on endpoints
Where: config.yaml › endpoints › alerts
failure-threshold sets how many consecutive failures trigger the alert, and success-threshold sets how many consecutive successes recover it. If minimum-reminder-interval is set, Gatus resends TRIGGERED while the alert lasts, and these reminders update the same Flashduty alert.Add this alert under every endpoint you want to send.3
Reload Gatus and verify the lifecycle
Restart or reload Gatus so the configuration takes effect. Make one endpoint’s conditions keep failing (for example, change
conditions to a value that can never be met) and confirm Flashduty receives an active alert; then let the endpoint return to normal and confirm the alert recovers. Gatus has no test button, so only real failures and recoveries can verify the integration.In Flashduty, the integration then shows its Latest event time.Alert key
Flashduty computes the Alert Key from the endpoint’sgroup 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