๐ฃ Channels
kwatch can send the same clear alert to 56 providers. Pick the place your team already checks:
| You want... | Try... |
|---|---|
| ๐ฌ Team chat | Slack, Discord, Microsoft Teams, Mattermost, Rocket.Chat |
| ๐จ On-call pages | PagerDuty, Opsgenie, Zenduty, SIGNL4, Squadcast |
| ๐ง Email or SMS | Email, SendGrid, AWS SES, Twilio |
| ๐ Your own system | Custom Webhook, Ntfy, Gotify, n8n, Zapier |
| ๐ Tickets | Jira, ClickUp, GitHub, GitLab, Gitea |
๐ Dedicated setup guidesโ
The most common providers have a step-by-step page:
| Channel | Config key | What you need |
|---|---|---|
| Slack | slack | Webhook URL or bot token |
| Discord | discord | Webhook URL |
| Microsoft Teams | teams | Webhook URL |
| Google Chat | googlechat | Webhook URL |
| Telegram | telegram | Bot token and chat ID |
email | SMTP server and password | |
| PagerDuty | pagerduty | Integration key |
| Opsgenie | opsgenie | API key |
| Zenduty | zenduty | Integration key |
| Mattermost | mattermost | Webhook URL |
| Rocket.Chat | rocketchat | Webhook URL |
| Matrix | matrix | Homeserver, token, and room ID |
| DingTalk | dingtalk | Access token |
| FeiShu | feishu | Webhook URL |
| Custom Webhook | webhook | Endpoint URL |
The complete provider reference lists every supported
provider, every catalog field, its type, whether it is required, and whether it
must come from a Secret. It is generated from the same provider catalog used by
kwatch.sh.
The sidebar's All provider guides section gives each provider its own page and minimal configuration example.
๐งฉ Basic configurationโ
Put one or more providers under alert:. This example sends alerts to Slack:
alert:
slack:
webhook: "${file:/config/slack-webhook}"
You can configure several providers. kwatch sends each incident to all matching providers.
๐ฏ Send only the alerts you needโ
Routes filter alerts by namespace, severity, or reason. All conditions in one route must match:
alert:
slack:
webhook: "${file:/config/slack-webhook}"
routes:
- namespaces: ["production"]
severities: ["high", "critical"]
reasons: ["OOMKilled"]
If you do not add routes, the provider receives all alerts.
๐ Delivery that can recoverโ
The same delivery options work for every provider:
alert:
slack:
webhook: "${file:/config/slack-webhook}"
retry:
maxAttempts: 3
delay: 5s
fallback: pagerduty
- ๐ Retry tries temporary failures again, such as timeouts and server errors.
- ๐ Fallback sends to another configured provider when the first one fails.
- ๐ Compact reduces message size when your channel has strict limits.
- ๐งต Threaded mode keeps Slack updates together when using a bot token.
Invalid requests and bad credentials are not retried forever. They are reported so you can fix the provider configuration.
๐ Keep credentials safeโ
The interactive manager stores credentials in a Kubernetes Secret and mounts
them at /config. Use exact ${file:/absolute/path} references in the config.
Plain credentials and environment substitutions in sensitive fields are
rejected at startup. Read the
configuration reference for details.
โ Test your channelโ
- Run
kwatch lintto validate the configuration. - Run
kwatch lint --checkto test credentials for providers that support checks. - Enable
healthCheck.diagnosticsand call/test-alertif you need a real test message.
For installation help, start with Getting Started or Installation.