Application Insights の新しい診断機能と分析機能
執筆者: Merav Davidson (Partner PM Director, Application Insights)
このポストは、3 月 31 日に投稿された New diagnostics and analytics capabilities in Application Insights の翻訳です。
サンフランシスコで開催された Build 2016 (英語) で、Visual Studio Application Insights (英語) の新機能が発表されました。この機能を使用することで、よりインテリジェントな診断を行ったり、アドホック クエリに瞬時に回答したり、既存の DevOps ワークフローに統合したりすることができます。
以下は、今回発表された新しい機能の一部です。詳細はその後の各セクションをご覧ください。
- Application Insights の Analytics
- Near Real Time Proactive Detection
- Live Stream Metrics
- Application Map
- Azure Dashboards
- Visual Studio の例外からコードへの移動
- Visual Studio のログ フレームワークの自動検出
Application Insights を利用したことがない方は、概要をまとめた以下の 2 分間のビデオをご覧ください。
[embed]https://www.youtube.com/watch?v=fX2NtGrh-Y0&feature=player_embedded[/embed]
Application Insights は、作業に影響しない方法で簡単かつ高速に分析を実行できる開発者向けのソリューションで、インタラクティブに問題を診断して難しい問題を解決することができます。プラットフォームの種類に関係なく、Web アプリや Web サービスで発生した問題の特定、把握、解決に利用できます。開発環境から直接問題を診断できるほか、Azure および Visual Studio Team Services との統合により、既存の DevOps ワークフローに組み込むことができます。
Analytics: アドホック クエリに瞬時に回答
先日、Application Insights の新しいビッグ データ分析機能 Analytics が発表されました。Analytics はアプリケーションに関する困難な問題をほぼ瞬時に解決できる機能で、高度なクエリ言語を使用してアプリケーションのテレメトリ データを検索することが可能です。これにより、パフォーマンスやアプリの動作に関するクリエイティブな質問をインタラクティブなクエリで柔軟に記述し、繰り返し微調整することで、問題をピンポイントに突き止めることができます。
Analytics では、サービスのパフォーマンス、ビジネス指標、顧客エクスペリエンスといったいくつもの観点でデータを連携させ、相互に関連付けて適切な質問を行うことができるため、アプリケーション スタック全体の診断が容易になります。
基本的な用途は次のとおりです。
- アプリケーション要求のパフォーマンス データをユーザー層ごとにセグメント化し、各ユーザー層のエクスペリエンスを把握する
- 稼働中のサイトの調査中に特定のエラー コードやカスタムのイベント名を検索する
- 特定のユーザーのアプリ使用状況の詳細を表示して、購入および導入された機能を把握する
- 特定のユーザーのセッション時間や応答時間を追跡し、サポート チームや運用チームが即座にカスタマー サポートを提供できるようにする
- 使用頻度の高いアプリの機能を特定し、機能の優先順位の決定に利用する
- その他多数
インテリジェントな APM: 問題のプロアクティブな検出、トリアージ、診断
最新のアプリケーション スタックは、分散型の環境で運用され、さまざまなモジュールやサードパーティのサービスに依存していることがあります。この場合、アプリケーションで何が起きているのか、アプリケーションがどのように使用されているのかを理解して問題をプロアクティブに検出し、重要度に応じてすばやくトリアージする必要があります。これにより問題の優先順位を決定し、それらをすばやく解決して、ユーザーへの影響を防ぐことができます。今回発表された新機能を使用すれば、アプリケーションの詳細な情報を可能な限り簡単に取得し、大きな成果を得ることができます。
‘Near Real Time’ Proactive Alerts は、アプリケーションでの要求の失敗の異常な増加を自動的に検出し、その診断を支援してくれる新しい機能です。異常な増加が検出されると、失敗したイベントを分析し、アプリのバージョン、応答コード、地域など共通する属性を特定し、例外やトレース、失敗に関連するさまざまなイベントを検出します。また、問題を早急に診断して修正できるように、関連するすべての情報を含むアラートを表示します。
この機能は、以前発表された Proactive Detection を補完するものです。Proactive Detection では、アプリケーションのパフォーマンスや依存関係に関するデータの異常を検出し、その異常について 1 日に 1 回通知が行われます。この情報を使ってアプリケーションのパフォーマンスを調整し、顧客エクスペリエンスを向上させることができます。
Webhook のコールバックのサポートにより、Application Insights Alerts をサードパーティのアラート管理システムに接続して、幅広い機能を利用できるようになりました。新機能の Live Stream Metrics では、アプリケーションのメトリックを 1 秒というほぼリアルタイムの低レイテンシで表示できます。これは、新しいビルドをリリースしたときに動作の正常性を確認したり、インシデントをリアルタイムで調査したりする場合にきわめて有用です。
Application Map は、アプリケーションのトポロジを自動的に検出し、その上にパフォーマンス情報を重ねることで、分散型環境全体のパフォーマンスのボトルネックや問題の原因となるフローを簡単に特定できるようにする新機能です。Application Map では、Azure サービスに対するアプリケーションの依存関係を確認できるほか、問題の原因がコードと依存関係のどちらにあるかを特定し、関連付けられている診断エクスペリエンスの詳細を 1 か所から表示することで、問題をトリアージできます。たとえば、SQL 層でのパフォーマンス低下によりアプリケーションに問題が発生している場合、Application Map を使用すればこの問題を視覚的に把握し、SQL Index Advisor や Query Performance Insight を使用して詳細を確認できます。
Dashboards では、複数の Azure リソースやアプリケーションからのデータを単一のビューにまとめて表示できます。すべてのアプリケーションのグラフ、メトリック、KPI を組み合わせ、チーム メンバーと運用ダッシュボードを簡単に共有することができます。
DevOps: 統合と拡張性
Application Insights は、マイクロソフトの DevOps ソリューションの一部で、サービスの診断に重点を置いています。Visual Studio や Visual Studio Team Services と統合することにより、開発環境から直接問題を診断したり、既存の DevOps ワークフローにデータに基づく意思決定を組み込んだりすることが容易になります。
開発環境として Visual Studio を使用している場合は、IDE から離れることなくアプリケーションのテレメトリ データの分析や問題の診断を実施できます。Visual Studio 2015 では、IDE から直接イベントを検索し、運用環境の問題を直接確認できます。
Visual Studio 2015 Update 2 では、問題の詳細を表示したり、テレメトリ情報を使用してコードに移動したり、例外のスタック トレースからコードに移動したりすることもできます。
Update 2 では、ログ フレームワークの自動検出も可能になり、トレースをシームレスに取得して Application Insights に送信することができます。また、Diagnostics Hub との統合によってもデバッグ エクスペリエンスが強化され、Application Insights のイベントをその他の詳細情報と共に表示することができます。
Visual Studio Team Services との統合では、Cloud Load Testing を使用して、疑似的な負荷を掛けてパフォーマンスの変化を調査することができます。また、Application Insights の Release Management からリリース注釈を表示し、パフォーマンスの変化とビルドの相関関連を確認することができます。
現在、皆様の独自の要件に合わせて Application Insights を容易に拡張できるようにする取り組みも進めています。GitHub でオープン ソースとして公開されている各種 SDK (英語) を使用することで、あらゆる言語で作成され、あらゆるプラットフォームで実行されている Web アプリケーションからデータを取り込むことができます。
まとめ
マイクロソフトは、今後も引き続き Application Insights に新機能を追加すると共に、フィードバックに基づいてお客様のニーズへの対応を強化してまいります。パブリック プレビュー期間中も Azure のプライバシー基準やセキュリティおよびコンプライアンス ポリシーを完全に満たし、お客様のデータの安全性を確保します。また、サブスクリプションの一部として完全なカスタマー サポートを提供していますので、お困りの場合はお気軽にご連絡ください。
最後に、先日公開された法務関連ソフトウェア プロバイダーの Cerenade の導入事例 (英語) からの引用をご紹介して、この記事を締めくくります。
「競合他社から当社に移行したお客様からは、ダウンタイムやパフォーマンスが大きな問題となっていたと伺っています。当社では、Application Insights から取得した情報を基に最適化を行っていますが、競合他社では実施しておらず、これが差別化の要因となりました」
-- Cerenade、社長兼共同創業者、Phillip Yadidian 氏
マイクロソフトでは新機能や機能強化についてのご意見をお待ちしています。何かありましたらお気軽に Application Insights の User Voice ページ (英語) までコメントをお寄せください。また、ご質問には Application Insights フォーラム (英語) をご利用ください。