Application Insights とは何か?

Application Insights は Azure Monitor の機能であり、開発者や DevOps プロフェッショナル向けの拡張可能なアプリケーション パフォーマンス管理 (APM) サービスです。 このサービスを使用して、実行中のアプリケーションを監視することができます。 パフォーマンスの異常を自動的に検出し、組み込まれている強力な分析ツールを使用して、問題を診断し、ユーザーがアプリを使用して実行している操作を把握できます。 Application Insights は、パフォーマンスやユーザビリティを継続的に向上させるうえで役立つように設計されています。 オンプレミス、ハイブリッド、または任意のパブリック クラウドでホストされている .NET、Node.js、Java、Python などのさまざまなプラットフォーム上のアプリで機能します。 DevOps プロセスと統合され、さまざまなツールへの接続ポイントを備えています。 Visual Studio App Center と統合することで、モバイル アプリからテレメトリを監視および分析できます。

Application Insights のしくみ

アプリケーションに小規模なインストルメンテーション パッケージ (SDK) をインストールするか、サポートされている場合は Application Insights エージェントを使用して Application Insights を有効にします。 インストルメンテーションによってアプリが監視され、インストルメンテーション キーと呼ばれる一意の GUID を使用して、テレメトリ データが Azure Application Insights リソースに転送されます。

Web サービス アプリケーションだけでなく、バックグラウンド コンポーネントや Web ページ内の JavaScript 自体もインストルメント化することができます。 アプリケーションおよびそのコンポーネントの実行場所は問いません。Azure でホストされている必要はありません。

アプリ内の Application Insights のインストルメンテーションが Application Insights のリソースにテレメトリを送信します。

さらに、パフォーマンス カウンター、Azure Diagnostics、Docker のログなどのホスト環境からテレメトリをプルすることができます。 定期的に Web サービスに人工的な要求を送信する Web テストを設定することもできます。

これらのテレメトリ ストリームはすべて Azure Monitor に統合されています。 Azure portal では、強力な分析ツールと検索ツールを生データに適用できます。

オーバーヘッドとは

アプリのパフォーマンスへの影響はわずかです。 追跡呼び出しはブロッキングを行わず、バッチ処理された後、別のスレッドで送信されます。

Application Insights の監視対象

Application Insights は、開発チーム用のツールであり、アプリのパフォーマンスや使用状況を把握できるように支援します。 以下を監視します。

  • 要求レート、応答時間、およびエラー率: 最も人気のあるページがどの時間帯にどの場所のユーザーからアクセスされているかを調べます。 最もパフォーマンスの高いページを確認します。 要求が多いときに、応答時間と失敗率が高くなる場合は、おそらくリソースに問題があります。
  • 依存率、応答時間、およびエラー率: 外部サービスによって応答が遅くなっているかどうかを調べます。
  • 例外: 集計された統計を分析します。または特定のインスタンスを選択し、スタック トレースと関連する要求を調べます。 サーバーとブラウザーの両方の例外が報告されます。
  • ページ ビューと読み込みのパフォーマンス: ユーザーのブラウザーから報告されます。
  • Web ページからの AJAX 呼び出し: レート、応答時間、およびエラー率。
  • ユーザー数とセッション数
  • Windows または Linux サーバー コンピューターの CPU、メモリ、ネットワーク使用率などの パフォーマンス カウンター
  • Docker または Azure の ホスト診断
  • アプリの 診断トレース ログ: これにより、トレース イベントを要求に関連付けることができます。
  • 販売された品目や勝利したゲームなどのビジネス イベントを追跡するためにクライアントまたはサーバーのコード内に書き込んだ カスタム イベントとメトリック

テレメトリの確認場所

データを探索する方法は多数あります。 次の記事を参照してください。

