alerting-irm について
alerting-irmは、Grafana AlertingとIRMの運用スキルで、アラートルール、通知ルーティング、サイレンス、SLOを扱います。通知とオンコールのワークフローを管理するチーム向けに、ルーティングや連携の検証手順を示します。
主な機能
- 01コンタクトポイントとアラートルールの設定
- 02ラベルマッチャーによる通知ルーティング
- 03条件に一致するアラートのサイレンス設定
- 04Grafana AlertingとIRMの接続
- 05SLOバーンレートアラートの定義と検証
活用シーン
- 01アラート通知を一連の流れで設定
- 02指定した重大度をオンコールへルーティング
- 03メンテナンス中の通知抑制
- 04Grafana AlertingとIRMの連携検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ grafana/ skills --skill alerting-irmインストール後、Claude Code で/alerting-irmを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/alerting.mdirm.mdslo.md詳細
Grafana Alerting & IRM
よくあるワークフロー
新しいアラートを最初から最後までプロビジョニングする
-
コンタクトポイントを作成します(通知の送信先):
curl -X POST https://grafana.example.com/api/v1/provisioning/contact-points \ -H 'Authorization: Bearer <token>' -H 'Content-Type: application/json' \ -d @contact-points.json確認します:
curl https://grafana.example.com/api/v1/provisioning/contact-points \ -H 'Authorization: Bearer <token>' | jq '.[].name' -
通知ポリシーを追加します(各アラートの送信先を指定します)。マッチャーパターンについては、以下の§ 通知ポリシーを参照してください。
-
アラートルールを作成します。種類を選択してください:
- Grafana 管理 → references/alerting.md § Grafana-managed alert ruleを参照してください
- Prometheus/Mimir ruler → references/alerting.md § Prometheus / Mimir alert ruleを参照してください
- Loki LogQL → references/alerting.md § Loki alert ruleを参照してください
-
運用を開始する前に、ルーティングを確認します:
# Force-fire a test alert from the rule's UI, then check Alertmanager's view curl https://grafana.example.com/api/alertmanager/grafana/api/v2/alerts \ -H 'Authorization: Bearer <token>' | jq '.[] | {alertname: .labels.alertname, receiver: .receivers}'想定したレシーバーが表示されるはずです。別のレシーバーが表示された場合は、ポリシーのマッチャーを再確認してください。
アラートを IRM/オンコールにルーティングする
- IRM で「Grafana Alerting webhook」タイプのインテグレーションを作成し、インテグレーション URL をコピーします
- Grafana Alerting で、その URL を指定する webhook コンタクトポイントを追加します(完全な YAML はreferences/irm.md § Routingを参照してください)
- 適切な重大度を新しいコンタクトポイントにルーティングする通知ポリシーマッチャーを追加します
- 確認します:テストアラートを発生させます。約30秒以内に IRM に表示されるはずです。デバッグ手順の詳細はreferences/irm.md § Verifying the IRM integrationを参照してください。
SLO を定義する
- UI または API で SLO を作成します → Grafana が記録ルール、ダッシュボード、バーンレートアラートを自動生成します(生成された YAML はreferences/slo.mdにあります)
- 単一ウィンドウではなく、複数ウィンドウのバーンレートアラートを使用します。単一ウィンドウではノイズで発火する理由については、references/slo.md § Multi-window burn-rate alertsを参照してください
- references/slo.md § Validating SLO configの4ステップの手順で確認します
コンタクトポイント(YAML プロビジョニング)
# provisioning/alerting/contact_points.yaml
apiVersion: 1
contactPoints:
- orgId: 1
name: pagerduty-critical
receivers:
- uid: pd-receiver
type: pagerduty
settings:
integrationKey: YOUR_PAGERDUTY_KEY
severity: critical
- orgId: 1
name: slack-alerts
receivers:
- uid: slack-receiver
type: slack
settings:
url: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
channel: '#alerts'
メール、webhook、Teams、Telegram、OnCall、その他のレシーバータイプについては、references/alerting.md § Contact point receiver typesを参照してください。
通知ポリシー
ラベルマッチャーを使用する階層型ルーティングツリー:
# provisioning/alerting/notification_policies.yaml
apiVersion: 1
policies:
- orgId: 1
receiver: default-receiver
group_by: ['alertname', 'cluster', 'service']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
routes:
# Critical alerts → PagerDuty
- receiver: pagerduty-critical
matchers:
- severity = critical
group_wait: 10s
repeat_interval: 4h
# Platform team → Slack, but page on critical
- receiver: slack-alerts
matchers:
- team = platform
routes:
- receiver: pagerduty-critical
matchers:
- severity = critical
# Everything else → email
- receiver: email-alerts
matchers:
- severity =~ "warning|info"
サイレンス
評価を停止せずに、一致するアラートの通知を抑制します:
curl -X POST https://grafana.example.com/api/alertmanager/grafana/api/v2/silences \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"matchers": [
{"name": "alertname", "value": "HighErrorRate", "isRegex": false},
{"name": "env", "value": "staging", "isRegex": false}
],
"startsAt": "2024-01-01T00:00:00Z",
"endsAt": "2024-01-01T02:00:00Z",
"comment": "Maintenance window",
"createdBy": "admin"
}'
# Verify it was created
curl https://grafana.example.com/api/alertmanager/grafana/api/v2/silences \
-H 'Authorization: Bearer <token>' | jq '.[] | select(.status.state == "active")'
アラートルールの状態
| 状態 | 説明 |
|---|---|
| Normal | 条件を満たしていません |
| Pending | 条件を満たしており、for の期間が経過するのを待っています |
| Firing | for の期間全体にわたって条件を満たしています |
| NoData | クエリがデータを返しませんでした |
| Error | クエリ/評価エラー |
| Recovering | 発火状態でしたが、条件を満たさなくなりました |
プロビジョニングディレクトリのレイアウト
provisioning/alerting/
├── alert_rules.yaml # Alert and recording rules
├── contact_points.yaml # Notification destinations
├── notification_policies.yaml # Routing tree
├── templates.yaml # Message templates
└── mute_timings.yaml # Recurring mute windows
API プロビジョニング(UI での編集を維持)
API でプロビジョニングした後も UI でリソースを編集できるようにするには、X-Disable-Provenance: true を追加します:
curl -X PUT https://grafana.example.com/api/v1/provisioning/policies \
-H 'Authorization: Bearer <token>' \
-H 'X-Disable-Provenance: true' \
-H 'Content-Type: application/json' \
-d @policy.json
curl -X POST https://grafana.example.com/api/v1/provisioning/alert-rules \
-H 'Authorization: Bearer <token>' \
-H 'X-Disable-Provenance: true' \
-H 'Content-Type: application/json' \
-d @rule.json
参考資料
references/alerting.md— アラートルール YAML の全容(Grafana 管理/Prometheus/Loki)+通知テンプレートreferences/slo.md— 生成される SLO 記録ルール+複数ウィンドウのバーンレートアラートパターン+検証手順references/irm.md— IRM の機能、インテグレーションソース、Alerting → IRM のルーティング+検証+よくある失敗の原因
コメント
Markdown 対応