MS_ApplicationInsights - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

Application Insights

概要

Azure Monitor の
**高機能アプリ監視ツール(Deep Application Monitoring)**にあたる機能。

補足(原文は見出しのみのため、要点を補う): 本ページは元 Wiki では
見出しだけが用意された状態だった。
ここでは Azureの監視と管理 における位置づけ
(「業務は成立しているか」を見るアプリ層の監視)に沿って要点を補う。

詳細

何を見るものか

Azure Monitor の他の機能が
インフラの状態(CPU、ディスク、ネットワーク)を見るのに対し、
Application Insights はアプリケーションの中の出来事を見る。

層 問い 主な手段
インフラ層 サーバは生きているか Metrics、VM Insights
プラットフォーム層 サービスは正常か リソース ログ、Service Health
アプリ層 業務は成立しているか Application Insights

「VM の CPU は正常なのに、注文が通らない」という状況を
検知できるのはアプリ層の監視だけである、というのが存在意義。

主な機能

機能 内容
要求 / 依存関係の追跡 HTTP 要求と、そこから呼ばれた SQL・HTTP・キューの所要時間を自動記録
例外の収集 未処理例外をスタック トレース付きで収集
ライブ メトリック ほぼ遅延なしで要求数・失敗数・CPU を表示(リリース直後の確認に有効)
アプリケーション マップ 依存関係を図で可視化し、遅延・失敗の発生箇所を特定
トランザクション検索 / エンドツーエンド追跡 1 件の要求を、関連するサービス横断で追跡
可用性テスト 外形監視(外部から定期的に URL を叩く)
使用状況分析 ユーザー数、セッション、ファネル、リテンション

導入方法

方式 内容
自動計装(コードレス) App Service / AKS / VM で拡張機能として有効化。アプリの改修が不要
SDK による計装 アプリに SDK を組み込む。カスタム イベント・メトリックを送れる
OpenTelemetry 現在の推奨。ベンダ中立な計装で、送信先として Application Insights を指定する

補足(OpenTelemetry への移行): 従来の Application Insights SDK は
保守モードに入っており、新規開発では
Azure Monitor OpenTelemetry Distro の利用が推奨されている。
OpenTelemetry で計装しておけば、
将来監視基盤を差し替える場合もアプリ側の改修を避けやすい。

ワークスペース ベースへの統合

かつては Application Insights が独自にデータを保持していたが、
現在は Log Analytics ワークスペースに格納される
(ワークスペース ベース)方式に統合されている。
クラシック リソースは既に廃止済み。

これにより、

  • アプリのテレメトリと、インフラのログを同じ KQL で横断的に結合できる、
  • 保持期間・アクセス制御・課金がワークスペースの設定に一元化される、

という利点が得られる。

費用と注意点

課金は取り込んだデータ量による。
そのため、次の 2 点が実務上の要点になる。

  • サンプリング
    既定で適応型サンプリングが有効。
    「件数」は補正されるが、個々の要求が必ず記録されるとは限らないため、
    監査目的のログを Application Insights に依存させてはならない。

  • 個人情報の混入
    要求 URL やカスタム プロパティに個人情報が入り込みやすい。
    テレメトリ プロセッサでのマスキングを検討すること。

参考

Microsoft Learn


Tags: 移行, インフラストラクチャ, クラウド, セキュリティ, Azure

⚠️ **GitHub.com Fallback** ⚠️