Advent Calendar 17日目は、特定の製品ではなく、製品で横断的に利用する New Relic のアラートに関する機能 New Relic Alert (Beta) について説明します。
New Relic Alert は、New Relic 製品全体で利用するアラートの設定です。簡単にいうと、どういう条件(パフォーマンス値やエラー率)なら、警告やエラーとみなすか、その際にどこに通知するのか(メールや slack など)を設定するものです。例えば、Apdex が 0.5 より下回っている時間帯が5分以上なら、エラーメールを送る。エラー率が10分以上なら、Slack に通知するなどです。
たしか今年の6月くらいに、アラート機能がリニューアル(Betaができた)さされたはず。それまでは、製品毎の画面でアラートを設定してたんだけど、今は、統一された画面になりました。画面トップの右上にもメニュー(Alert Beta)が追加されました。まだ Beta 版っぽいですね。ドキュメントも Beta 版 と旧(レガシー)の両方がまだあります。
では、使い方を説明していきます。
New Relic Alert の基本的な使い方は、ポリシー(条件)と通知チャネルを作って、それぞれ組み合わせて、何(条件)に違反したときに、どこ(チャネル)に通知するかを指定します。
どちらから作成してもいいのですが、条件を指定する際に、チャネルも指定できるので(逆でもいいけど)今回は、先にチャネルから作成していきます。
通知チャネルの作成方法
トップメニュー(右上) > Alerts Beta > Notification channels を選択する。表示されるチャネル一覧から、「New notification channel」を選択する。
まず、どのタイプのチャネルを追加するか選択する。現在、選べるのは以下の画像にあるタイプです。
基本的に、メール、Webhook、slack が多そう(独断だけど)なので、それぞれの設定内容を見てみます。
メールアドレスは、1つしか指定できないようです。複数人にしたい場合は、メーリングリストを用意しろってマニュアルに書いてありました。
URLは、httpsを使えとのことです。
上記を含めチャネルの設定内容は、Notification channels: Controlling where to send alerts に書いてあります。また、先のページに上記で説明した内容が動画で説明されていますので、そちらも参考にしてみてください。
メールで作成した場合、以下のようになります。"Send a test notification" を押せば、ちゃんと届くかチェックできます。これは、他のタイプでもありますので、作成後は正常に設定できたか簡単にチェックできます。
アラートポリシーの作成方法
次に、ポリシーを作成します。Alert policies を選択する。
表示されるポリシー一覧から「New alert policy」を選択します。
ポリシー名を設定し、作成ボタンを押す。
まずは、カテゴリの設定。対象製品と条件の種類を選択。選んだ製品によって、タイプ項目は変わる。ここではオーソドックスな APM と Application metric を選ぶ。
次に、条件を適用するアプリケーションを選択する。
次に、条件を設定する。主に、「xx分以上 xxの値が xx を xx する場合 Critial(または 警告)とみなす」という感じです。例えば、5分以上Apdex の値が、0.8を下回る場合。その場合は、「'Apdex' has an apdex score 'below' '0.8' 'for at least' '5mins'」となります。 その他にも、10分以内に10000 スループット以上となった場合は、警告をとする。「'Throughput(web)' has a call count above '10000' calls 'for at least' once in '10mins'」
まず、何の値を判定するかの対象を選択する。この内容も、1のカテゴリで選んだ製品やタイプによって選択できる項目は変わります。ここでの選択項目は以下のとおり。
作成すると、以下のような感じになります。この時点で通知を受け取らなくていいなら、作業完了です。通知を受け取る場合は、"Notification channels" タブをクリックします。
チャネルは、既存の登録済みチャネルから選ぶことになります。
これで、「Testという名前の条件1つ。通知チャネル1つのアラートポリシー」ができました。
おわりに
どうでしたでしょうか?アラートの設定のイメージができたでしょうか?
New Relic は、ご検知をなるべく減らせるように、必要なアラートが必要な時に、必要な人に届くことを目標にアラート機能をデザインしています。是非ん、様々なポリシーを作成して効率よいインシデント管理を目指してみてください。