Skip to main content
Use Gatus’s 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.
method must be POST; the Gatus default is GET. Keep the status and name fields, and do not rewrite the values of [ALERT_TRIGGERED_OR_RESOLVED] with placeholders: Flashduty only accepts TRIGGERED and RESOLVED. A request with no name, or with an unrecognized status, is rejected because later updates and recoveries could not be matched reliably.
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’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 custom alerts on one endpoint (with different description values) share one Alert Key
  • Changes to url, description, or errors do 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: confirm method is POST, the body is valid JSON, and name and status are 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 404 or 401: confirm the Push URL is complete and contains integration_key
  • The alert does not recover: confirm the endpoint alert sets send-on-resolved: true and that placeholders does not rewrite the status values
  • No alert arrives: confirm the endpoint alert type is custom and the failure count has reached failure-threshold
  • Do not add [RESULT_CONDITIONS]: it contains backticks and is not escaped, so a double quote in a condition breaks the JSON
For more parameters, see the Gatus custom alert documentation.