web-dev-qa-db-ja.com

ASP.NETCoreライブラリを使用したApplicationInsightsサンプリングを無効にする

これを分析に使用するため、すべてのテレメトリを保持する必要があります。

この記事 によると、次のAnalyticsクエリを実行して、サンプリングの速度を決定できます。

requests 
 | where timestamp > ago(1d)
 | summarize 100/avg(itemCount) by bin(timestamp, 1h) 
 | render areachart 

結果は、特に10個に1個のアイテムしか保持されていない日中に、かなりのサンプリングが行われていることを示しています。

Sampling

私を混乱させているのは、Azure Portalがサンプリングが100%に設定されていることを示していることです。

Azure Portal Insights

おそらく、これは摂取サンプリングのみを反映していますか?適応サンプリングがサーバー上でまだ発生している可能性があります。

Application Insights用のASP.NETCoreライブラリを使用してサンプリングを完全に無効にするにはどうすればよいですか?(つまり、Microsoft.ApplicationInsights.AspNetCore 1.0.2)

現在、これは私が見つけることができる唯一の構成であり、サンプリングには何もありません:

var appInsightsConfiguration = new ConfigurationBuilder()
    .AddApplicationInsightsSettings(
        developerMode: false,
        instrumentationKey: Configuration["ApplicationInsights:InstrumentationKey"])
    .Build();

services.AddApplicationInsightsTelemetry(appInsightsConfiguration);
14
Dave New

ApplicationInsightsServiceOptions クラスを使用して、サンプリングを無効にできます。

使用例:

var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;

services.AddApplicationInsightsTelemetry(Configuration, aiOptions);

サンプリングの詳細については、 Application Insights ASP.NET Core Githubドキュメントページ を参照してください。

お役に立てれば、

アサフ

8
Asaf Strassberg