Application Insights とは何か?What is Application Insights?

Application Insights は Azure Monitor の機能であり、複数のプラットフォームで使用できる Web 開発者向けの拡張可能なアプリケーション パフォーマンス管理 (APM) サービスです。Application Insights, a feature of Azure Monitor, is an extensible Application Performance Management (APM) service for web developers on multiple platforms. このサービスを使用して、実行中の Web アプリケーションを監視することができます。Use it to monitor your live web application. パフォーマンスに異常があると、自動的に検出されます。It will automatically detect performance anomalies. 組み込まれている強力な分析ツールを使えば、問題を診断し、ユーザーがアプリを使用して実行している操作を把握できます。It includes powerful analytics tools to help you diagnose issues and to understand what users actually do with your app. Application Insights は、パフォーマンスやユーザビリティを継続的に向上させるうえで役立つように設計されています。It's designed to help you continuously improve performance and usability. オンプレミス、ハイブリッド、または任意のパブリック クラウドでホストされている .NET、Node.js、Java EE などのさまざまなプラットフォーム上のアプリで機能します。It works for apps on a wide variety of platforms including .NET, Node.js and Java EE, hosted on-premises, hybrid, or any public cloud. DevOps プロセスと統合され、さまざまなツールへの接続ポイントを備えています。It integrates with your DevOps process, and has connection points to a variety of development tools. Visual Studio App Center と統合することで、モバイル アプリからテレメトリを監視および分析できます。It can monitor and analyze telemetry from mobile apps by integrating with Visual Studio App Center.

Application Insights のしくみHow does Application Insights work?

