Application Insights を使用してアプリケーションを監視する
金融機関のアプリケーションで問題が発生すると、顧客は口座にアクセスできなくなります。 アプリケーションの問題がすぐに解決されないと、顧客満足度は悪影響を受けます。 あなた組織は、Azure に移行する際にこのような問題が発生するのを避けたいと考えています。
このユニットでは、Azure Monitor Application Insights をアプリケーションと統合する方法について説明します。 Application Insights を使用すると、アプリケーションの正常性をチェックして問題をより迅速に解決できます。
Application Insights を使用して行うこと
- アプリケーションの正常性とパフォーマンスに影響を与える課題と問題を分析し、それに対処する必要がある。
- アプリケーションの開発ライフサイクルを改善する必要がある。
- ユーザー エクスペリエンスを評価し、ユーザーの行動を分析する。
Application Insights をアプリケーションと統合する
Application Insights をアプリケーションと統合するには、Azure portal で Application Insights を有効にするか、Application Insights を使用してアプリケーションをインストルメント化します。 インストルメンテーションとは、エージェントまたは SDK を使用してアプリからの監視データの収集を有効にすることです。 アプリケーションの言語とプラットフォームによって、インストルメンテーションのアプローチは異なります。
多くの場合、Azure portal でコードなしアタッチを使用するか、エージェントを使用することで、アプリケーションのソース コードにアクセスすることなくインストルメンテーションを実装できます。 たとえば、Azure App Services にホストされている .NET および .NET Core アプリケーションでは、Azure portal で切り替えることで Application Insights による監視データの収集を有効にできます。
Application Insights では、アプリケーションのパフォーマンスと正常性に関するデータが自動的に収集され、このデータは Azure portal に表示されます。 Application Insights の左側のナビゲーションで [Failures] (エラー) を選択すると、アプリで収集されたすべてのエラーの一覧を取得し、それぞれにドリルダウンできます。
エラーまたは例外の根本原因の調査を続行するには、問題のあるトランザクションをドリルダウンすると、依存関係や例外の詳細情報が含まれる詳細なエンドツーエンドのトランザクション ビューが表示されます。
また、Application Insights では、アプリの依存関係を自動的に検出して、分散トレースをサポートし、アプリケーション トポロジ ビューを作成します。 このトポロジは、Application Insights の左側のナビゲーションで [アプリケーション マップ] を選択すると表示されます。
マップ内の各コンポーネントを選んで、詳細を確認できます。 たとえば、インスタンスの最も遅い要求を表示して、パフォーマンスを詳しく調べることができます。 これらの詳細な分析は、アプリケーションをより深く理解し、その要件に対応するのに役立ちます。
アプリケーションのパフォーマンスを監視する
低速なトランザクションをさらに調査して、低速な要求とサーバー側の依存関係を特定できます。 アプリケーション マップで [Investigate performance] (パフォーマンスの調査) を選択するか、Application Insights の左側のナビゲーションで [Performance] (パフォーマンス) を選択してドリルダウンします。
[Performance] (パフォーマンス) 画面では、時間の範囲、操作名、および目的の期間を選択して、低速なトランザクションを分離できます。 トランザクション間で自動的に特定された異常および共通点について操作を促されます。 ここから、個々のトランザクションをドリルして、依存関係のガント チャートを含むトランザクションの詳細をエンドツーエンドで表示できます。
Application Insights で Web ページをインストルメント化する場合は、ページ ビュー、ブラウザーの操作、依存関係を可視化することもできます。 このブラウザー データを収集するには、スクリプトを Web ページに追加する必要があります。 スクリプトを追加したら、[ブラウザー] トグルを選択すると、ページ ビューとそれに関連付けられたパフォーマンス メトリックにアクセスできます。
ユーザー動作を分析する
Application Insights を使用して Web ページをインストルメント化すると、サーバー側の監視機能を強化するための使用状況の情報が収集されます。 同じブラウザー側の JavaScript インストルメンテーションによって、ユーザーの数、セッション、イベント、ブラウザーのバージョン、OS バージョン、場所などの使用状況データが提供されます。 使用状況データを見ると、アプリのどのページが最も人気があるか、ユーザーはどこでドロップアウトしたか、特定のページのコンバージョン率とリテンション率がわかります。
前述の例は、最も人気のあるブラウザーとバージョンを示しています。 この種類の情報を使用して、機能およびパフォーマンス テストのリソース割り当てに関する意思決定に情報を提供できます。
アプリケーションの可用性を監視する
Application Insights の [Availability] (可用性) ページを使用すると、さまざまな地理的な場所でアプリケーションの正常性を継続的に監視してチェックできます。
可用性テストを作成したら、[Availability] (可用性) ページを使用して、さまざまな場所からアプリケーションがどのように動作しているかを確認できます。 散布図グラフの各ドットは、実行されたテストを表します。 赤いドットは、テストが失敗したことを意味します。
赤いドットを選択すると、テストの失敗の詳細な内訳が表示されます。これには、それを引き起こした可能性のある原因に関する情報が含まれます。 この情報を使って、適切に対応します。
可用性テストの作成時には、頻度、アプリケーションの URL、アプリをテストする場所などの詳細を指定できます。 以下の例には、5 つの地理的な場所から 5 分ごとにアプリケーションに要求を送信するテストの構成が示されています。
通知を受信してアクションを実行する
Application Insights の警告ルールを構成して、アプリケーションのパフォーマンスと可用性を監視できます。 アラートをトリガーする必要がある条件を指定し、アラートの処理方法を指示できます。 たとえば、Application Insights では、指定された数の場所が使用できない場合、または特定の数の例外が発生した場合にアラートを送信できます。
アラートについて通知するユーザーを指定することもできます。 Application Insights では、メールまたはテキスト メッセージを使用した通知の送信や、アラートに対する Runbook および Webhook を使用した自動応答が可能です。