vague memory

うろ覚えを無くしていこうともがき苦しむ人の備忘録

AWS から PagerDuty への通知連携(3)

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 を使用します。

f:id:htnosm:20220328061425p:plain

f:id:htnosm:20220328061432p:plain

Integration URL はドキュメントに記載がある以下の形式で指定します。

https://events.pagerduty.com/x-ere/[YOUR_INTEGRATION_KEY_HERE]

AWS SNS の Subscription に Integration URL を HTTPS Endpoint として指定します。 自動的に Confirm されます。

f:id:htnosm:20220328061429p:plain

Rule はまだ設定していない状態ですが、 Alert が発行され、Event Detail を確認すると、 comfirm を実行していることが確認できます。

f:id:htnosm:20220328061437p:plain

f:id:htnosm:20220328061441p:plain

インシデント発行する Rule が設定済みである場合、 インシデントタイトル "Incident routed via a Ruleset" で発行されます。

ルール

初期状態では 何もしない ルールのみが存在します。

f:id:htnosm:20220328061444p:plain

イベント受信時にインシデント発行を行うため、"New Event Rule"から新しいルールを追加します。

ルール作成画面の右画面に受信したイベント履歴が出力されます。 事前に Integration URL にイベント発行を行っておくとルール作成がしやすいと思います。

f:id:htnosm:20220328061448p:plain

例として、Service への振り分け条件を TopicArnとし、 Severity を info でインシデント発行するルールにします。

f:id:htnosm:20220328061452p:plain

f:id:htnosm:20220328061456p:plain

尚、スケジュール設定機能は Business Plan 以上の機能とのことです。

f:id:htnosm:20220328061500p:plain

一覧画面に戻り、作成したルールの優先順を指定します。

f:id:htnosm:20220328061504p:plain

インシデント

インシデントタイトルは SNSから通知される $.Subject で作成されます。

{NewStateValue}: \"{AlarmName}\" in {Region}

f:id:htnosm:20220328061516p:plain

詳細欄にはSNSから通知される $.Message が入ります。

f:id:htnosm:20220328061508p:plain

OK Action を設定していた場合、Metric Alarm に連動し Resolve されます。

f:id:htnosm:20220328061512p:plain

ルールで指定した通り、Severity を info としている事が確認できます。

重複排除

Ruleの "Customize Event Fields" から変更します。

f:id:htnosm:20220328061519p:plain

未指定時のデフォルトは Alarm Name のようです。 ドキュメント上には見当たりませんでしたが、 Alert Log を確認すると dedup_key の値を確認できます。

f:id:htnosm:20220328061523p:plain

f:id:htnosm:20220328061527p:plain