Application Insights の概要
Azure Monitor Application Insights は、Azure Monitor の機能であり、ライブ Web アプリケーションのアプリケーション パフォーマンス監視 (APM) に優れています。
エクスペリエンス
Application Insights は、アプリケーションのパフォーマンス、信頼性、品質を向上させる数多くのエクスペリエンスを備えています。
調査
- アプリケーション ダッシュボード: アプリケーションの正常性とパフォーマンスを一目で確認できる評価。
- アプリケーション マップ: アプリケーションのアーキテクチャとコンポーネントの相互作用の視覚的な概要。
- Live metrics: アプリケーションのアクティビティとパフォーマンスに対する分析情報のリアルタイムな分析ダッシュボード。
- トランザクションの検索: トランザクションを追跡および診断して、問題を特定し、パフォーマンスを最適化します。
- 可用性ビュー: アプリケーション エンドポイントの可用性と応答を事前に監視してテストします。
- エラー ビュー: アプリケーション内のエラーを特定および分析して、ダウンタイムを最小限に抑えます。
- パフォーマンス ビュー: アプリケーションのパフォーマンス メトリックと潜在的なボトルネックをレビューします。
監視
- アラート: アプリケーションの幅広い側面を監視して、さまざまなアクションをトリガーします。
- メトリック: メトリック データを詳しく確認して、使用状況のパターンと傾向を把握します。
- 診断設定: 選択したエクスポート先へのプラットフォーム ログとメトリックのエクスポートのストリーミングを構成します。
- ログ: Azure の監視ログに収集されているすべてのデータを取得、統合、分析します。
- Workbooks: アプリケーションの監視データを視覚化する対話型のレポートとダッシュボードを作成します。
使用法
- ユーザー、セッション、イベント: ユーザーが Web アプリと対話した日時、場所、方法を判断します。
- ファネル: コンバージョン率を分析して、ファネルでのユーザーの進行状況や持ち込みの場所を特定します。
- フロー: サイト上のユーザーのパスを視覚化して、高いエンゲージメント領域と終了ポイントを特定します。
- コーホート: 共有特性ごとにユーザーをグループ化して、傾向の特定、セグメント化、パフォーマンスのトラブルシューティングを簡素化します。
コード分析
- プロファイラー: アプリケーションのパフォーマンス トレースをキャプチャ、特定、表示します。
- コードの最適化: AI を駆使して、より優れ、より効率的なアプリケーションを作成します。
- スナップショット デバッガー: .NET アプリケーションで例外が発生すると、デバッグ スナップショットを自動的に収集します
ロジック モデル
ロジック モデル図を使うと、Application Insights のコンポーネントとその相互作用が視覚化されます。
Note
データがインジェスト エンドポイントに到達するにはファイアウォール設定を調整する必要があります。 詳細については、「Azure Monitor で使用される IP アドレス」を参照してください。
サポートされている言語
このセクションでは、サポートされているシナリオについて説明します。
アプリケーションをインストルメント化して Application Insights を有効にする方法の詳細については、データ収集の基本に関する記事を参照してください。
自動インストルメンテーション (コードを変更せずに有効にする)
手動インストルメンテーション
OpenTelemetry Distro
クライアント側 JavaScript SDK
Application Insights SDK (Classic API)
サポートされているプラットフォームとフレームワーク
このセクションでは、サポートされているすべてのプラットフォームとフレームワークの一覧を示します。
Azure サービスの統合 (ポータルの有効化、Azure Resource Manager のデプロイ)
- Azure Virtual Machines と Azure Virtual Machine Scale Sets
- Azure App Service
- Azure Functions
- Azure Spring Apps
- Azure Cloud Services、Web ロールと worker ロールの両方を含む
ログ記録フレームワーク
ILogger
- Log4Net、NLog、または System.Diagnostics.Trace
Log4J
、Logback、または java.util.logging- LogStash プラグイン
- Azure Monitor
エクスポートとデータ分析
サポートされていないソフトウェア開発キット (SDK)
コミュニティでサポートされている Application Insights SDK が多数存在しますが、Microsoft では、この記事に一覧表示されているインストルメンテーション オプションのサポートのみが提供されています。
よく寄せられる質問
このセクションでは、一般的な質問への回答を示します。
アプリケーションをインストルメント化するには
アプリケーションをインストルメント化して Application Insights を有効にする方法の詳細については、データ収集の基本に関する記事を参照してください。
Application Insights の使用方法
アプリケーションをインストルメント化して Application Insights を有効にしたら、まず Live metrics とアプリケーション マップをチェックアウトすることをお勧めします。
Application Insights では、どのようなテレメトリが収集されますか?
サーバーの Web アプリから:
- HTTP 要求。
- 依存関係。 SQL データベースに対する呼び出し、外部サービス、Azure Cosmos DB、Azure Table Storage、Azure Blob Storage、Azure Queue Storage に対する HTTP 呼び出し。
- 例外とスタック トレース。
- パフォーマンス カウンター: パフォーマンス カウンターは、次のものを使用する場合に使用できます。
- コード化するカスタム イベントとカスタム メトリック。
- トレース ログ (適切なコレクターを構成する場合)。
アプリでのキャッチされない例外 (以下の情報が含まれる)
- スタック トレース
- 例外の詳細とエラーに付随するメッセージ
- エラーの行番号と列番号
- エラーが発生した URL
- アプリの XML Http 要求 (XHR) および Fetch (フェッチ コレクションは既定では無効) 要求によって実行されるネットワーク依存関係要求には、以下の情報が含まれます。
- 依存関係ソースの URL
- 依存関係の要求に使用されたコマンドとメソッド
- 要求の期間
- 要求の結果コードと成功状態
- 要求を行うユーザーの ID (存在する場合)
- 要求が行われた相関関係コンテキスト (存在する場合)
ユーザー情報 (場所、ネットワーク、IP など)
デバイス情報 (ブラウザー、OS、バージョン、言語、モデルなど)
セッション情報
注意
シングルページ アプリケーション (SPA) などの一部のアプリケーションでは、期間が記録されない可能性があり、既定値の 0 になります。
詳細については、「Application Insights でのデータの収集、保持、保存」をご覧ください。
その他のソースから (構成する場合):
デプロイする必要がある Application Insights リソースの数
環境全体でアプリケーションまたはコンポーネントをカバーするために必要な Application Insights リソースの数については、Application Insights デプロイ計画ガイドに関するページを参照してください。
PowerShell を使用した Application Insights リソースを管理するにはどうすればよいですか?
Azure Resource Monitor を使用して PowerShell スクリプトを記述することにより、以下の操作を実行できます。
- Application Insights リソースの作成と更新。
- 価格プランの設定。
- インストルメンテーション キーの取得。
- メトリック アラートの追加。
- 可用性テストの追加。
メトリックス エクスプローラー レポートや連続エクスポートは設定できません。
Application Insights テレメトリにクエリを実行するにはどうすればよいか
REST API を使用して Log Analytics クエリを実行します。
テレメトリを Application Insights ポータルに送信できますか?
Azure Monitor OpenTelemetry Distro をお勧めします。
取り込みスキーマとエンドポイント プロトコルは一般公開されています。
テレメトリの収集にはどれくらいの時間がかかりますか?
Application Insights のほとんどのデータは、待ち時間が 5 分未満となっています。 一部のデータ (通常は、大きなログ ファイル) では、これよりも時間がかかることがあります。 Application Insights のサービス レベル アグリーメントに関するページを参照してください。
Application Insights では、どのようにデータの収集、保持、保管、プライバシーを処理しますか?
コレクション
Application Insights では、Web サーバー テレメトリ、Web ページ テレメトリ、パフォーマンス カウンターなど、お使いのアプリに関するテレメトリを収集します。 このデータは、お使いのアプリのパフォーマンス、正常性、使用状況を監視する目的で使用できます。 新しい Application Insights リソースを作成するときに場所を選択できます。
保持と保管
データは Application Insights Log Analytics ワークスペースに送信されます。 生データの保持期間は 30 日から 730 日まで選択できます。 集計データは 90 日間保持され、デバッグ スナップショットは 15 日間保持されます。
プライバシー
Application Insights では、機密データは既定では処理されません。 機密データをプレーンテキストとして URL に含めず、カスタム コードで個人やその他の機密情報が収集されないようにすることをお勧めします。 開発とテストの間、IDE とブラウザーのデバッグ出力ウィンドウで送信されたデータを確認します。
アーカイブ情報については、「Application Insights でのデータの収集、保持、保存」をご覧ください。
Application Insights の価格モデルについて
Application Insights は、ログ データが取り込まれた Log Analytics ワークスペースを通じて課金されます。 既定の従量課金制 Log Analytics 価格レベルには、課金アカウントごとに、1 か月あたり 5 GB の無料データ許容量が含まれています。 Azure Monitor ログの価格オプションについて、ご確認ください。
Azure Web アプリと Application Insights の間でデータ転送料金は発生しますか?
- Application Insights の収集エンドポイントがあるデータセンターで Azure Web アプリがホストされている場合、料金はかかりません。
- ホスト データセンターに収集エンドポイントがない場合は、アプリのテレメトリに対して Azure の送信料金が発生します。
この回答は、Application Insights リソースがホストされている場所ではなく、エンドポイントの分散によって異なります。
Application Insights リソースが別のリージョンの Azure リソース (つまりテレメトリ プロデューサー) を監視している場合、ネットワーク コストは発生しますか?
はい。テレメトリの取得元と送信先のリージョンによって異なる、追加のネットワーク コストが発生する場合があります。 詳細については、「Azure 帯域幅の価格」を参照してください。
Application Insights ではどの TLS バージョンがサポートされますか
重要
2025 年 3 月 1 日、Azure 全体でのレガシ TLS 提供終了に合わせて、TLS 1.0/1.1 プロトコル バージョン、および一覧の TLS 1.2/1.3 レガシ暗号スイートと楕円曲線が Application Insights で廃止されます。 クラス最高の暗号化を提供するために、Application Insights では、暗号化メカニズムとしてトランスポート層セキュリティ (TLS) 1.2 および 1.3 が使用されます。
従来の TLS の問題に関する一般的な質問については、「TLS の問題の解決」および「Azure Resource Manager TLS サポート」を参照してください。
ヘルプとサポート
Azure テクニカル サポート
Azure サポートの問題については、Azure サポート チケットを開いてください。
Microsoft の質問と回答フォーラム
一般的な質問は Microsoft の質問と回答フォーラムに投稿してください。
Stack Overflow
azure-application-insights
タグを使用して、コーディングに関する質問を Stack Overflow に投稿してください。
フィードバック コミュニティ
フィードバック コミュニティでエンジニアリング チームへの製品フィードバックを残します。