1
0
mirror of https://github.com/TwiN/gatus.git synced 2026-02-04 12:56:48 +00:00

feat(alerting): Add new providers for Datadog, IFTTT, Line, NewRelic, Plivo, RocketChat, SendGrid, Signal, SIGNL4, Splunk, Squadcast, Vonage, Webex and Zapier (#1224)

* feat(alerting): Add new providers for Datadog, IFTTT, Line, NewRelic, Plivo, RocketChat, SendGrid, Signal, SIGNL4, Splunk, Squadcast, Vonage, Webex and Zapier

Relevant: https://github.com/TwiN/gatus/discussions/1223

Fixes #1073
Fixes #1074

* chore: Clean up code

* docs: Fix table formatting

* Update alerting/provider/datadog/datadog.go

* Update alerting/provider/signal/signal.go

* Update alerting/provider/ifttt/ifttt.go

* Update alerting/provider/newrelic/newrelic.go

* Update alerting/provider/squadcast/squadcast.go

* Update alerting/provider/squadcast/squadcast.go
This commit is contained in:
TwiN
2025-08-25 13:22:17 -04:00
committed by GitHub
parent 6e888430fa
commit a49b9145d2
39 changed files with 7321 additions and 84 deletions

651
README.md
View File

@@ -52,6 +52,7 @@ Have any feedback or questions? [Create a discussion](https://github.com/TwiN/ga
- [Client configuration](#client-configuration)
- [Alerting](#alerting)
- [Configuring AWS SES alerts](#configuring-aws-ses-alerts)
- [Configuring Datadog alerts](#configuring-datadog-alerts)
- [Configuring Discord alerts](#configuring-discord-alerts)
- [Configuring Email alerts](#configuring-email-alerts)
- [Configuring Gitea alerts](#configuring-gitea-alerts)
@@ -60,21 +61,34 @@ Have any feedback or questions? [Create a discussion](https://github.com/TwiN/ga
- [Configuring Google Chat alerts](#configuring-google-chat-alerts)
- [Configuring Gotify alerts](#configuring-gotify-alerts)
- [Configuring HomeAssistant alerts](#configuring-homeassistant-alerts)
- [Configuring IFTTT alerts](#configuring-ifttt-alerts)
- [Configuring Ilert alerts](#configuring-ilert-alerts)
- [Configuring Incident.io alerts](#configuring-incidentio-alerts)
- [Configuring JetBrains Space alerts](#configuring-jetbrains-space-alerts)
- [Configuring Line alerts](#configuring-line-alerts)
- [Configuring Matrix alerts](#configuring-matrix-alerts)
- [Configuring Mattermost alerts](#configuring-mattermost-alerts)
- [Configuring Messagebird alerts](#configuring-messagebird-alerts)
- [Configuring New Relic alerts](#configuring-new-relic-alerts)
- [Configuring Ntfy alerts](#configuring-ntfy-alerts)
- [Configuring Opsgenie alerts](#configuring-opsgenie-alerts)
- [Configuring PagerDuty alerts](#configuring-pagerduty-alerts)
- [Configuring Plivo alerts](#configuring-plivo-alerts)
- [Configuring Pushover alerts](#configuring-pushover-alerts)
- [Configuring Rocket.Chat alerts](#configuring-rocketchat-alerts)
- [Configuring SendGrid alerts](#configuring-sendgrid-alerts)
- [Configuring Signal alerts](#configuring-signal-alerts)
- [Configuring SIGNL4 alerts](#configuring-signl4-alerts)
- [Configuring Slack alerts](#configuring-slack-alerts)
- [Configuring Splunk alerts](#configuring-splunk-alerts)
- [Configuring Squadcast alerts](#configuring-squadcast-alerts)
- [Configuring Teams alerts *(Deprecated)*](#configuring-teams-alerts-deprecated)
- [Configuring Teams Workflow alerts](#configuring-teams-workflow-alerts)
- [Configuring Telegram alerts](#configuring-telegram-alerts)
- [Configuring Twilio alerts](#configuring-twilio-alerts)
- [Configuring Vonage alerts](#configuring-vonage-alerts)
- [Configuring Webex alerts](#configuring-webex-alerts)
- [Configuring Zapier alerts](#configuring-zapier-alerts)
- [Configuring Zulip alerts](#configuring-zulip-alerts)
- [Configuring custom alerts](#configuring-custom-alerts)
- [Setting a default alert](#setting-a-default-alert)
@@ -637,6 +651,7 @@ endpoints:
|:---------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|:--------|
| `alerting.awsses` | Configuration for alerts of type `awsses`. <br />See [Configuring AWS SES alerts](#configuring-aws-ses-alerts). | `{}` |
| `alerting.custom` | Configuration for custom actions on failure or alerts. <br />See [Configuring Custom alerts](#configuring-custom-alerts). | `{}` |
| `alerting.datadog` | Configuration for alerts of type `datadog`. <br />See [Configuring Datadog alerts](#configuring-datadog-alerts). | `{}` |
| `alerting.discord` | Configuration for alerts of type `discord`. <br />See [Configuring Discord alerts](#configuring-discord-alerts). | `{}` |
| `alerting.email` | Configuration for alerts of type `email`. <br />See [Configuring Email alerts](#configuring-email-alerts). | `{}` |
| `alerting.gitea` | Configuration for alerts of type `gitea`. <br />See [Configuring Gitea alerts](#configuring-gitea-alerts). | `{}` |
@@ -644,23 +659,36 @@ endpoints:
| `alerting.gitlab` | Configuration for alerts of type `gitlab`. <br />See [Configuring GitLab alerts](#configuring-gitlab-alerts). | `{}` |
| `alerting.googlechat` | Configuration for alerts of type `googlechat`. <br />See [Configuring Google Chat alerts](#configuring-google-chat-alerts). | `{}` |
| `alerting.gotify` | Configuration for alerts of type `gotify`. <br />See [Configuring Gotify alerts](#configuring-gotify-alerts). | `{}` |
| `alerting.homeassistant` | Configuration for alerts of type `homeassistant`. <br />See [Configuring HomeAssistant alerts](#configuring-homeassistant-alerts). | `{}` |
| `alerting.ifttt` | Configuration for alerts of type `ifttt`. <br />See [Configuring IFTTT alerts](#configuring-ifttt-alerts). | `{}` |
| `alerting.ilert` | Configuration for alerts of type `ilert`. <br />See [Configuring ilert alerts](#configuring-ilert-alerts). | `{}` |
| `alerting.incident-io` | Configuration for alerts of type `incident-io`. <br />See [Configuring Incident.io alerts](#configuring-incidentio-alerts). | `{}` |
| `alerting.jetbrainsspace` | Configuration for alerts of type `jetbrainsspace`. <br />See [Configuring JetBrains Space alerts](#configuring-jetbrains-space-alerts). | `{}` |
| `alerting.line` | Configuration for alerts of type `line`. <br />See [Configuring Line alerts](#configuring-line-alerts). | `{}` |
| `alerting.matrix` | Configuration for alerts of type `matrix`. <br />See [Configuring Matrix alerts](#configuring-matrix-alerts). | `{}` |
| `alerting.mattermost` | Configuration for alerts of type `mattermost`. <br />See [Configuring Mattermost alerts](#configuring-mattermost-alerts). | `{}` |
| `alerting.messagebird` | Configuration for alerts of type `messagebird`. <br />See [Configuring Messagebird alerts](#configuring-messagebird-alerts). | `{}` |
| `alerting.newrelic` | Configuration for alerts of type `newrelic`. <br />See [Configuring New Relic alerts](#configuring-new-relic-alerts). | `{}` |
| `alerting.ntfy` | Configuration for alerts of type `ntfy`. <br />See [Configuring Ntfy alerts](#configuring-ntfy-alerts). | `{}` |
| `alerting.opsgenie` | Configuration for alerts of type `opsgenie`. <br />See [Configuring Opsgenie alerts](#configuring-opsgenie-alerts). | `{}` |
| `alerting.pagerduty` | Configuration for alerts of type `pagerduty`. <br />See [Configuring PagerDuty alerts](#configuring-pagerduty-alerts). | `{}` |
| `alerting.plivo` | Configuration for alerts of type `plivo`. <br />See [Configuring Plivo alerts](#configuring-plivo-alerts). | `{}` |
| `alerting.pushover` | Configuration for alerts of type `pushover`. <br />See [Configuring Pushover alerts](#configuring-pushover-alerts). | `{}` |
| `alerting.rocketchat` | Configuration for alerts of type `rocketchat`. <br />See [Configuring Rocket.Chat alerts](#configuring-rocketchat-alerts). | `{}` |
| `alerting.sendgrid` | Configuration for alerts of type `sendgrid`. <br />See [Configuring SendGrid alerts](#configuring-sendgrid-alerts). | `{}` |
| `alerting.signal` | Configuration for alerts of type `signal`. <br />See [Configuring Signal alerts](#configuring-signal-alerts). | `{}` |
| `alerting.signl4` | Configuration for alerts of type `signl4`. <br />See [Configuring SIGNL4 alerts](#configuring-signl4-alerts). | `{}` |
| `alerting.slack` | Configuration for alerts of type `slack`. <br />See [Configuring Slack alerts](#configuring-slack-alerts). | `{}` |
| `alerting.splunk` | Configuration for alerts of type `splunk`. <br />See [Configuring Splunk alerts](#configuring-splunk-alerts). | `{}` |
| `alerting.squadcast` | Configuration for alerts of type `squadcast`. <br />See [Configuring Squadcast alerts](#configuring-squadcast-alerts). | `{}` |
| `alerting.teams` | Configuration for alerts of type `teams`. *(Deprecated)* <br />See [Configuring Teams alerts](#configuring-teams-alerts-deprecated). | `{}` |
| `alerting.teams-workflows` | Configuration for alerts of type `teams-workflows`. <br />See [Configuring Teams Workflow alerts](#configuring-teams-workflow-alerts). | `{}` |
| `alerting.telegram` | Configuration for alerts of type `telegram`. <br />See [Configuring Telegram alerts](#configuring-telegram-alerts). | `{}` |
| `alerting.twilio` | Settings for alerts of type `twilio`. <br />See [Configuring Twilio alerts](#configuring-twilio-alerts). | `{}` |
| `alerting.vonage` | Configuration for alerts of type `vonage`. <br />See [Configuring Vonage alerts](#configuring-vonage-alerts). | `{}` |
| `alerting.webex` | Configuration for alerts of type `webex`. <br />See [Configuring Webex alerts](#configuring-webex-alerts). | `{}` |
| `alerting.zapier` | Configuration for alerts of type `zapier`. <br />See [Configuring Zapier alerts](#configuring-zapier-alerts). | `{}` |
| `alerting.zulip` | Configuration for alerts of type `zulip`. <br />See [Configuring Zulip alerts](#configuring-zulip-alerts). | `{}` |
| `alerting.homeassistant` | Configuration for alerts of type `homeassistant`. <br />See [Configuring HomeAssistant alerts](#configuring-homeassistant-alerts). | `{}` |
#### Configuring AWS SES alerts
@@ -703,6 +731,42 @@ If the `access-key-id` and `secret-access-key` are not defined Gatus will fall b
Make sure you have the ability to use `ses:SendEmail`.
#### Configuring Datadog alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:-------------------------------------|:-------------------------------------------------------------------------------------------|:------------------|
| `alerting.datadog` | Configuration for alerts of type `datadog` | `{}` |
| `alerting.datadog.api-key` | Datadog API key | Required `""` |
| `alerting.datadog.site` | Datadog site (e.g., datadoghq.com, datadoghq.eu) | `"datadoghq.com"` |
| `alerting.datadog.tags` | Additional tags to include | `[]` |
| `alerting.datadog.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.datadog.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.datadog.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.datadog.overrides[].*` | See `alerting.datadog.*` parameters | `{}` |
```yaml
alerting:
datadog:
api-key: "YOUR_API_KEY"
site: "datadoghq.com" # or datadoghq.eu for EU region
tags:
- "environment:production"
- "team:platform"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: datadog
send-on-resolved: true
```
#### Configuring Discord alerts
| Parameter | Description | Default |
|:-------------------------------------|:-------------------------------------------------------------------------------------------|:------------------------------------|
@@ -795,6 +859,7 @@ endpoints:
> ⚠ Some mail servers are painfully slow.
#### Configuring Gitea alerts
| Parameter | Description | Default |
@@ -802,7 +867,7 @@ endpoints:
| `alerting.gitea` | Configuration for alerts of type `gitea` | `{}` |
| `alerting.gitea.repository-url` | Gitea repository URL (e.g. `https://gitea.com/TwiN/example`) | Required `""` |
| `alerting.gitea.token` | Personal access token to use for authentication. <br />Must have at least RW on issues and RO on metadata. | Required `""` |
| `alerting.github.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert). | N/A |
| `alerting.gitea.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert). | N/A |
The Gitea alerting provider creates an issue prefixed with `alert(gatus):` and suffixed with the endpoint's display
name for each alert. If `send-on-resolved` is set to `true` on the endpoint alert, the issue will be automatically
@@ -832,6 +897,7 @@ endpoints:
![Gitea alert](.github/assets/gitea-alerts.png)
#### Configuring GitHub alerts
| Parameter | Description | Default |
@@ -869,6 +935,7 @@ endpoints:
![GitHub alert](.github/assets/github-alerts.png)
#### Configuring GitLab alerts
| Parameter | Description | Default |
|:------------------------------------|:--------------------------------------------------------------------------------------------------------------------|:--------------|
@@ -952,51 +1019,6 @@ endpoints:
| `alerting.gotify.title` | Title of the notification | `"Gatus: <endpoint>"` |
| `alerting.gotify.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert). | N/A |
#### Configuring ilert alerts
| Parameter | Description | Default |
|:---------------------------------------|:-------------------------------------------------------------------------------------------|:--------|
| `alerting.ilert` | Configuration for alerts of type `ilert` | `{}` |
| `alerting.ilert.integration-key` | ilert Alert Source integration key | `""` |
| `alerting.ilert.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.ilert.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.ilert.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.ilert.overrides[].*` | See `alerting.ilert.*` parameters | `{}` |
It is highly recommended to set `endpoints[].alerts[].send-on-resolved` to `true` for alerts
of type `ilert`, because unlike other alerts, the operation resulting from setting said
parameter to `true` will not create another alert but mark the alert as resolved on
ilert instead.
Behavior:
- By default, `alerting.ilert.integration-key` is used as the integration key
- If the endpoint being evaluated belongs to a group (`endpoints[].group`) matching the value of `alerting.ilert.overrides[].group`, the provider will use that override's integration key instead of `alerting.ilert.integration-key`'s
```yaml
alerting:
ilert:
integration-key: "********************************"
# You can also add group-specific integration keys, which will
# override the integration key above for the specified groups
overrides:
- group: "core"
integration-key: "********************************"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 30s
conditions:
- "[STATUS] == 200"
- "[BODY].status == UP"
- "[RESPONSE_TIME] < 300"
alerts:
- type: ilert
failure-threshold: 3
success-threshold: 5
send-on-resolved: true
description: "healthcheck failed"
```
```yaml
alerting:
gotify:
@@ -1023,7 +1045,14 @@ Here's an example of what the notifications look like:
#### Configuring HomeAssistant alerts
To configure HomeAssistant alerts, you'll need to add the following to your configuration file:
| Parameter | Description | Default Value |
|:-------------------------------------------|:---------------------------------------------------------------------------------------|:--------------|
| `alerting.homeassistant.url` | HomeAssistant instance URL | Required `""` |
| `alerting.homeassistant.token` | Long-lived access token from HomeAssistant | Required `""` |
| `alerting.homeassistant.default-alert` | Default alert configuration to use for endpoints with an alert of the appropriate type | `{}` |
| `alerting.homeassistant.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.homeassistant.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.homeassistant.overrides[].*` | See `alerting.homeassistant.*` parameters | `{}` |
```yaml
alerting:
@@ -1091,6 +1120,84 @@ To get your HomeAssistant long-lived access token:
6. Copy the token - you'll only see it once!
#### Configuring IFTTT alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:-----------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.ifttt` | Configuration for alerts of type `ifttt` | `{}` |
| `alerting.ifttt.webhook-key` | IFTTT Webhook key | Required `""` |
| `alerting.ifttt.event-name` | IFTTT event name | Required `""` |
| `alerting.ifttt.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.ifttt.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.ifttt.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.ifttt.overrides[].*` | See `alerting.ifttt.*` parameters | `{}` |
```yaml
alerting:
ifttt:
webhook-key: "YOUR_WEBHOOK_KEY"
event-name: "gatus_alert"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: ifttt
send-on-resolved: true
```
#### Configuring ilert alerts
| Parameter | Description | Default |
|:-----------------------------------|:-------------------------------------------------------------------------------------------|:--------|
| `alerting.ilert` | Configuration for alerts of type `ilert` | `{}` |
| `alerting.ilert.integration-key` | ilert Alert Source integration key | `""` |
| `alerting.ilert.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.ilert.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.ilert.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.ilert.overrides[].*` | See `alerting.ilert.*` parameters | `{}` |
It is highly recommended to set `endpoints[].alerts[].send-on-resolved` to `true` for alerts
of type `ilert`, because unlike other alerts, the operation resulting from setting said
parameter to `true` will not create another alert but mark the alert as resolved on
ilert instead.
Behavior:
- By default, `alerting.ilert.integration-key` is used as the integration key
- If the endpoint being evaluated belongs to a group (`endpoints[].group`) matching the value of `alerting.ilert.overrides[].group`, the provider will use that override's integration key instead of `alerting.ilert.integration-key`'s
```yaml
alerting:
ilert:
integration-key: "********************************"
# You can also add group-specific integration keys, which will
# override the integration key above for the specified groups
overrides:
- group: "core"
integration-key: "********************************"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 30s
conditions:
- "[STATUS] == 200"
- "[BODY].status == UP"
- "[RESPONSE_TIME] < 300"
alerts:
- type: ilert
failure-threshold: 3
success-threshold: 5
send-on-resolved: true
description: "healthcheck failed"
```
#### Configuring Incident.io alerts
| Parameter | Description | Default |
|:-----------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
@@ -1163,6 +1270,40 @@ Here's an example of what the notifications look like:
![JetBrains Space notifications](.github/assets/jetbrains-space-alerts.png)
#### Configuring Line alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:-------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.line` | Configuration for alerts of type `line` | `{}` |
| `alerting.line.channel-access-token` | Line Messaging API channel access token | Required `""` |
| `alerting.line.user-ids` | List of Line user IDs to send messages to | Required `[]` |
| `alerting.line.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.line.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.line.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.line.overrides[].*` | See `alerting.line.*` parameters | `{}` |
```yaml
alerting:
line:
channel-access-token: "YOUR_CHANNEL_ACCESS_TOKEN"
user-ids:
- "U1234567890abcdef"
- "U2345678901bcdefg"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: line
send-on-resolved: true
```
#### Configuring Matrix alerts
| Parameter | Description | Default |
|:-----------------------------------------|:-------------------------------------------------------------------------------------------|:-----------------------------------|
@@ -1171,6 +1312,9 @@ Here's an example of what the notifications look like:
| `alerting.matrix.access-token` | Bot user access token (see https://webapps.stackexchange.com/q/131056) | Required `""` |
| `alerting.matrix.internal-room-id` | Internal room ID of room to send alerts to (can be found in Room Settings > Advanced) | Required `""` |
| `alerting.matrix.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.matrix.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.matrix.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.matrix.overrides[].*` | See `alerting.matrix.*` parameters | `{}` |
```yaml
alerting:
@@ -1265,6 +1409,40 @@ endpoints:
```
#### Configuring New Relic alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:--------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.newrelic` | Configuration for alerts of type `newrelic` | `{}` |
| `alerting.newrelic.api-key` | New Relic API key | Required `""` |
| `alerting.newrelic.account-id` | New Relic account ID | Required `""` |
| `alerting.newrelic.region` | Region (US or EU) | `"US"` |
| `alerting.newrelic.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.newrelic.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.newrelic.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.newrelic.overrides[].*` | See `alerting.newrelic.*` parameters | `{}` |
```yaml
alerting:
newrelic:
api-key: "YOUR_API_KEY"
account-id: "1234567"
region: "US" # or "EU" for European region
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: newrelic
send-on-resolved: true
```
#### Configuring Ntfy alerts
| Parameter | Description | Default |
|:-------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------|:------------------|
@@ -1407,19 +1585,61 @@ endpoints:
```
#### Configuring Plivo alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:-----------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.plivo` | Configuration for alerts of type `plivo` | `{}` |
| `alerting.plivo.auth-id` | Plivo Auth ID | Required `""` |
| `alerting.plivo.auth-token` | Plivo Auth Token | Required `""` |
| `alerting.plivo.from` | Phone number to send SMS from | Required `""` |
| `alerting.plivo.to` | List of phone numbers to send SMS to | Required `[]` |
| `alerting.plivo.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.plivo.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.plivo.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.plivo.overrides[].*` | See `alerting.plivo.*` parameters | `{}` |
```yaml
alerting:
plivo:
auth-id: "MAXXXXXXXXXXXXXXXXXX"
auth-token: "your-auth-token"
from: "+1234567890"
to:
- "+0987654321"
- "+1122334455"
endpoints:
- name: website
interval: 30s
url: "https://twin.sh/health"
conditions:
- "[STATUS] == 200"
- "[BODY].status == UP"
- "[RESPONSE_TIME] < 300"
alerts:
- type: plivo
failure-threshold: 5
send-on-resolved: true
description: "healthcheck failed"
```
#### Configuring Pushover alerts
| Parameter | Description | Default |
|:--------------------------------------|:---------------------------------------------------------------------------------------------------------|:----------------------------|
| `alerting.pushover` | Configuration for alerts of type `pushover` | `{}` |
| `alerting.pushover.application-token` | Pushover application token | `""` |
| `alerting.pushover.user-key` | User or group key | `""` |
| `alerting.pushover.title` | Fixed title for all messages sent via Pushover | `"Gatus: <endpoint>"` |
| `alerting.pushover.priority` | Priority of all messages, ranging from -2 (very low) to 2 (emergency) | `0` |
| `alerting.pushover.resolved-priority` | Override the priority of messages on resolved, ranging from -2 (very low) to 2 (emergency) | `0` |
| `alerting.pushover.sound` | Sound of all messages<br />See [sounds](https://pushover.net/api#sounds) for all valid choices. | `""` |
| `alerting.pushover.ttl` | Set the Time-to-live of the message to be automatically deleted from pushover notifications | `0` |
| `alerting.pushover.device` | Device to send the message to (optional)<br/>See [devices](https://pushover.net/api#identifiers) for details | `""` (all devices)|
| `alerting.pushover.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| Parameter | Description | Default |
|:--------------------------------------|:-------------------------------------------------------------------------------------------------------------|:----------------------|
| `alerting.pushover` | Configuration for alerts of type `pushover` | `{}` |
| `alerting.pushover.application-token` | Pushover application token | `""` |
| `alerting.pushover.user-key` | User or group key | `""` |
| `alerting.pushover.title` | Fixed title for all messages sent via Pushover | `"Gatus: <endpoint>"` |
| `alerting.pushover.priority` | Priority of all messages, ranging from -2 (very low) to 2 (emergency) | `0` |
| `alerting.pushover.resolved-priority` | Override the priority of messages on resolved, ranging from -2 (very low) to 2 (emergency) | `0` |
| `alerting.pushover.sound` | Sound of all messages<br />See [sounds](https://pushover.net/api#sounds) for all valid choices. | `""` |
| `alerting.pushover.ttl` | Set the Time-to-live of the message to be automatically deleted from pushover notifications | `0` |
| `alerting.pushover.device` | Device to send the message to (optional)<br/>See [devices](https://pushover.net/api#identifiers) for details | `""` (all devices) |
| `alerting.pushover.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
```yaml
alerting:
@@ -1444,6 +1664,140 @@ endpoints:
```
#### Configuring Rocket.Chat alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:----------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.rocketchat` | Configuration for alerts of type `rocketchat` | `{}` |
| `alerting.rocketchat.webhook-url` | Rocket.Chat incoming webhook URL | Required `""` |
| `alerting.rocketchat.channel` | Optional channel override | `""` |
| `alerting.rocketchat.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.rocketchat.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.rocketchat.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.rocketchat.overrides[].*` | See `alerting.rocketchat.*` parameters | `{}` |
```yaml
alerting:
rocketchat:
webhook-url: "https://your-rocketchat.com/hooks/YOUR_WEBHOOK_ID/YOUR_TOKEN"
channel: "#alerts" # Optional
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: rocketchat
send-on-resolved: true
```
#### Configuring Signal alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.signal` | Configuration for alerts of type `signal` | `{}` |
| `alerting.signal.api-url` | Signal API URL (e.g., signal-cli-rest-api instance) | Required `""` |
| `alerting.signal.number` | Sender phone number | Required `""` |
| `alerting.signal.recipients` | List of recipient phone numbers | Required `[]` |
| `alerting.signal.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.signal.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.signal.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.signal.overrides[].*` | See `alerting.signal.*` parameters | `{}` |
```yaml
alerting:
signal:
api-url: "http://localhost:8080"
number: "+1234567890"
recipients:
- "+0987654321"
- "+1122334455"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: signal
send-on-resolved: true
```
#### Configuring SIGNL4 alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
SIGNL4 is a mobile alerting and incident management service that sends critical alerts to team members via mobile push, SMS, voice calls, and email.
| Parameter | Description | Default |
|:------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.signl4` | Configuration for alerts of type `signl4` | `{}` |
| `alerting.signl4.team-secret` | SIGNL4 team secret (part of webhook URL) | Required `""` |
| `alerting.signl4.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.signl4.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.signl4.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.signl4.overrides[].*` | See `alerting.signl4.*` parameters | `{}` |
```yaml
alerting:
signl4:
team-secret: "your-team-secret-here"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: signl4
send-on-resolved: true
```
#### Configuring SendGrid alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:--------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.sendgrid` | Configuration for alerts of type `sendgrid` | `{}` |
| `alerting.sendgrid.api-key` | SendGrid API key | Required `""` |
| `alerting.sendgrid.from` | Email address to send from | Required `""` |
| `alerting.sendgrid.to` | Email address(es) to send alerts to (comma-separated for multiple recipients) | Required `""` |
| `alerting.sendgrid.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.sendgrid.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.sendgrid.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.sendgrid.overrides[].*` | See `alerting.sendgrid.*` parameters | `{}` |
```yaml
alerting:
sendgrid:
api-key: "SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
from: "alerts@example.com"
to: "admin@example.com,ops@example.com"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: sendgrid
send-on-resolved: true
```
#### Configuring Slack alerts
| Parameter | Description | Default |
|:-----------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
@@ -1482,6 +1836,72 @@ Here's an example of what the notifications look like:
![Slack notifications](.github/assets/slack-alerts.png)
#### Configuring Splunk alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:------------------------------------|:-------------------------------------------------------------------------------------------|:----------------|
| `alerting.splunk` | Configuration for alerts of type `splunk` | `{}` |
| `alerting.splunk.hec-url` | Splunk HEC (HTTP Event Collector) URL | Required `""` |
| `alerting.splunk.hec-token` | Splunk HEC token | Required `""` |
| `alerting.splunk.source` | Event source | `"gatus"` |
| `alerting.splunk.sourcetype` | Event source type | `"gatus:alert"` |
| `alerting.splunk.index` | Splunk index | `""` |
| `alerting.splunk.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.splunk.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.splunk.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.splunk.overrides[].*` | See `alerting.splunk.*` parameters | `{}` |
```yaml
alerting:
splunk:
hec-url: "https://splunk.example.com:8088"
hec-token: "YOUR_HEC_TOKEN"
index: "main" # Optional
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: splunk
send-on-resolved: true
```
#### Configuring Squadcast alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:---------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.squadcast` | Configuration for alerts of type `squadcast` | `{}` |
| `alerting.squadcast.webhook-url` | Squadcast webhook URL | Required `""` |
| `alerting.squadcast.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.squadcast.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.squadcast.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.squadcast.overrides[].*` | See `alerting.squadcast.*` parameters | `{}` |
```yaml
alerting:
squadcast:
webhook-url: "https://api.squadcast.com/v3/incidents/api/YOUR_API_KEY"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: squadcast
send-on-resolved: true
```
#### Configuring Teams alerts *(Deprecated)*
> [!CAUTION]
@@ -1541,6 +1961,7 @@ Here's an example of what the notifications look like:
![Teams notifications](.github/assets/teams-alerts.png)
#### Configuring Teams Workflow alerts
> [!NOTE]
@@ -1645,6 +2066,13 @@ Here's an example of what the notifications look like:
| `alerting.twilio.to` | Number to send twilio alerts to | Required `""` |
| `alerting.twilio.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
Custom message templates are supported via the following additional parameters:
| Parameter | Description | Default |
|:----------------------------------------|:-------------------------------------------------------------------------------------------|:--------|
| `alerting.twilio.text-twilio-triggered` | Custom message template for triggered alerts. Supports `[ENDPOINT]`, `[ALERT_DESCRIPTION]` | `""` |
| `alerting.twilio.text-twilio-resolved` | Custom message template for resolved alerts. Supports `[ENDPOINT]`, `[ALERT_DESCRIPTION]` | `""` |
```yaml
alerting:
twilio:
@@ -1652,6 +2080,10 @@ alerting:
token: "..."
from: "+1-234-567-8901"
to: "+1-234-567-8901"
# Custom message templates using placeholders (optional)
# Supports both old format {endpoint}/{description} and new format [ENDPOINT]/[ALERT_DESCRIPTION]
text-twilio-triggered: "🚨 ALERT: [ENDPOINT] is down! [ALERT_DESCRIPTION]"
text-twilio-resolved: "✅ RESOLVED: [ENDPOINT] is back up! [ALERT_DESCRIPTION]"
endpoints:
- name: website
@@ -1669,6 +2101,104 @@ endpoints:
```
#### Configuring Vonage alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:------------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.vonage` | Configuration for alerts of type `vonage` | `{}` |
| `alerting.vonage.api-key` | Vonage API key | Required `""` |
| `alerting.vonage.api-secret` | Vonage API secret | Required `""` |
| `alerting.vonage.from` | Sender name or phone number | Required `""` |
| `alerting.vonage.to` | Recipient phone number | Required `""` |
| `alerting.vonage.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.vonage.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.vonage.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.vonage.overrides[].*` | See `alerting.vonage.*` parameters | `{}` |
```yaml
alerting:
vonage:
api-key: "YOUR_API_KEY"
api-secret: "YOUR_API_SECRET"
from: "Gatus"
to: "+1234567890"
```
Example of sending alerts to Vonage:
```yaml
endpoints:
- name: website
url: "https://example.org"
alerts:
- type: vonage
failure-threshold: 5
send-on-resolved: true
description: "healthcheck failed"
```
#### Configuring Webex alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:-------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.webex` | Configuration for alerts of type `webex` | `{}` |
| `alerting.webex.webhook-url` | Webex Teams webhook URL | Required `""` |
| `alerting.webex.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.webex.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.webex.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.webex.overrides[].*` | See `alerting.webex.*` parameters | `{}` |
```yaml
alerting:
webex:
webhook-url: "https://webexapis.com/v1/webhooks/incoming/YOUR_WEBHOOK_ID"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: webex
send-on-resolved: true
```
#### Configuring Zapier alerts
> ⚠️ **WARNING**: This alerting provider has not been tested yet. If you've tested it and confirmed that it works, please remove this warning and create a pull request, or comment on [#1223](https://github.com/TwiN/gatus/discussions/1223) with whether the provider works as intended. Thank you for your cooperation.
| Parameter | Description | Default |
|:--------------------------------|:-------------------------------------------------------------------------------------------|:--------------|
| `alerting.zapier` | Configuration for alerts of type `zapier` | `{}` |
| `alerting.zapier.webhook-url` | Zapier webhook URL | Required `""` |
| `alerting.zapier.default-alert` | Default alert configuration. <br />See [Setting a default alert](#setting-a-default-alert) | N/A |
| `alerting.zapier.overrides` | List of overrides that may be prioritized over the default configuration | `[]` |
| `alerting.zapier.overrides[].group` | Endpoint group for which the configuration will be overridden by this configuration | `""` |
| `alerting.zapier.overrides[].*` | See `alerting.zapier.*` parameters | `{}` |
```yaml
alerting:
zapier:
webhook-url: "https://hooks.zapier.com/hooks/catch/YOUR_WEBHOOK_ID/"
endpoints:
- name: website
url: "https://twin.sh/health"
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: zapier
send-on-resolved: true
```
#### Configuring Zulip alerts
| Parameter | Description | Default |
|:-----------------------------------|:------------------------------------------------------------------------------------|:--------------|
@@ -2570,7 +3100,6 @@ web:
read-buffer-size: 32768
```
### Badges
#### Uptime
![Uptime 1h](https://status.twin.sh/api/v1/endpoints/core_blog-external/uptimes/1h/badge.svg)