Skip to content

Slack

dockmesh alerts can fire into any Slack channel via an incoming webhook.

  1. In Slack, go to Apps → Incoming Webhooks → Add to Slack
  2. Choose the channel (e.g. #ops-alerts)
  3. Click Add Incoming Webhook Integration
  4. Copy the webhook URL — looks like https://hooks.slack.com/services/T.../B.../xxxx

Alerts → Channels → New channel → Slack

FieldValue
Nameops-alerts
Webhook URLpaste the URL from Slack

Click Send test — a test message should appear in Slack within 2 seconds.

Open the rule under Alerts → Rules, edit it, and add the Slack channel to its Channels list. Severity filtering happens per rule, not per channel — there is no global “Slack gets all, PagerDuty gets only critical” toggle. Express the same intent by listing Slack on every rule and PagerDuty only on critical-severity rules.

Alerts fire with a payload like:

🔴 [Critical] Container memory > 90% (sustained)
Container: paperless-gotenberg-1 on local
Metric: mem_percent value: 93.4 threshold: 90
Rule: Container memory > 90% (sustained)
→ View in dockmesh

The metric is one of cpu_percent or mem_percent — those are the two the alert engine evaluates today. The link points back at the alert detail in dockmesh.

When an alert auto-resolves (metric returns below threshold), dockmesh replies in the same Slack thread:

✓ Resolved after 4m12s — metric returned to normal

Easy to see in-channel which alerts are still active.

For orgs on Slack Enterprise Grid, or if you want OAuth-scoped access instead of webhooks:

  1. Create a Slack app at api.slack.com/apps
  2. Enable OAuth & Permissions with scopes: chat:write, chat:write.customize
  3. Install to workspace, get the Bot User OAuth Token
  4. In dockmesh, switch the channel type from Webhook to Bot Token
  5. Choose which channels the bot can post to

Bot-token channels support richer formatting (buttons, attachments) and don’t expire.

No messages arriving:

  • Send test from dockmesh — does it succeed?
  • Check the Slack channel’s “Integration logs” to see if the webhook received anything
  • If the webhook URL was regenerated in Slack, update it in dockmesh

Rate limits:

  • Slack limits webhooks to ~1 msg/sec per channel. If your alert storm exceeds that, dockmesh queues and retries with backoff
  • For high-volume alerting, create multiple channels (e.g. per-service) instead of one firehose