投稿

New Relic の Workflow を OFF にしてメンテしたのに、終わってから電話が鳴った

New Relic の Workflow を OFF にしてメンテしたのに、終わってから電話が鳴った

New Relic のアラートを EventBridge 経由で電話につないでいる環境の話。仕組みは NewRelic発生したアラートをAWS Connectを通して架電する方法 に書いた。

本番環境のメンテナンス中、通知を止めるために Workflow を OFF にしていた。それでもメンテが終わった直後に電話が鳴った。

起きたこと

メンテ中はメンテナンス画面を出すため、ロードバランサーが 5XX を返す。外形監視(1 分ごとに応答を確かめる監視)はこれを障害として拾う。

表1: メンテ当日の流れ

時刻 操作と事象 通知
21:07 Workflow を OFF にしてメンテ開始。5XX が返り始める なし
21:13 外形監視の失敗で incident が open Slack とメールのみ(電話なし)
21:32 メンテ終了、Workflow を ON。2XX に戻る なし
21:37 21:13 の incident が close 電話が鳴る

半月ほど前の別環境のリリース作業でも、同じ形で電話が鳴っていた。

通知トリガーの設定

Workflow の EventBridge への通知トリガーが、incident のすべての状態変化に設定されていた。

  • 変更前: Activated / Priority changed / Closed / Other updates
  • 変更後: Activated のみ

変更前の設定だと、復旧して incident が閉じたときも電話が鳴る。21:37 の電話がこれだ。同僚がトリガーを Activated だけに直し、電話はエラーを検知したときだけ鳴るようになった。

Workflow を OFF にすると何が止まるか

Workflow を OFF にしても、外形監視は動き続けるし incident も作られる。止まるのは通知の送り先への配信だけ。

作業した同僚も設定を直した同僚も、OFF にすれば incident も作られないと思っていた。OFF の間に開いた incident は残り続け、ON に戻した後に閉じれば、その時点のトリガー設定で通知される。

メンテ中に監視を止める方法

監視そのものを止めたいなら、New Relic の Monitor Downtime を使う。対象のモニターと時間帯を指定すると、その間は監視を実行しない。

メンテの予定時刻に余裕を持たせて設定しておけば、incident が作られず、Workflow を OFF / ON する手順も要らなくなる。