0Pricing
Cloud & IT Cert Prep · レッスン

Application Insights

Application Insights SDK で Web アプリケーションを計測し、アプリケーション マップを確認して、Live Metrics Stream で問題をリアルタイムに診断します。

「Application Insights」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

Application Insights とは

Application Insightsは、稼働中の Web アプリケーションにアプリケーション パフォーマンス監視 (APM)を提供する Azure Monitor の機能です。要求、依存関係、例外、ページ ビュー、カスタム イベントに関するテレメトリを収集します。インフラストラクチャの状態を示すプラットフォーム メトリックとは異なり、Application Insights はアプリケーション コードの動作とエンド ユーザーの利用体験を示します。.NET、Node.js、Java、Python、ブラウザー JavaScript をサポートしています。

アプリケーションをインストルメント化する

アプリケーションに Application Insights を追加するには、SDK をインストールするか、自動インストルメンテーション(コードレス アタッチとも呼ばれます)を使用します。App Service では、ポータルから Application Insights を有効にすると、コードを変更せずにエージェントが自動的にインストールされます。自分で管理するアプリケーションでは、SDK パッケージを追加し、Application Insights リソースから取得した接続文字列(従来のインストルメンテーション キーより推奨)を指定します。

# Enable Application Insights on an App Service app
az webapp config appsettings set \
  --name myApp \
  --resource-group myRG \
  --settings APPLICATIONINSIGHTS_CONNECTION_STRING='InstrumentationKey=...' \
             ApplicationInsightsAgent_EXTENSION_VERSION='~3'

Application Map

Application Mapは、アプリケーションのコンポーネントとその依存関係を視覚化したトポロジです。各ノードは、コンポーネント(アプリ、下流 API、データベース、Azure サービスなど)を表し、エッジは平均応答時間、要求率、失敗率が付加された呼び出し関係を示します。任意のノードまたはエッジをクリックすると、個々の要求トレースを詳しく調査し、遅延や失敗の発生箇所を特定できます。

Live Metrics Stream

Live Metrics Streamでは、アプリケーションのパフォーマンスをサブ秒単位でリアルタイムに、遅延なく確認できます。受信要求率、応答時間、失敗率、CPU 使用率を発生時に監視できるため、ライブ デプロイやインシデント調査で重要な役割を果たします。Live Metrics は、アプリから Application Insights へのセキュリティで保護された送信接続を使用するため、受信ファイアウォール ルールを変更する必要はありません。

分散トレースとエンドツーエンド トランザクション

分散トレースは、共有 operation_Id を使用して複数のサービス間のテレメトリを関連付けます。ユーザー要求がフロントエンド アプリに入ると、Application Insights はトレース コンテキスト ヘッダーを下流サービスに伝播します。End-to-End Transaction Details ビューでは、参加するすべてのサービスのスパンを1つのガント チャート形式のタイムラインにまとめ、マイクロサービス アーキテクチャのどこで時間が費やされているかを正確に示します。

カスタム イベントとメトリック

自動収集されるテレメトリに加えて、SDK を使用してカスタム イベントとカスタム メトリックを追跡できます。trackEvent() を呼び出すと、'CheckoutCompleted' や 'FeatureFlagEnabled' などのビジネス レベルのイベントを記録できます。trackMetric() を呼び出すと、キューの深さやキャッシュ ヒット率など、アプリケーション固有の測定値を記録できます。カスタム テレメトリは同じ Log Analytics テーブルに表示され、プラットフォーム データと同様に KQL でクエリできます。

// Node.js SDK example — tracking a custom event
const appInsights = require('applicationinsights');
appInsights.defaultClient.trackEvent({
  name: 'CheckoutCompleted',
  properties: { userId: '42', plan: 'premium' },
  measurements: { orderValue: 99.99 }
});

Smart Detection と失敗の異常

Smart Detectionは、機械学習を使用してテレメトリを自動的に分析し、失敗率の急激な増加、サーバー応答時間の低下、例外数の異常な増加など、通常とは異なるパターンを検出して通知します。手動で構成するしきい値アラートとは異なり、Smart Detection のルールはアプリケーションの通常の動作に合わせて適応します。アラートはサブスクリプション所有者に送信され、Smart Detection ブレードに表示されます。

