Azure понимание приложения - исключить пользовательское событие из выборки - PullRequest
0 голосов
/ 04 мая 2020

У меня есть. NET Базовое веб-приложение, которое отправляет некоторые пользовательские телеметрии событий в Application Insights. Настраиваемые события отправляются с использованием клиента телеметрии, например, так:

  telemetryClient.TrackEvent(Names.FileDownload, new Dictionary<string, string>()
            {
                {PropertyKeys.ProjectName, project.ProjectName},
                {PropertyKeys.ProjectUri, project.ProjectUri},
                {PropertyKeys.IsLocal, isLocal.ToString() },
                {PropertyKeys.FileSize, fileSize?.ToString() },
            });

Большинство событий данных происходят в огромных количествах, и я не волнуюсь обо всех из них, поэтому я настроил выборка до 50%.

Однако у меня есть одно или два события, которые происходят очень редко, и для тех, кому я хочу, чтобы каждое вхождение отслеживалось.

При включенной выборке я вижу, что это крайне важно Событие почти никогда не сохраняется. Когда я отключаю выборку, она начинает работать.

Можно ли каким-то образом исключить определенные элементы телеметрии из фильтрации выборки?

С уважением,
Bartosz

1 Ответ

1 голос
/ 05 мая 2020

Да, это возможно. Вы можете написать пользовательский TelemetryInitializer , который устанавливает SamplingPercentage на 100 для элемента телеметрии, который вы хотите сохранить.

Вот пример кода:

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        #write your own logic for somecondition
        if(somecondition)
        {
            ((ISupportSampling)telemetry).SamplingPercentage = 100;
        }
    }
}

Для получения более подробной информации, пожалуйста, обратитесь к этой статье в разделе «Есть некоторые редкие события, которые я всегда хочу видеть. Как я могу пройти их через модуль выборки?».

...