Не записывайте телеметрию для статических файлов в приложении Insights - PullRequest
0 голосов
/ 18 июня 2019

Я регистрирую телеметрию в Application Insights для веб-приложения .NET Framework 4.7.2, работающего в службе приложений Azure.

Большая часть телеметрии исходит от статических файловых запросов, таких как файлы .js и .css, и мне не интересна. Поскольку это связано с затратами на хранение, было бы лучше вообще не регистрировать их.

Одной из идей в отношении решения является фильтрация элементов ITelemetry в классе, реализующем интерфейс ITelemetryProcessor, на основе URL-адреса запроса.

public void Process(ITelemetry item)
{
    if (item is RequestTelemetry request && request.Url.AbsolutePath.EndsWith(".js", StringComparison.OrdinalIgnoreCase))
    {
        return;
    }

    this.Next.Process(item);
}

Я подозреваю, что могут быть более надежные / более эффективные способы достижения того, чего я хочу. Кто-нибудь?

1 Ответ

1 голос
/ 19 июня 2019

Вы можете попробовать отключить обработку статических файлов через управляемые обработчики в web.config:

<modules runAllManagedModulesForAllRequests="true"> ... в сочетании с preCondition="managedHandler" на AI-модуле.

Это гарантирует, что модуль AI не обрабатывает запросы к статическим файлам. Если это не помогло, лучше всего использовать процессор телеметрии, как вы предложили.

...