New RelicでメールやSlackなどにアラート通知する際のタイトルにインシデントのコンテキストを含める方法をご紹介します。コンテキストが適切に含まれれば、問題の切り分けや優先度づけが早くなるので是非ご利用ください。
はじめに
オブザーバビリティプラットフォームNew Relicでは、クラウドサービス含めたインフラからアプリケーション、ブラウザやモバイルなどのフロントサイドまでフルスタックでテレメトリーデータを収集し、問題の検知や原因の特定を早めることを可能にします。
問題を検知する方法の一つとしてアラート通知がありますが、通知されたアラートからいかに早く状況を把握できるかが問題の切り分けや早期解決には重要です。状況が把握できないような内容のアラートが通知されていてはそれを難しくしてしまいます。
New Relicでは、アラートする際の条件やアラート通知先、通知方法などを定義することができますが、アラート通知の際のタイトルや本文にインシデント発生時の状況(コンテキスト)を柔軟に含めることができます。コンテキストとは、例えばアラートの条件や、アラートの対象(アプリケーションやホスト)、重要度、その他任意のタグなどです。
コンテキストがうまくアラート通知に組み込めれば、問題の切り分けや優先度づけがしやすくなるでしょう。
最新のアップデートの詳細はこちら
New Relic アップデート一覧
やってみよう
アラートの定義
アラート条件を一つも定義していない場合はアラート条件を作成します。アラート作成や通知設定の方法自体は本記事では省略します。アラートの作り方については公式ドキュメントをご参照ください。
タイトルや本文にコンテキストを入れる
アラート条件(Alert Condition)の設定画面に「Customize Incidents from this condition」というセクションがありますが、ここでアラート通知時のタイトルや本文のカスタマイズができます。このアラート条件が発火した際に、ここで定義したタイトルや本文が利用されます。
アラート通知の際のタイトルや本文にはテキストが入力可能ですが、ここに変数を入れることができます。変数を定義しておくことで、インシデント発生時の状況(対象、Severity、メトリックの値など)に応じて動的に通知の内容が変えられるという仕組みです。
例えばここでは、Title templateに以下のような設定をしています。{{...}}で囲われた部分が変数となっており、インシデント発生時の状況に応じて動的に変更されます。
{{conditionName}}: {{entity.name}} - {{entity.type}} - {{priority}}
各属性の意味は以下の通りです。
属性名 | 説明 |
---|---|
conditionName | アラート条件名 |
entity.name | アラートの対象となるエンティティ(監視対象) |
entity.type | エンティティの種類(アプリケーションやホストなど) |
priority | インシデントのSeverity (warning/critical) |
その他にもタグやRunbookのURLなど、利用可能な変数はたくさんあります。どんな変数が使えるかは以下のドキュメントを参照してください。
確認してみよう
では、意図的にアラート条件が発火するような状況にして実際どのような通知がされるのかを確認してみます。
以下はアラートがSlack通知された際のスクリーンショットです。赤枠の通り、通知の際のタイトルが先ほどカスタマイズしたものになっているのが確認できます。
アラート一覧画面で確認できるアラートも同様です。
まとめ
今回はNew Relicで通知するアラートのタイトルや本文をカスタマイズし、インシデントのコンテキスト情報を動的に加える方法をご紹介しました。より適切なコンテキストが加われば、通知を受けた際の問題の切り分けや優先度づけの第一歩が早まりますので是非ご活用ください。
New Relic株式会社のX(旧Twitter) や Qiita OrganizationOrganizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!