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 する手順も要らなくなる。