Как можно устранить ошибку http 440 в Azure Application Insights - PullRequest
0 голосов
/ 27 июня 2019

Azure Application Insights - потрясающий инструмент, но мы получаем некоторые поддельные ошибки. В частности, по истечении времени ожидания пользователя в нашем веб-приложении приложение выдает ошибку http 440 (я полагаю, что это код MS), срок действия которой истек. Это своего рода ложный позитив, я не хочу ни отслеживать, ни получать оповещения от них.

Есть ли способ подавить это в Application Insights или мне нужно что-то сделать в коде, чтобы сделать это?

Если они не могут быть подавлены, я думаю, я мог бы установить предупреждение, если смогу отфильтровать 440 секунд оттуда.

enter image description here

1 Ответ

3 голосов
/ 28 июня 2019

Вы можете использовать ITelemetryProcessor , чтобы отфильтровать ошибку http 440:

В своем веб-проекте добавьте класс, такой как MyErrorFilter:

    public class MyErrorFilter: ITelemetryProcessor
    {
        private ITelemetryProcessor Next { get; set; }

        public MyErrorFilter(ITelemetryProcessor next)
        {
           this.Next = next;
        }

        public void Process(ITelemetry item)
        {
            var request = item as RequestTelemetry;

            if (request != null &&
            request.ResponseCode.Equals("440", StringComparison.OrdinalIgnoreCase))
            {
                // To filter out an item, just terminate the chain:
                return;
            }
            // Send everything else:
            this.Next.Process(item);
        }
    }

Еслиэто веб-проект фреймворка .net, в файле ApplicationInsights.config добавьте это (введите имя_сборки.class_name):

<TelemetryProcessors>

  <Add Type="WebApplication9.MyErrorFilter, WebApplication9"></Add>
</TelemetryProcessors>

Если это основной веб-проект .net, установите или обновите Microsoft.ApplicationInsights.AspNetCore до 2.7.1, затем в методе Startup.cs -> ConfigureServices добавьте следующую строку кодов:

services.AddApplicationInsightsTelemetry();
services.AddApplicationInsightsTelemetryProcessor<MyErrorFilter>();
...