Как сообщить Application Insights игнорировать 404 ответа

ApplicationInsights недавно начал рассылать мне еженедельный отчет о телеметрии. Моя проблема в том, что он говорит мне, что у меня есть куча неудачных запросов, неудачных зависимостей и исключений, но когда я нажимаю, чтобы анализировать сбои, я вижу, что все они связаны с попытками ботов или Bad Guys получить доступ к несуществующим страницам в мой сайт.

Есть ли простой способ сказать ApplicationInsights, что меня не интересуют показатели, связанные с попытками доступа к несуществующим страницам? Да, я ценю Еженедельный отчет о телеметрии, но я не хочу тратить время на изучение категории часто сообщаемых проблем, которые я считаю "ложными срабатываниями".

Ответ 1

Вы можете фильтровать телеметрию искусственного интеллекта, используя Telemetry Processor. Например, вы можете отфильтровать телеметрию 404 Not Found, применяя метод ITelemetryProcessor "Process" следующим образом:

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

    if (requestTelemetry != null && int.Parse(requestTelemetry.ResponseCode) == (int)HttpStatusCode.NotFound)
    {
        return;
    }

    this.Next.Process(item);
}

Ответ 2

Вы можете изменить запрос телеметрии и пометить его как Success (не Fail). Таким образом, запрос будет правильно зарегистрирован AI, но как успешный. Вам необходимо реализовать инициализатор телеметрии.

Пример:

public class CustomTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        switch (telemetry)
        {
            case RequestTelemetry request when request.ResponseCode == "409":
                request.Success = true;
                break;
        }
    }
}