Application Insights の概要

Application Insights は Azure Monitor の拡張機能であり、アプリケーション パフォーマンス監視 ("APM" とも呼ばれます) 機能を提供します。 APM ツールは、次の方法で、開発、テスト、運用環境からアプリケーションを監視するのに役立ちます。

  1. アプリケーションのパフォーマンスを事前に理解します。
  2. アプリケーション実行データを事後対応的に確認して、インシデントの原因を特定します。

アプリケーションのアクティビティと正常性を記述する メトリック とアプリケーション テレメトリ データの収集に加えて、Application Insights を使用してアプリケーション トレース ログ データを収集して格納することもできます。

ログ トレースは、アクティビティの詳細なビューを提供するために、他のテレメトリに関連付けられています。 トレース ログを既存のアプリに追加するには、ログの宛先を指定するだけで済みます。ログ 記録フレームワークを変更する必要はほとんどありません。

Application Insights には、次のようなその他の機能が用意されていますが、これらに限定されません。

  • ライブ メトリック – デプロイされたアプリケーションからのアクティビティをリアルタイムで監視し、ホスト環境に影響を与える必要はありません
  • 可用性 – "代理トランザクションの監視" とも呼ばれ、アプリケーションの外部エンドポイントをプローブして、時間の経過に伴う全体的な可用性と応答性をテストします
  • GitHub または Azure DevOps の統合 – Application Insights データのコンテキストで GitHub または Azure DevOps 作業項目を作成する
  • 使用法 – ユーザーに人気のある機能と、ユーザーがアプリケーションを操作して使用する方法を理解する
  • スマート検出 – プロアクティブテレメトリ分析による自動障害と異常検出

さらに、Application Insights では 、分散トレース ("分散コンポーネントの関連付け" とも呼ばれます) がサポートされます。 この機能を使用すると、特定の実行またはトランザクションのエンド ツー エンド フローを 検索 して 視覚化 できます。 分散コンポーネントまたは マイクロサービスとして構築されたアプリケーションでは、アクティビティをエンドツーエンドでトレースする機能がますます重要になっています。

アプリケーション マップを使用すると、アプリケーション アーキテクチャの高度なトップ ダウン ビューと、コンポーネントの正常性と応答性に関する視覚的な参照をひとめで確認できます。

環境全体でアプリケーションまたはコンポーネントをカバーするために必要な Application Insights リソースの数については、 Application Insights デプロイ計画ガイドを参照してください。

Application Insights の使用方法

Application Insights は、 自動インストルメンテーション (エージェント) または Application Insights SDK をアプリケーション コードに追加することによって有効になります。 多くの言語 がサポートされており、アプリケーションは Azure、オンプレミス、または別のクラウドでホストされている可能性があります。 最適なインストルメンテーションの種類を把握するには、アプリケーション操作方法インストルメント化を参照してください

Application Insights エージェントまたは SDK は、Azure Monitor ログ (Log Analytics) に格納される前に、データが取り込まれた後で処理される Azure にデータを送信する前に、テレメトリとメトリックを事前に処理します。 このため、Application Insights を使用するには Azure アカウントが必要です。

Application Insights の使用を開始する最も簡単な方法は、Azure portalと組み込みのビジュアル エクスペリエンスを使用することです。 上級ユーザーは、基になるデータに直接クエリを実行して、Azure Monitor ダッシュボードとブックを使用してカスタム視覚化を構築できます

高度なビューについては、 アプリケーション マップ から開始することを検討してください。 検索エクスペリエンスを使用して、テレメトリとデータを種類と日付/時刻ですばやく絞り込むか、データ内を検索して (ログ トレースなど)、特定の関連付けられた操作にフィルター処理します。

パフォーマンス ビューを使用して分析に進む - アプリケーションまたは API とダウンストリームの依存関係のパフォーマンスに関する詳細な分析情報を取得し、代表的なサンプルを見つけてエンド ツー エンドで探索します。 また、[ 失敗] ビュー を使用してプロアクティブにしてください。どのコンポーネントまたはアクションがエラーを生成し、エラーと例外をトリアージするかを理解します。 組み込みのビューは、アプリケーションの正常性を事前に追跡し、事後対応的な根本原因分析に役立ちます。

アプリケーションまたはコンポーネントの部分が確立されたベースラインから逸脱した場合に、潜在的な問題を通知する Azure Monitor アラートを作成します。

Application Insights の価格は従量課金ベースです。使用した分だけ支払います。 価格の詳細については、「 Azure Monitor の価格」ページコストを最適化する方法を参照してください。

アプリケーション操作方法インストルメント化しますか?

自動インストルメンテーション は、推奨されるインストルメンテーション メソッドです。 開発者の投資は必要なく、SDK の更新に関連する将来 のオーバーヘッドを排除します。 また、ソース コードにアクセスできないアプリケーションをインストルメント化する唯一の方法でもあります。

Application Insights SDK は、次の状況でのみインストールする必要があります。

SDK を使用するには、アプリに小さなインストルメンテーション パッケージをインストールし、Web ページ内で Web アプリ、バックグラウンド コンポーネント、JavaScript をインストルメント化します。 アプリとそのコンポーネントを Azure でホストする必要はありません。 インストルメンテーションによってアプリが監視され、一意のインストルメンテーション キーを使用して、テレメトリ データが Application Insights リソースに転送されます。 アプリのパフォーマンスへの影響は小さいです。追跡呼び出しは非ブロックであり、別のスレッドで送信されるようにバッチ処理されます。

統合自動インストルメンテーションは、Azure App Service .NETAzure App Service .NET CoreAzure FunctionsAzure Virtual Machinesで使用できます。

Azure Monitor Application Insights エージェント は、オンプレミスの仮想マシンで実行されているワークロードで使用できます。

自動インストルメンテーションでサポートされているすべての環境、言語、およびリソース プロバイダーの詳細については、 こちらを参照してください

その他のシナリオでは、 Application Insights SDK が必要です。

プレビューの Open Telemetry オファリングも利用できます。

次の手順

トラブルシューティング

よく寄せられる質問

よく寄せられる質問を確認します。

Microsoft Q&A 質問フォーラム

質問は Microsoft Q&A の回答フォーラムに投稿してください。

Stack Overflow

Application Insights タグを使用して Stack Overflow にコーディングに関する質問を投稿します。

User Voice

UserVoice でエンジニアリング チームへの製品フィードバックを残します。