9

Muszę zachować całą telemetrię, ponieważ używamy jej do analizy.Wyłącz próbkowanie danych aplikacji za pomocą bibliotek podstawowych ASP.NET Core

Według this article mogę uruchomić następujące zapytanie Analytics w celu określenia szybkości próbkowania:

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

Wyniki wskazują niektóre mocno pobierania próbek, zwłaszcza w ciągu dnia, gdzie tylko około 1 na 10 pozycji zatrzymanych:

Sampling

Co mnie dezorientuje jest to, że portal Azure insdicates że próbkowania jest ustawiona na 100%:

Azure Portal Insights

Być może odzwierciedla to tylko próbkowanie spozażenia? Próbkowanie adaptacyjne może nadal występować na serwerze.

Jak całkowicie wyłączyć próbkowanie przy użyciu bibliotek podstawowych ASP.NET Core dla analizy aplikacji? (tj Microsoft.ApplicationInsights.AspNetCore 1.0.2)

Obecnie jest to jedyna konfiguracja mogę znaleźć i nie ma nic na próbkowania:

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

services.AddApplicationInsightsTelemetry(appInsightsConfiguration); 
+0

Dla non-ASP.NET aplikacjach takich jak role pracowników, pobieranie próbek może być włączony w ApplicationInsights.config. Miałem tam następujący element: 5 Event Tobias

Odpowiedz

4

można wyłączyć za pomocą próbkowania klasa ApplicationInsightsServiceOptions.

przykładem użycia:

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

services.AddApplicationInsightsTelemetry(Configuration, aiOptions); 

Zobacz więcej szczegółów na temat pobierania próbek w Application Insights ASP.NET Core Github documentation page.

Nadzieja to pomaga,

Asaf