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** ⚠️