Azure アプリlication Insights エージェント (以前の Status Monitor v2) のトラブルシューティング
この記事では、Microsoft Azure アプリlication Insights の監視が有効になっているときに発生する可能性があるデータ収集の問題を解決するのに役立つトラブルシューティング情報を提供します。
既知の問題
bin フォルダー内の DLL の競合
これらのダイナミック リンク ライブラリ (DLL) のいずれかがアプリの bin フォルダーに存在する場合、監視が失敗する可能性があります。
- Microsoft.ApplicationInsights.dll
- Microsoft.AspNet.TelemetryCorrelation.dll
- System.Diagnostics.DiagnosticSource.dll
これらの DLL の一部は、アプリで使用されていない場合でも、Visual Studio の既定のアプリ テンプレートに含まれています。 次のツールなどのトラブルシューティング ツールを使用して、症状の動作を確認できます。
PerfView:
ThreadID="7,500" ProcessorNumber="0" msg="Found 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' assembly, skipping attaching redfield binaries" ExtVer="2.8.13.5972" SubscriptionId="" AppName="" FormattedMessage="Found 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' assembly, skipping attaching redfield binaries"
IISReset とアプリの読み込み (テレメトリなし)。 Sysinternals (Handle.exe と ListDLLs.exe) を使用して調査します。
.\handle64.exe -p w3wp | findstr /I "InstrumentationEngine AI. ApplicationInsights" E54: File (R-D) C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Runtime\Microsoft.ApplicationInsights.RedfieldIISModule.dll .\Listdlls64.exe w3wp | findstr /I "InstrumentationEngine AI ApplicationInsights" 0x0000000009be0000 0x127000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\MicrosoftInstrumentationEngine_x64.dll 0x0000000009b90000 0x4f000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.ExtensionsHost_x64.dll 0x0000000004d20000 0xb2000 C:\Program Files\WindowsPowerShell\Modules\Az.ApplicationMonitor\content\Instrumentation64\Microsoft.ApplicationInsights.Extensions.Base_x64.dll
PowerShell のバージョン
この製品は、PowerShell バージョン 5.1 を使用して作成およびテストされました。 このモジュールは、PowerShell バージョン 6 または 7 との互換性がありません。 新しいバージョンと共に PowerShell 5.1 を使用することをお勧めします。 詳細については、「 PowerShell 5.1 での PowerShell 7 の並列使用を参照してください。
IIS 共有構成での競合
Web サーバーのクラスターがある場合、共有構成を使っている可能性があります。 HTTP モジュールをこの共有構成に挿入することはできません。 各 Web サーバーで Enable コマンドを実行して、DLL を各サーバーのグローバル アセンブリ キャッシュ (GAC) にインストールします。
Enable コマンドを実行した後、次の手順に従います。
共有構成ディレクトリに移動し、 ApplicationHost.config ファイルを見つけます。
構成の <modules> セクションに次の XML コードを追加します。
<modules> <!-- Registered global managed http module handler. The 'Microsoft.AppInsights.IIS. ManagedHttpModuleHelper.dll' must be installed in the GAC before this config is applied. --> <add name="ManagedHttpModuleHelper" type="Microsoft.AppInsights.IIS.ManagedHttpModuleHelper. ManagedHttpModuleHelper, Microsoft.AppInsights.IIS.ManagedHttpModuleHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> </modules>
IIS の入れ子になったアプリケーション
Application Insights エージェントのバージョン 1.0 では、入れ子になったアプリケーションは インターネット インフォメーション サービス (IIS) にインストルメント化されません。
IIS クラシック パイプライン モード
クラシック パイプライン モードを使用するように構成されている場合、アプリケーション プールでホストされているアプリケーションはインストルメント化されません。
高度な SDK 構成は使用できません
バージョン 1.0 では SDK 構成はエンド ユーザーに公開されていません。
PowerShell のトラブルシューティング
使用できるモジュールを特定する
インストールされているモジュールを確認するには、 Get-Module -ListAvailable
コマンドレットを実行します。
現在のセッションにモジュールをインポートする
モジュールが PowerShell セッションに読み込まれていない場合は、 Import-Module <path-to-psd1>
コマンドレットを実行して手動で読み込むことができます。
Application Insights エージェント モジュールのトラブルシューティング
Application Insights エージェント モジュールで使用できるコマンドレットを一覧表示する
Application Insights エージェント モジュールで使用できるコマンドレットを表示するには、 Get-Command -Module Az.ApplicationMonitor
コマンドレットを実行します。
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Disable-ApplicationInsightsMonitoring 0.4.0 Az.ApplicationMonitor
Cmdlet Disable-InstrumentationEngine 0.4.0 Az.ApplicationMonitor
Cmdlet Enable-ApplicationInsightsMonitoring 0.4.0 Az.ApplicationMonitor
Cmdlet Enable-InstrumentationEngine 0.4.0 Az.ApplicationMonitor
Cmdlet Get-ApplicationInsightsMonitoringConfig 0.4.0 Az.ApplicationMonitor
Cmdlet Get-ApplicationInsightsMonitoringStatus 0.4.0 Az.ApplicationMonitor
Cmdlet Set-ApplicationInsightsMonitoringConfig 0.4.0 Az.ApplicationMonitor
Cmdlet Start-ApplicationInsightsMonitoringTrace 0.4.0 Az.ApplicationMonitor
Application Insights Agent モジュールの現在のバージョンを確認する
Get-ApplicationInsightsMonitoringStatus -PowerShellModule
コマンドレットを実行して、モジュールに関する次の情報を表示します。
- PowerShell モジュールのバージョン
- Application Insights SDK のバージョン
- PowerShell モジュールのファイル パス
このコマンドレットの使用方法の詳細については、 Get-ApplicationInsightsMonitoringStatus リファレンス を参照してください。
実行中のプロセスのトラブルシューティング
インストルメント化されたコンピューター上のプロセスを調べて、すべての DLL が読み込まれ、環境変数が設定されているかどうかを判断できます。 監視が機能している場合は、少なくとも 12 個の DLL が読み込まれる必要があります。
Get-ApplicationInsightsMonitoringStatus -InspectProcess
コマンドレットを実行して DLL を確認します。(Get-Process -id <process-identifier>).StartInfo.EnvironmentVariables
コマンドレットを実行して環境変数を確認します。 ワーカー プロセスまたは .NET Core プロセスでは、次の環境変数が設定されます。
COR_ENABLE_PROFILING=1
COR_PROFILER={324F817A-7420-4E6D-B3C1-143FBED6D855}
COR_PROFILER_PATH_32=<path-to-MicrosoftInstrumentationEngine_x86.dll>
COR_PROFILER_PATH_64=<path-to-MicrosoftInstrumentationEngine_x64.dll>
MicrosoftInstrumentationEngine_Host={CA487940-57D2-10BF-11B2-A3AD5A13CBC0}
MicrosoftInstrumentationEngine_HostPath_32=<path-to-Microsoft.ApplicationInsights.ExtensionsHost_x86.dll>
MicrosoftInstrumentationEngine_HostPath_64=<path-to-Microsoft.ApplicationInsights.ExtensionsHost_x64.dll>
MicrosoftInstrumentationEngine_ConfigPath32_Private=<path-to-Microsoft.InstrumentationEngine.Extensions.config>
MicrosoftInstrumentationEngine_ConfigPath64_Private=<path-to-Microsoft.InstrumentationEngine.Extensions.config>
MicrosoftAppInsights_ManagedHttpModulePath=<path-to-Microsoft.ApplicationInsights.RedfieldIISModule.dll>
MicrosoftAppInsights_ManagedHttpModuleType=Microsoft.ApplicationInsights.RedfieldIISModule.RedfieldIISModule
ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=Microsoft.ApplicationInsights.StartupBootstrapper
DOTNET_STARTUP_HOOKS=<path-to-Microsoft.ApplicationInsights.StartupHook.dll>
このコマンドレットの使用方法の詳細については、 Get-ApplicationInsightsMonitoringStatus リファレンス を参照してください。
PerfView を使用して ETW ログを収集する
セットアップ
GitHub からPerfView.exeをダウンロードします。
PerfView.exeを実行します。
メニュー バーで、 Collect>Collect を選択します。
[詳細オプション] を展開します。
次のチェック ボックスをオフにします。
- [Zip]
- 結合
- [.NET Symbol Collection]
次の 追加プロバイダーを設定します。
*Microsoft-ApplicationInsights-AspNetCore,*Microsoft-ApplicationInsights-AspNetCore-AiHostingStartup,*Microsoft-ApplicationInsights-AspNetCore-StartupBootstrapper,*Microsoft-ApplicationInsights-AspNetCore-StartupHook,*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Data,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Microsoft-ApplicationInsights-Extensibility-HostingStartup,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-FrameworkLightup,*Microsoft-ApplicationInsights-IIS-ManagedHttpModuleHelper,*Microsoft-ApplicationInsights-Java-IPA,*Microsoft-ApplicationInsights-LoggerProvider,*Microsoft-ApplicationInsights-Nodejs-IPA,*Microsoft-ApplicationInsights-RedfieldIISModule,*Microsoft-ApplicationInsights-SnapshotCollectorLightup,*Microsoft-ApplicationInsights-WindowsServer-Core,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Redfield-Microsoft-ApplicationInsights-AspNetCore,*Redfield-Microsoft-ApplicationInsights-Core,*Redfield-Microsoft-ApplicationInsights-Data,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Redfield-Microsoft-ApplicationInsights-Extensibility-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Redfield-Microsoft-ApplicationInsights-LoggerProvider,*Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel
ログの収集
管理コマンド プロンプトで、
iisreset /stop
コマンドを実行して、IIS とすべての Web アプリをオフにします。PerfView で、[Start Collection]\(収集の開始\) を選択します。
管理コマンド プロンプトで、
iisreset /start
コマンドを実行して IIS を起動します。アプリの参照を試みます。
アプリが読み込まれたら、PerfView に戻り、 Stop Collection を選択します。
次のステップ
- API リファレンスを確認して、見逃した可能性があるパラメーターについて学習します。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。