可用性テスト

可用性テスト(Web テストとも呼ばれます)は、スケジュールに従って世界各地の複数の Azure リージョンからアプリケーションに合成 HTTP 要求を送信します(最短で1分間隔)。公開エンドポイントが、タイムアウト時間内に想定される HTTP ステータス コードを返すことを確認します。複数の場所で同時にテストが失敗すると、アラートが発生します。これにより、内部インフラストラクチャから独立した外部からの監視を実現できます。

# Create a URL ping availability test via CLI
az monitor app-insights web-test create \
  --name 'HomepagePing' \
  --resource-group myRG \
  --app-component myAppInsightsResource \
  --defined-web-test-kind ping \
  --request-url 'https://myapp.azurewebsites.net/' \
  --locations '[{"Id":"us-ca-sjc-azr"},{"Id":"emea-gb-db3-azr"}]' \
  --frequency 300 \
  --timeout 30

データ量を制御するサンプリング

サンプリングは、統計的な正確性を維持しながら一部のリクエストだけを記録することで、Application Insights に送信されるテレメトリの量を削減します。適応型サンプリングは、目標とする取り込み速度以内に収まるようサンプル率を自動的に調整します。固定レート サンプリングは、固定された割合を適用します。サンプリングされたテレメトリにはフラグが付けられるため、メトリック ビューではカウントやレートの表示時にサンプリング係数が自動的に補正されます。

ユーザーとセッションの分析

Application Insights には、ブラウザーでインストルメント化されたアプリケーション向けの使用状況分析が組み込まれています。Users ブレードにはユニーク ユーザー数が表示され、Sessions ではユーザー ジャーニーを追跡できます。Funnels では複数ステップのフローにおける離脱を可視化し、Retention のグラフでは時間の経過に伴って再訪するユーザー数を表示します。これらのツールは、運用監視と併せてコンバージョン率やユーザー エンゲージメントを最適化するプロダクト チームに特に役立ちます。

Application Insights と Log Analytics のテーブル

Application Insights のデータは、Log Analytics ワークスペース内の専用テーブル requests、exceptions、dependencies、traces、pageViews、customEvents、customMetrics に格納されます。Application Insights をワークスペース ベース モード(新しいリソースの既定値)で構成すると、これらのテーブルをワークスペース内の他のデータと結合できます。たとえば、アプリケーションの例外と、AzureActivity に記録された Key Vault へのアクセス拒否を関連付けられます。

// KQL — find the top 10 slowest dependencies in the last hour
dependencies
| where timestamp > ago(1h)
| where success == false or duration > 2000
| summarize AvgDuration = avg(duration), FailCount = countif(success==false)
    by name, type
| top 10 by AvgDuration desc

クイック チェック

このレッスンで扱った Microsoft Azure Fundamentals (AZ-900) の概念について、理解度を確認しましょう。

レッスンのまとめ

このレッスンでは、次のことを学びました。Application Insights は、リクエスト レート、失敗、依存関係に関する APM レベルのテレメトリを提供します。Application Map と分散トレーシングは、マイクロサービスのトポロジをエンドツーエンドで可視化します。また、可用性テストは、世界各地の複数の場所からパブリック エンドポイントを検証します。次は、チームと運用状況の可視性を共有するための Azure Dashboards と Workbooks について学びます。

よくある質問

「Application Insights」レッスンは無料ですか?

はい。「Application Insights」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。

「Application Insights」で何を学びますか?

Application Insights SDK で Web アプリケーションを計測し、アプリケーション マップを確認して、Live Metrics Stream で問題をリアルタイムに診断します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cloud & IT Cert Prepを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「Application Insights」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?

はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Azure Monitor のメトリックとアラート
  2. Log Analytics と KQL の基礎
  3. Application Insights
  4. Azure Dashboards と Workbooks
← Cloud & IT Cert Prepに戻る