記事の説明 Image
スマート検出と手動のアラート
アプリのテレメトリの通常パターンに合わせて自動アラートを設定し、通常とは異なるパターンがある場合にアラートをトリガーします。 カスタムまたは標準のメトリックスの特定レベルでアラートを設定することもできます。
アラートのサンプル
アプリケーション マップ
アプリのコンポーネントを、主要なメトリックとアラートと共に表示します。
アプリケーション マップ
プロファイラー
サンプリングされた要求の実行プロファイルを検査します。
サンプリングされた要求の実行プロファイルを示すキャプチャ画面。
利用状況分析
ユーザーのセグメント化とリテンションを分析します。
リテンション期間ツール
インスタンスのデータの診断検索
要求、例外、依存関係の呼び出し、ログ トレースおよびページ ビューなどのイベントを検索およびフィルター処理します。
テレメトリの検索
集計データのメトリックス エクスプ ローラー
要求、失敗、および例外の比率、応答時間、ページの読み込み時間などの集計データを調査、フィルター処理、およびセグメント分割します。
メトリック
ダッシュボード
複数のリソースからのデータをマッシュアップし、他のユーザーと共有します。 複数コンポーネントのアプリケーションと、チーム ルームでの継続的な表示に最適です。
ダッシュボードのサンプル
ライブ メトリック ストリーム
新しいビルドをデプロイする場合、このほぼリアルタイムのパフォーマンス インジケーターを監視し、すべてが期待どおりに動作することを確認します。
ライブ メトリックのサンプル
分析
この強力なクエリ言語を使用して、アプリのパフォーマンスと使用状況に関する難しい質問に回答します。
分析のサンプル
Visual Studio
パフォーマンス データをコードで確認します。 スタック トレースからコードに移動します。
Visual Studio の [例外の詳細] とスタック トレースからコードに移動する例のスクリーンショット。
スナップショット デバッガー
ライブの操作からサンプリングされたスナップショットをパラメーター値でデバッグします。
Visual studio
Power BI
使用状況のメトリックをその他のビジネス インテリジェンスと統合します。
Power BI
REST API
メトリックと生データのクエリを実行するコードを記述します。
REST API
連続エクスポート
生データが届いたらすぐにストレージに一括エクスポートします。
エクスポート

Application Insights の使用方法

モニター

Application Insights を Web アプリにインストールし、可用性 Web テストを設定します。さらに、次のことを行います。

  • チーム ルーム用の既定のアプリケーション ダッシュボードをチェックし、負荷、応答性のほか、依存関係、ページの読み込み、および AJAX 呼び出しのパフォーマンスを監視します。
  • 最も時間がかかり、最も失敗した要求を検出します。
  • 低下しているものについてすぐにわかるように、新しいリリースをデプロイしたときに Live Stream を監視します。

検出、診断

アラートを受け取ったときや問題を検出したときに、次のことを行います。

  • 影響を受けるユーザーの数を評価します。
  • 失敗を、例外、依存関係呼び出し、トレースと相互に関連付けます。
  • プロファイラー、スナップショット、スタック ダンプ、およびトレース ログを調べます。

ビルド、評価、学習

デプロイした各新機能の有効性を評価します。

  • 顧客が新しい UX やビジネス機能をどのように使用しているかを評価することを計画します。
  • カスタム テレメトリをコードに書き込みます。
  • テレメトリによる確かな証拠に基づいて次の開発サイクルを決定します。

はじめに

Application Insights は、Microsoft Azure でホストされる多数のサービスの 1 つであり、テレメトリは分析と表示のために Microsoft Azure に送信されます。 このため、他の操作を行う前に、 Microsoft Azureのサブスクリプションが必要になります。 サインアップは無料で、Application Insights の基本的な価格プランを選択できます。大幅に増えた使用量に対応するようアプリケーションを拡大しない限り、料金は発生しません。 組織に既にサブスクリプションがある場合は、それにユーザーの Microsoft アカウントを追加することができます。

作業の開始方法はいくつかあります。 目的に適した方法から始めてください。 後で、他のものを追加することもできます。

次のステップ

実行時に開始する:

開発時に開始する:

サポートとフィードバック