Skip to main content

๐Ÿ“ฃ Channels

kwatch can send the same clear alert to 56 providers. Pick the place your team already checks:

You want...Try...
๐Ÿ’ฌ Team chatSlack, Discord, Microsoft Teams, Mattermost, Rocket.Chat
๐Ÿšจ On-call pagesPagerDuty, Opsgenie, Zenduty, SIGNL4, Squadcast
๐Ÿ“ง Email or SMSEmail, SendGrid, AWS SES, Twilio
๐Ÿ”— Your own systemCustom Webhook, Ntfy, Gotify, n8n, Zapier
๐Ÿ“‹ TicketsJira, ClickUp, GitHub, GitLab, Gitea

๐ŸŒŸ Dedicated setup guidesโ€‹

The most common providers have a step-by-step page:

ChannelConfig keyWhat you need
SlackslackWebhook URL or bot token
DiscorddiscordWebhook URL
Microsoft TeamsteamsWebhook URL
Google ChatgooglechatWebhook URL
TelegramtelegramBot token and chat ID
EmailemailSMTP server and password
PagerDutypagerdutyIntegration key
OpsgenieopsgenieAPI key
ZendutyzendutyIntegration key
MattermostmattermostWebhook URL
Rocket.ChatrocketchatWebhook URL
MatrixmatrixHomeserver, token, and room ID
DingTalkdingtalkAccess token
FeiShufeishuWebhook URL
Custom WebhookwebhookEndpoint 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โ€‹

  1. Run kwatch lint to validate the configuration.
  2. Run kwatch lint --check to test credentials for providers that support checks.
  3. Enable healthCheck.diagnostics and call /test-alert if you need a real test message.

For installation help, start with Getting Started or Installation.