Application Insights の概要
Application Insights は Azure Monitor の拡張機能であり、アプリケーション パフォーマンス監視 ("APM" とも呼ばれます) 機能を提供します。 APM ツールは、次の方法で、開発、テスト、運用環境からアプリケーションを監視するのに役立ちます。
- アプリケーションのパフォーマンスを事前に理解します。
- アプリケーション実行データを事後に確認して、インシデントの原因を特定します。
アプリケーションのアクティビティと正常性を記述する メトリック とアプリケーション テレメトリ データの収集に加えて、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 .NET、Azure App Service .NET Core、Azure Functions、Azure Virtual Machines で使用できます。
Azure Monitor Application Insights エージェント は、オンプレミスの仮想マシンで実行されているワークロードで使用できます。
自動インストルメント化でサポートされているすべての環境、言語、およびリソース プロバイダーの詳細については、 こちらを参照してください。
その他のシナリオでは、 Application Insights SDK が必要です。
プレビューの Open Telemetry オファリングも利用できます。
サポートされている言語
このセクションでは、サポートされているシナリオについて説明します。
サポートされているプラットフォームとフレームワーク
このセクションでは、サポートされているすべてのプラットフォームとフレームワークの一覧を示します。
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 ロールの両方を含む
自動インストルメンテーション (コード変更なしで有効化)
手動インストルメンテーション/SDK (一部のコード変更が必要)
- ASP.NET
- ASP.NET Core
- Node.js
- Python
- JavaScript - Web
- Windows デスクトップのアプリケーションとサービス、および worker ロール
- ユニバーサル Windows アプリ (App Center)
- Android (App Center)
- iOS (App Center)
Note
OpenTelemetry ベースのインストルメンテーションは、C#、Node.js、Python ではプレビューで利用できます。 各言語の公式ドキュメントの冒頭で説明されている制限事項を確認してください。 フル機能のエクスペリエンスが必要な場合は、既存の Application Insights SDK を使ってください。
ログ記録フレームワーク
- ILogger
- Log4Net、NLog、または System.Diagnostics.Trace
- Log4J、Logback、または java.util.logging
- LogStash プラグイン
- Azure Monitor
エクスポートとデータ分析
サポートされていない SDK
コミュニティでサポートされている Application Insights SDK が他にもいくつか存在します。 ただし、Azure Monitor では、このページに記載されているサポート対象のインストルメンテーション オプションを使用しているときにのみ、サポートが提供されます。 Microsoft は、他の言語のサポートを拡大する機会を常に評価しています。 最新の SDK のニュースについては、Application Insights の Azure の更新情報を参照してください。
よく寄せられる質問
よく寄せられる質問を確認します。
トラブルシューティング
Application Insights に特化したトラブルシューティングに関する記事を参照してください。
ヘルプとサポート
Microsoft Q&A 質問フォーラム
一般的な質問は Microsoft Q&A の回答フォーラムに投稿してください。
Stack Overflow
Application Insights タグを使用して Stack Overflow にコーディングに関する質問を投稿します。
User Voice
UserVoice でエンジニアリング チームへの製品フィードバックを残します。