application insights best practices
1.0.0
アプリケーションの洞察を使用するために、さまざまなベストプラクティスを収集しようとしました。 ASP .NET MVCおよびWeb APIプロジェクトから始めて、コミュニティとアプリケーションInsightsチームから収集されたさまざまな提案を含みます。
.NET Web APIプロジェクトにアプリケーションの洞察を含めることはかなり簡単な作業であり、Visual Studio 2015以降、新しいプロジェクトテンプレートのチェックボックスをチェックするか、各Webプロジェクトのドロップダウンメニューを介して簡単です。また、Microsoft.ApplicationInsights.Web Nugetパッケージと他の6つの依存関係を追加して追加することもできます。また、アプリケーションの洞察は、VS15とVS17の一部であるアプリケーションInsights拡張機能を介して、オンボーディングの進捗を追跡するのにも役立ちます。ただし、AIエクスペリエンスを最大化するには、まだ必要な作業が必要かもしれません。
アプリケーションの洞察の重要な機能の1つは、同じ操作のすべてのテレメトリを表示することです。これは、Web APIアクションでは、各カスタムイベント、依存関係、例外、トレースがすべてリクエストにリンクする必要があることを意味します。残念ながら、これはいくつかの非同期シナリオではうまくいきません。少しテストした後、2つのシナリオで相関が失敗したことがわかりました。
asychronous依存関係の呼び出し(httpclient、sql呼び出しなど)
await ( new HttpClient ( ) ) . GetAsync ( "http://www.github.com" ) ;背景スレッドにログインしたテレメトリ(カスタムイベント、例外など)
Task . Run ( async ( ) =>
{
telemetryClient . TrackEvent ( "SampleCustomEventOnBackgroundThread" ) ;
telemetryClient . TrackException ( new System . InvalidOperationException ( "Background Thread Exception" ) ) ;
} ) ;