しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Application Insights の Proactive Detection を使ってみた

少し前に Application Insights に追加された Proactive Detection がとても気になっていたのですが、今日初めて通知が届いたので簡単にどのような機能なのか紹介しておきます。

最初にどのような機能なのか、公式のドキュメントを読んでおいた方が良いですね。

https://azure.microsoft.com/ja-jp/documentation/articles/app-insights-proactive-detection/

要約すると、これまでの Application Insights は様々なデータを取得して表示するぐらいしか提供していませんでしたが、Proactive Detection によってその膨大なデータを分析して、パフォーマンスやサービスに潜む問題を検出することが出来ます。

データマイニングと機械学習を活用して、全て自動化されているようです。現在はプレビューなので、まだ分析される項目は以下のように少ないですが、今後種類は増えてくるはずです。

・Application Insights によって収集されたすべてのデータが分析されるのですか。
現時点ではすべてではありません。現在は、要求の応答時間、依存関係の応答時間、およびページの読み込み時間が分析されます。その他のメトリックの分析も間もなく行われる予定です。

https://azure.microsoft.com/ja-jp/documentation/articles/app-insights-proactive-detection/

とまあ、Proactive Detection の説明はこのくらいにして、今日実際に届いた通知などを紹介します。

最初に Application Insights から以下のようなメールが届きました。

とある処理が、他の処理よりも大幅に遅くなっているようです。その処理は全体の HTTP リクエストの 21.3% を占めていて、45 人のユーザーが影響を受けたというところまで、このメールで把握できます。

Azure ポータルから該当の Application Insights を開くと、同様の情報を確認することが出来ます。

そして遅くなっている HTTP リクエストの情報を更に詳しく調べたり、全体のテレメトリからフィルタリングして表示することも出来ます。この問題が繰り返し発生しているかといった情報も確認出来ます。

フィルタリングすると、どのリクエストが実際にどのくらい時間がかかったのかといった詳細な情報まで、数クリックで簡単に辿っていけるようになっています。

リクエスト単位まで絞り込むと、実行された SQL ログや外部 API の呼び出しまで確認出来ます。

Proactive Detection が検出するものはまだ少ないですが、かなり期待できる機能なのではないかと思っています。こういった膨大なデータを活用するのは難しいので、サービス側で提供されると便利ですね。