Настройка адаптивной выборки, не отраженная на портале Azure

Я настраиваю адаптивную выборку Azure App Insight в своем файле appsettings.json на основе этой статьи. https://learn.microsoft.com/en-us/azure/azure-monitor/app/sampling-classic-api#configuring-adaptive-sampling-for-aspnet-applications

Мой appsettings.json:

  "ApplicationInsightsSamplingSettings": {
    "InitialSamplingPercentage": 60.0,
    "MinSamplingPercentage": 0.01,
    "MaxSamplingPercentage": 60.0,
    "MaxTelemetryItemsPerSecond": 5
  },

Я знаю, что выборка включена, потому что я могу запросить журналы App Insight с помощью sum(itemCount), и это показывает более высокое значение, чем при использовании count().

dependencies
| summarize count() //sampled

dependencies
| summarize sum(itemCount) //Not sampled and will result in a higher number.

Так почему же портал Azure не отражает проценты моей выборки? Несмотря ни на что, выборка данных в разделе App Insights >> Использование и расчетные затраты >> Выборка данных всегда возвращает 100%.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
180
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда адаптивная выборка включена, она автоматически устанавливает процент выборки в Application Inisights=>Data Sampling.

По моим наблюдениям, InitialSamplingPercentage не отражается в Portal=>Application Insights=>Data Sampling, и процент выборки данных автоматически назначается в соответствии с выбранными данными.

Чтобы настроить InitialSamplingPercentage вручную, отключите адаптивную выборку, добавив настройку:

{
"EnableAdaptiveSampling":false
}

Я протестировал то же самое с ASP.NET и ядром ASP.NET в своей среде, чтобы проверить, отражается ли процент выборки, настроенный вручную, на портале, но InitialSamplingPercentage не влияет на процент выборки данных на портале.

ASP.NET core:

  • Используется приведенный ниже код для ручной настройки параметров в ядре ASP.NET. См. SO решение @Anarion.
var aiOptions = new ApplicationInsightsServiceOptions
{
    EnableAdaptiveSampling = false,
    EnableQuickPulseMetricStream = false,
};
builder.Services.AddApplicationInsightsTelemetry(aiOptions);

builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
    var telemetryProcessorChainBuilder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    telemetryProcessorChainBuilder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 5);
    telemetryProcessorChainBuilder.UseAdaptiveSampling(new SamplingPercentageEstimatorSettings
{
     MaxSamplingPercentage=50,
     MinSamplingPercentage=0.1,
     InitialSamplingPercentage=0.1
    }, null, excludedTypes: ""); 
    telemetryProcessorChainBuilder.Build();
});

ASP.NET:

<TelemetryProcessors>
  <Add Type = "Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" />
  <Add Type = "Microsoft.ApplicationInsights.Extensibility.AutocollectedMetricsExtractor, Microsoft.ApplicationInsights" />
  <Add Type = "Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
    <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
    <ExcludedTypes>Event</ExcludedTypes>
    <InitialSamplingPercentage>0.1</InitialSamplingPercentage>
  </Add>
  <Add Type = "Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
    <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
    <IncludedTypes>Event</IncludedTypes>
    <InitialSamplingPercentage>0.1</InitialSamplingPercentage>
  </Add>
</TelemetryProcessors>
  • Запустите приведенный ниже запрос Kusto, чтобы проверить процент выборки запросов:

запросы объединения, зависимости, просмотры страниц, тайминги браузера, исключения, трассировки
| где временная метка > назад (1 день)
| суммировать RetainedPercentage = 100/avg(itemCount) по bin(timestamp, 1h), itemType

Как упоминалось на предоставленном вами снимке экрана, если мы включаем выборку вручную с помощью кода или если включена адаптивная выборка, эти настройки применяются независимо от процента выборки, назначенного на портале.

Использованная литература:

Конфигурация выборки Azure Application Insight | от Чхави Гоэль

Благодарим за подтверждение того, что изменения кода не отражаются на портале. Однако это очень сбивает с толку, если кто-то не знал, что код/конфигурация изменила частоту дискретизации. Это нужно исправить.

duyn9uyen 06.03.2024 22:15

Другие вопросы по теме