マルチテナント Kubernetes クラスターがあり、Prometheus Alertmanager を使用して Slack 経由でこれらのテナントにアラートを送信します。
したがって、これを含む構成があります:
slack_configs:
- send_resolved: true
channel: '{{ printf "topic-svc-%.11s" (index (index .Alerts 0).Labels "namespace") }}'
(%.11s により、チャネル名が 21 文字の制限内に収まるようになります)
これは、slack チャネルが存在する場合はうまく機能しますが、チャネルが存在しない場合、アラートはイーサで終了します (アラートには適していません!)。
Alertmanager のログに表示される内容はかなり限られています。たとえば、ユーザー データのない一般的なエラーです。
alertmanager-k8s-0 alertmanager level=error ts=2018-11-09T15:01:52.134984182Z caller=dispatch.go:280 component=dispatcher msg="Notify for alerts failed" num_alerts=3 err="cancelling notify retry for \"slack\" due to unrecoverable error: unexpected status code 404"
あらゆる種類のオプションを試し、StackOverflow をチェックしましたが、すべての例にはスラック チャネルの単純な固定名があるようです