Edited at

新アラートサービス: New Relic Alerts と今後予定されているアラートの新機能について

More than 1 year has passed since last update.

デジカの宮澤です。アドベントカレンダー4日目は、去年も紹介しましたが、ようやく正式にリリースされたので、改めて New Relic Alerts について紹介します。


既存のアラートとの違い

New Relic Alerts は、中央集権型の New Relic のアラート機能です。これまでは製品ごとのアラート設定との違いは以下となります。


  • 1つのUIで全製品のアラートの設定を行える。統一したUIとなった。

  • 設定できるアラート対象が増えた。例えば、APM の場合、エラー率と Apdex しかアラート条件に設定できなかったけど、レスポンスタイムやスループット、カスタムメトリクスなど指定できる項目が増えました。

  • 利用可能な通知チャネルが増えた。slack などがデフォルトで選べるようになりました。

  • 柔軟ならアラート設定が可能に。複数のアラート条件を設定できるので、アラート通知がより適切に送れるようになった。(詳しくは、以下で説明します)


誰が使えるの?

New Relic Alerts は有料プランのユーザー向けサービス。有料プランをお使いの方は、利用している有料プランの製品で、New Relic Alerts を利用できる。


使用方法

New Relic にログイン後、画面の右上に、「Alerts new」というメニューが表示されているので、それをクリックします。既に利用している場合は、Alerts 画面に切り替わります。まだ利用していない方は、最初に以下のような切り替え同意画面が表示されます。


New Relic Alerts とは

New Relic Alerts は、以下の構造でアラートの設定を行います。


  • アラートポリシー

  • アラート条件

  • チャネル(通知先の設定)

アラートポリシーには、複数のアラート条件とチャネルを設定できます。


設定

アラート条件では以下の順で指定します。

1. アラート対象の製品(APM, Browser, Servers, Mobile, Plugins, Synthetics)

2. アラート対象のアプリ

3. 閾値の設定(どの項目が、どういう値になったら、アラートを出すのか?)

- 例: 平均レスポンスタイムが、5分以上、2秒を超えていたら

アラート条件では、CriticlaWarning の2つのレベルがあります。違いを簡単にいうと、Criticla の閾値を越えると、チャネルに設定した通知先にアラート通知が飛びます。Warning の閾値を超えても、アラート通知は飛びません。アラート条件の設定では、Criticla は必須で、Warning は任意です。

以下は、手順3の New Relic APM を対象とした場合の閾値の設定画面です。

qiita_alert_condition2.png

上記は、レスポンスタイムが3秒以上の状態が、5分以上続いた場合にアラートを通知します。Warning の指定はなし。というアラート条件の定義。

APM の場合に指定できる設定対象は以下となります。(これは製品別などによって異なる)

スクリーンショット 2016-12-04 16.49.16.png

また、APM の場合、対象として、外部サービス(external service) も指定できるため、利用している外部サービスからのレスポンスが3秒以上応答がないとアラートを通知する。といったこともできます。


インシデント管理としても使える

Warning が通知が飛ばないとしたら、なぜ Warning が必要なのでしょうか? それは、New Relic Alerts がインシデント管理としても使えるからです。

New Relic Alets では、CriticlaWarning の閾値を越えると、violation (違反)が生成され、その管理する入れ物のインシデントが生成されます。これは、New Relic Alerts の Incidents 画面や APM 等のインデックス画面で何かアラート条件に違反していることが分かります。そのため、New Relic はインシデント管理のシステムとしても使えます。


アラートポリシーとは - アラート疲れを軽減するシステム

上記までで、簡単に New Relic Alert の構造を説明しましたが。アラートポリシーとはなんでしょうか?なぜ、複数のアラート条件を設定できる必要があるのでしょうか? それは、インシデント管理及びアラート通知を効率良く管理するためです。

アラートポリシーがないと、どういうことになるかというと、例えば、レスポンスタイムが2秒を超えたら、アラートを通知する。スループットが、1000 を超えたらアラートを出すという2つのアラート条件を作成していた場合、どちらかの条件に達したら、もう片方の条件に達するという自体が発生した場合、2つアラートが飛ぶことになります。しかし、実際の原因は1つかもしれません。

そこで、アラートポリシーが役に立ちます。アラートポリシーの配下にあるアラート条件は、どれか一つでもアラート条件に違反していたら、その後に別のアラート条件で違反があっても、最初のアラート条件の違反が解消されるまで、追加でアラートを通知しません。

このように、アラートポリシーは、同じ原因によるアラート通知が大量に発生することを防ぎ、効率的にアラートを管理する仕組みとなっています。


健全さを示すヘルスインジゲーター

アラートは、New Relic APM などのサービスマップやインデックス画面で、アプリの健全さを示すことにも使われています。以下のように、Warning に違反すると、黄色、Criticla だと赤になっています。そのため、アラートが適切に設定されていれば、パット見でアプリで何か問題が発生しているかが、簡単に知ることができます。

qiita_alert_incident.png


今後追加予定の機能

NRQL アラート

待望の機能。NRQL を指定して、その結果の値でアラートを通知できる。これが入れば、実質 Insights で管理しているデータはすべてアラート対象にできる。何がいいかというと、弊社の場合は、ソフトウェアDLのECやってたりするので、S3のダウンロード数とかみてたりするけど、それがある一定数いったらアラートを出すとかが簡単にできる。今は、Insihgts API を使って、データとって、別の仕組みでアラート出してたりしてるんだけど、それが必要なくなるので、誰でも、簡単にそういったことができるようになる。これは、たぶん、すごい便利。

ベースラインアラート

これは、今まではアラートの条件の閾値を決め打ちで設定して、それを超えたらアラートでてたんだけど、これは機械学習を使って、過去の履歴からある程度類推してくれるらしい。詳しくは試せてないので分からないけど、これも非常に気になる機能。

アラート条件: Web transactions percentiles の追加

今までは、平均とかだけだったけど、パーセンタイルで指定できるようになる。これも、設定画面みれてないので、どういった指定の仕方かわからなけいど、今までより、外れ値を無視できるようになるのではないかと思っている。

ラベルでのアプリケーション指定

今回紹介したアラートの作成方法だと、アプリごとに指定するので、アプリが増えたときに追加で設定したりする必要があるが、たぶん(正式にはどういう機能かしらないけど)アプリのラベルで指定ができる。つまり、アプリを追加した場合も、ラベルを設定すればアラートの設定をする必要がなくなる。たぶん。

上記は、たぶん、プライベートベータとかだと思うので、いつ正式リリースになってないけど、12月中にリリースされたら、別の日で詳しく書いてみたい。


あわせてよみたい

去年のアドベントカレンダーの記事 New Relic Alert: 柔軟なアラートの設定でインシデントを効率よく管理しよう では、この記事よりもスクショを多用して、アラートの設定やチャネルの設定など詳しく説明しています。

もっと詳しく知りたい方は、ドキュメント(日本語)をご覧ください。


まとめ

既に有料プランをお使いの方は、いますぐ切り替えて使ったほうがいい。また、今後も非常に楽しみな機能が目白押しです。アラートの(いまのところの)最終進化系が、他の日でも触れる AI/機械学習の新プロジェクト Project Seymore だとおもう。これは非常楽しみな機能となっています。

是非、アラートを活用して、顧客が気づく前に対応できる環境を整えてください。