【アドベントカレンダー2025】ほんとにできてる?New Relic Alertの通知

こんにちは。開発部の江島です。
普段はコンテナ基盤の運用やサービスの品質向上に向けたSRE活動などの業務を行っています。

New RelicのAlert機能は、システムの異常を検知し、即座にPagerDutyやSlackなどの外部ツールに通知を送るために非常に便利なツールです。
しかし、デフォルトの設定のままでは、重要なアラートを見逃してしまう可能性があることをご存知でしょうか?

本記事では、New Relicでアラートを設定する際に見落とされがちな2つの問題点と、それらに対する具体的な対策手順を解説します。

New Relic Alertの通知漏れパターン

今回はやりがちな通知漏れをパターンとその対策を2つ紹介します。

  1. Priority(Warning/Critical)が変化した際の通知漏れ
  2. Issueが自動クローズされないことによる通知漏れ

1. Priority変化時の通知漏れ

New Relicのアラートでは、WarningとCriticalの2つのPriorityを設定できますが、これらは通常1つのIssueの中で状態が管理されます。

⚠️ 問題点:Priorityの変化で通知が送られない

デフォルトの通知設定では、Issueのオープンとクローズのイベントのみが連携されます。
このため、WarningでIssueがオープンした後、さらに深刻なCriticalの状態に変わった場合でも、通知は送られません。
その結果、先にWarningのアラートのみが通知され、後から発生したCriticalのアラートが無視されてしまうという事態が発生します。

🛠️ 対策手順:PagerDutyとの連携を修正する

この問題を解決するには、Workflowの通知設定にPriority changedを追加します。
ぐるなびでは通知先のツールPagerDutyを利用しています。
そのため、Issueの作成とクローズに加えて、Priorityの変化がPagerDutyに連携されます。

📝設定手順

Workflowの通知設定を変更してPriorityの変化時にも通知を連携するように設定します。
Alerts > Alert Policies > 対象のAlert Policy > Notifications からWorkflowを確認します。

Workflowの編集画面でNotifyにあるチェックボックスの中から「Priority changed」にチェックマークを入れて保存します。

2. Issueが自動クローズされないことによる通知漏れ

New Relicでは、Issueが解消されると自動でクローズされる機能があります。
しかし、Alert条件によってはこの自動クローズが正しく機能しないことがあります。
Issueはクローズされないと新規で作成されません。
そのため、何度も事象が発生している場合に通知漏れが発生します。

💡通常パターン:Issueが自動クローズされる

Alert条件が「5分間で少なくとも1回CPU使用率80%以上になる」である場合を例にして説明します。
まず、Alert条件を満たすとIssueがオープンとなります。
この時のクローズ条件は「5分間CPU使用率80%未満」となるため、問題が解決していれば5分後に自動でIssueクローズとなります。

⚠️ 問題パターン:Issueが自動クローズされない

Issueが自動でクローズされないパターンではAlert条件を「5分間に少なくとも1回以上エラーになる」としています。
Issueのオープンまでは先ほどの例と同じです。
クローズ条件は「5分間エラー件数が0件」となりますが、New Relicには正常であると判断できるデータが送られている必要があります。
「エラーの件数」のように、事象が起きたときのみ送られてくるデータの場合New Relicは正常な状態か判断できずIssueをクローズしません。
IssueはAlertに対して1つしか作成されないため、Issueがクローズされない状態でエラーが発生してもPagerDutyやSlackへの連携がされないという事態になってしまいます。

🛠️ 対策手順:自動クローズの設定を修正する

この問題の対策は2パターンあります。

【対策1】一定時間データの連携がなくなった場合にIssueを自動でクローズする

データ連携がなくなったことをトリガーにIssueを自動クローズする設定を追加します。

【手順1】

Alerts > Alert Conditionsに移動し、Signal behaviorのEditを押下します。 編集画面で「Add lost signal threshold」を押下します。
Issueを自動でクローズする時間を設定し、「Close all current open incidents」を設定して保存します。

【対策2】オープンされたIssueの自動クローズ時間を短くする

Issueにはオープンされてから自動でクローズされるまでの期間が設定されており、デフォルトでは3日間となっています。 設定時間を過ぎるとIssueが自動クローズされ、問題が継続している場合は新規Issueが作成されます。
これをより短い期間に設定します。

【手順2】

Alerts > Alert Conditionsに移動し、Signal behaviorのEditを押下します。

Add detailsを選択し、「Close open incidents after」をクローズしたい期間に設定して保存します。

まとめ

New Relic Alertの機能は便利ですが、適切な設定ができていないとCriticalなアラートを見逃したり、Issueが詰まって通知が途絶えるリスクがあります。 本記事でご紹介した

  • Priority変化時の通知設定

  • 自動クローズの設定

を適切に実施することで、より確実で信頼性の高い監視体制を構築し、システム障害時の対応漏れを防ぐことができます。
これらの設定を見直して、「ほんとにできてる?」を「ちゃんとできてる!」に変えましょう!


2021年新卒入社。好きな食べ物はカレーと餃子
SRE活動やコンテナ基盤運用が主な業務です