小さなインストルメンテーション パッケージをアプリケーションにインストールし、Application Insights リソースを Microsoft Azure ポータルに設定します。You install a small instrumentation package in your application, and set up an Application Insights resource in the Microsoft Azure portal. このインストルメンテーションがアプリを監視し、テレメトリ データを Azure Monitor に送信しますThe instrumentation monitors your app and sends telemetry data to Azure Monitor. (アプリケーションの実行場所は問いません。Azure でホストされている必要はありません)。(The application can run anywhere - it doesn't have to be hosted in Azure.)

Web サービス アプリケーションだけでなく、バックグラウンド コンポーネントや Web ページ内の JavaScript 自体もインストルメント化することができます。You can instrument not only the web service application, but also any background components, and the JavaScript in the web pages themselves.

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

さらに、パフォーマンス カウンター、Azure Diagnostics、Docker のログなどのホスト環境からテレメトリをプルすることができます。In addition, you can pull in telemetry from the host environments such as performance counters, Azure diagnostics, or Docker logs. 定期的に Web サービスに人工的な要求を送信する Web テストを設定することもできます。You can also set up web tests that periodically send synthetic requests to your web service.

これらのテレメトリ ストリームはすべて Azure Monitor に統合されています。All these telemetry streams are integrated into Azure Monitor. Azure portal では、強力な分析ツールと検索ツールを生データに適用できます。In the Azure portal, you can apply powerful analytic and search tools to the raw data.

オーバーヘッドとはWhat's the overhead?

アプリのパフォーマンスへの影響はごくわずかです。The impact on your app's performance is very small. 追跡呼び出しはブロッキングを行わず、バッチ処理された後、別のスレッドで送信されます。Tracking calls are non-blocking, and are batched and sent in a separate thread.

Application Insights の監視対象What does Application Insights monitor?

Application Insights は、開発チーム用のツールであり、アプリのパフォーマンスや使用状況を把握できるように支援します。Application Insights is aimed at the development team, to help you understand how your app is performing and how it's being used. 以下を監視します。It monitors:

  • 要求レート、応答時間、およびエラー率: 最も人気のあるページがどの時間帯にどの場所のユーザーからアクセスされているかを調べます。Request rates, response times, and failure rates - Find out which pages are most popular, at what times of day, and where your users are. 最もパフォーマンスの高いページを確認します。See which pages perform best. 要求が多いときに、応答時間と失敗率が高くなる場合は、おそらくリソースに問題があります。If your response times and failure rates go high when there are more requests, then perhaps you have a resourcing problem.
  • 依存率、応答時間、およびエラー率: 外部サービスによって応答が遅くなっているかどうかを調べます。Dependency rates, response times, and failure rates - Find out whether external services are slowing you down.
  • 例外: 集計された統計を分析します。または特定のインスタンスを選択し、スタック トレースと関連する要求を調べます。Exceptions - Analyze the aggregated statistics, or pick specific instances and drill into the stack trace and related requests. サーバーとブラウザーの両方の例外が報告されます。Both server and browser exceptions are reported.
  • ページ ビューと読み込みのパフォーマンス: ユーザーのブラウザーから報告されます。Page views and load performance - reported by your users' browsers.
  • Web ページからの AJAX 呼び出し: レート、応答時間、およびエラー率。AJAX calls from web pages - rates, response times, and failure rates.
  • ユーザー数とセッション数User and session counts.
  • Windows または Linux サーバー コンピューターの CPU、メモリ、ネットワーク使用率などのパフォーマンス カウンターPerformance counters from your Windows or Linux server machines, such as CPU, memory, and network usage.
  • Docker または Azure のホスト診断Host diagnostics from Docker or Azure.
  • アプリの診断トレース ログ: これにより、トレース イベントを要求に関連付けることができます。Diagnostic trace logs from your app - so that you can correlate trace events with requests.
  • 販売された品目や勝利したゲームなどのビジネス イベントを追跡するためにクライアントまたはサーバーのコード内に書き込んだカスタム イベントとメトリックCustom events and metrics that you write yourself in the client or server code, to track business events such as items sold or games won.

テレメトリの確認場所Where do I see my telemetry?

データを探索する方法は多数あります。There are plenty of ways to explore your data. 次の記事を参照してください。Check out these articles:

スマート検出と手動のアラートSmart detection and manual alerts
アプリのテレメトリの通常パターンに対して自動アラートを適応し、通常とは異なるパターンがある場合にアラートをトリガーします。Automatic alerts adapt to your app's normal patterns of telemetry and trigger when there's something outside the usual pattern. カスタムまたは標準のメトリックスの特定レベルでアラートを設定することもできます。You can also set alerts on particular levels of custom or standard metrics.
アプリケーション マップApplication map
アプリのコンポーネントを、主要なメトリックとアラートと共に表示します。The components of your app, with key metrics and alerts.
アプリケーション マップ
サンプリングされた要求の実行プロファイルを検査します。Inspect the execution profiles of sampled requests.
利用状況分析Usage analysis
ユーザーのセグメント化とリテンションを分析します。Analyze user segmentation and retention.
インスタンスのデータの診断検索Diagnostic search for instance data
要求、例外、依存関係の呼び出し、ログ トレースおよびページ ビューなどのイベントを検索およびフィルター処理します。Search and filter events such as requests, exceptions, dependency calls, log traces, and page views.
集計データのメトリックス エクスプ ローラーMetrics Explorer for aggregated data
要求、失敗、および例外の比率、応答時間、ページの読み込み時間などの集計データを調査、フィルター処理、およびセグメント分割します。Explore, filter, and segment aggregated data such as rates of requests, failures, and exceptions; response times, page load times.
複数のリソースからのデータをマッシュアップし、他のユーザーと共有します。Mash up data from multiple resources and share with others. 複数コンポーネントのアプリケーションと、チーム ルームでの継続的な表示に最適です。Great for multi-component applications, and for continuous display in the team room.
ライブ メトリック ストリームLive Metrics Stream
新しいビルドをデプロイする場合、このほぼリアルタイムのパフォーマンス インジケーターを監視し、すべてが期待どおりに動作することを確認します。When you deploy a new build, watch these near-real-time performance indicators to make sure everything works as expected.
ライブ メトリックのサンプル
この強力なクエリ言語を使用して、アプリのパフォーマンスと使用状況に関する難しい質問に回答します。Answer tough questions about your app's performance and usage by using this powerful query language.
Visual StudioVisual Studio
パフォーマンス データをコードで確認します。See performance data in the code. スタック トレースからコードに移動します。Go to code from stack traces.
Visual studio
スナップショット デバッガーSnapshot debugger
ライブの操作からサンプリングされたスナップショットをパラメーター値でデバッグします。Debug snapshots sampled from live operations, with parameter values.
Visual studio
Power BIPower BI
使用状況のメトリックをその他のビジネス インテリジェンスと統合します。Integrate usage metrics with other business intelligence.
Power BI
メトリックと生データのクエリを実行するコードを記述します。Write code to run queries over your metrics and raw data.
連続エクスポートContinuous export
生データが届いたらすぐにストレージに一括エクスポートします。Bulk export of raw data to storage as soon as it arrives.

Application Insights の使用方法How do I use Application Insights?


Application Insights を Web アプリにインストールし、可用性 Web テストを設定します。さらに、次のことを行います。Install Application Insights in your app, set up availability web tests, and:

  • チーム ルーム用の既定のアプリケーション ダッシュボードをチェックし、負荷、応答性のほか、依存関係、ページの読み込み、および AJAX 呼び出しのパフォーマンスを監視します。Check-out the default application dashboard for your team room to keep an eye on load, responsiveness, and the performance of your dependencies, page loads, and AJAX calls.
  • 最も時間がかかり、最も失敗した要求を検出します。Discover which are the slowest and most failing requests.
  • 低下しているものについてすぐにわかるように、新しいリリースをデプロイしたときに Live Stream を監視します。Watch Live Stream when you deploy a new release, to know immediately about any degradation.

検出、診断Detect, Diagnose

アラートを受け取ったときや問題を検出したときに、次のことを行います。When you receive an alert or discover a problem:

  • 影響を受けるユーザーの数を評価します。Assess how many users are affected.
  • 失敗を、例外、依存関係呼び出し、トレースと相互に関連付けます。Correlate failures with exceptions, dependency calls, and traces.
  • プロファイラー、スナップショット、スタック ダンプ、およびトレース ログを調べます。Examine profiler, snapshots, stack dumps, and trace logs.

ビルド、評価、学習Build, Measure, Learn

デプロイした各新機能の有効性を評価します。Measure the effectiveness of each new feature that you deploy.

  • 顧客が新しい UX やビジネス機能をどのように使用しているかを評価することを計画します。Plan to measure how customers use new UX or business features.
  • カスタム テレメトリをコードに書き込みます。Write custom telemetry into your code.
  • テレメトリによる確かな証拠に基づいて次の開発サイクルを決定します。Base the next development cycle on hard evidence from your telemetry.

作業開始Get started

Application Insights は、Microsoft Azure でホストされる多数のサービスの 1 つであり、テレメトリは分析と表示のために Microsoft Azure に送信されます。Application Insights is one of the many services hosted within Microsoft Azure, and telemetry is sent there for analysis and presentation. このため、他の操作を行う前に、 Microsoft Azureのサブスクリプションが必要になります。So before you do anything else, you'll need a subscription to Microsoft Azure. サインアップは無料で、Application Insights の基本的な価格プランを選択できます。大幅に増えた使用量に対応するようアプリケーションを拡大しない限り、料金は発生しません。It's free to sign up, and if you choose the basic pricing plan of Application Insights, there's no charge until your application has grown to have substantial usage. 組織に既にサブスクリプションがある場合は、それにユーザーの Microsoft アカウントを追加することができます。If your organization already has a subscription, they could add your Microsoft account to it.

作業の開始方法はいくつかあります。There are several ways to get started. 目的に適した方法から始めてください。Begin with whichever works best for you. 後で、他のものを追加することもできます。You can add the others later.

次の手順Next steps

実行時に開始する:Get started at runtime with:

開発時に開始する:Get started at development time with:

サポートとフィードバックSupport and feedback