Metric Alarm -> Global Ruleset
グローバルルールセットのEndpointへイベントを通知します。
Amazon CloudWatch Integration Guide | PagerDuty
導入方法はガイド (Integrate With Event Rules) に記載の通りです。
導入
PagerDuty "Automation" -> "Event Rules" に Default Global Ruleset が存在します。 "Incoming Event Source" 内の Integration Key を使用します。
Integration URL はドキュメントに記載がある以下の形式で指定します。
https://events.pagerduty.com/x-ere/[YOUR_INTEGRATION_KEY_HERE]
AWS SNS の Subscription に Integration URL を HTTPS Endpoint として指定します。 自動的に Confirm されます。
Rule はまだ設定していない状態ですが、 Alert が発行され、Event Detail を確認すると、 comfirm を実行していることが確認できます。
インシデント発行する Rule が設定済みである場合、 インシデントタイトル "Incident routed via a Ruleset" で発行されます。
ルール
初期状態では 何もしない ルールのみが存在します。
イベント受信時にインシデント発行を行うため、"New Event Rule"から新しいルールを追加します。
ルール作成画面の右画面に受信したイベント履歴が出力されます。 事前に Integration URL にイベント発行を行っておくとルール作成がしやすいと思います。
例として、Service への振り分け条件を TopicArnとし、 Severity を info でインシデント発行するルールにします。
尚、スケジュール設定機能は Business Plan 以上の機能とのことです。
一覧画面に戻り、作成したルールの優先順を指定します。
インシデント
インシデントタイトルは SNSから通知される $.Subject
で作成されます。
{NewStateValue}: \"{AlarmName}\" in {Region}
詳細欄にはSNSから通知される $.Message
が入ります。
OK Action を設定していた場合、Metric Alarm に連動し Resolve されます。
ルールで指定した通り、Severity を info としている事が確認できます。
重複排除
Ruleの "Customize Event Fields" から変更します。
未指定時のデフォルトは Alarm Name
のようです。
ドキュメント上には見当たりませんでしたが、 Alert Log を確認すると dedup_key の値を確認できます。