vague memory

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

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

PagerDuty への通知方法が増えていたので調査しました。

公式ドキュメントに導入手順の詳細がありますが、実際どのような通知結果になるのかそれぞれ確認したいと思います。

参考: PagerDuty Knowledge Base


仕様と前提

通知方式

AWS からの通知を例に取って確認します。 以下2種類の方法でイベントを発行します。いずれも SNS 経由となります。

CloudWatch Metric Alarm

CloudWatch メトリクスの閾値監視です。 "Alarm Action", "OK Action" にSNS Topicを指定して通知します。 PagerDuty 上の、 "CloudWatch" という表記は大抵こちらを指します。

f:id:htnosm:20220328054617p:plain

EventBridge

以前は CloudWatch Events と呼ばれていた機能です。 "Target" にSNS Topicを指定して通知します。

f:id:htnosm:20220328054653p:plain

Endpoint

PagerDuty が受ける Endpoint は範囲別に2種類存在します。

  • Global
    • route events from the same source to different services.

    • PagerDuty サブドメインの Endpoint にイベントを送信、各PagerDuty Service に振り分け設定を行う
  • Service
    • evaluate your incoming events and perform additional actions.

    • PagerDuty Service 配下に Integration を設定し、Integration URL (Endpoint) にイベントを送信

処理方式

PagerDuty がイベントを受信し、インシデント発行などの処理を行う方式が複数存在します。 大きく分けると以下3種類になります。

以下はいずれも、 PagerDuty に連携されたイベントに対し、各Serviceへのルーティングや処理を、任意のルールで行えるという機能です。
Rulesets には legacy feature との記載あり、今後は Orchestration に移行していく事になりそうです。

  • Rulesets
    • route events to an endpoint and create collections of event rules

  • Event Orchestration
    • route events to an endpoint and create nested rules

    • 2022年1月 にリリースされた Rulesets の拡張機能

プラン

PagerDuty の契約プランにより、利用可能な機能、設定可能数が異なります。 Service 配下に設定する機能制限は無いようです。
特に Orchestration はリリースされたばかりなので詳細はサポートに問合せするのが確実だと思います。

参考: Pricing | PagerDuty

f:id:htnosm:20220328054657p:plain f:id:htnosm:20220328054701p:plain f:id:htnosm:20220328054706p:plain

重複排除

PagerDuty にイベントを送信し、インシデントを発行する際に重複排除が働きます。 各処理方式によりデフォルト値や設定方法が異なります。

参考: Event Management

重大度(Severity)と緊急度(Urgency)

インシデント発行時に Serverity を指定し、緊急度を変更することができます。 今回、ルールに合致したか否かの確認のため Serverity を変更していますが、インシデントに反映させるには PagerDuty Service の設定で Dynamic Notification の機能を使用する必要があります。

参考: Dynamic Notifications

これにより Serverity を info, warning とすることで、 インシデントの Urgency が Low となります。 Service 側の設定を High, Low 固定とした場合は、Service 側の設定が優先され固定値となります。

f:id:htnosm:20220328054710p:plain