Skip to content

LastVet Alertmanager Slack enrichment

Receives Alertmanager webhook notifications on the observability VM, enriches them with Grafana links, runbooks, Loki log excerpts, and Prometheus metric snapshots, then posts Block Kit messages to #alerts-lastvet.

Architecture

  • Webhook listener: 127.0.0.1:8088 (Alertmanager on same host)
  • Health listener: observability Tailscale IP :8089 (UptimeRobot / external checks)
  • Data sources: local Prometheus, Loki, Grafana (loopback)

See docs/ARCHITECTURE.md and docs/DEPLOYMENT.md.

Deploy

From lastvet-gates on agent-01:

./scripts/observability/deploy-slack-enrichment.sh
./scripts/observability/deploy-alerting-phase4.sh
./scripts/observability/verify-slack-enrichment.sh

Configuration

Path Purpose
/etc/lastvet-slack-enrichment/enrichment.env SLACK_WEBHOOK_URL from BWS
/etc/lastvet-slack-enrichment/config.yaml Service URLs, bind addresses
/opt/lastvet-slack-enrichment/config/enrichment-rules.yaml Per-alert LogQL/Prom queries

Local dev

cd services/lastvet-slack-enrichment
python3 -m venv .venv && .venv/bin/pip install -e '.[dev]'
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/... .venv/bin/pytest