Azure Application Insights отмечает нулевой код ответа как успешный - PullRequest
1 голос
/ 29 февраля 2020

Недавно мы столкнулись с проблемой, когда время ожидания наших серверов из-за огромного увеличения трафика c, и эти телеметрии запросов были зарегистрированы в AI как успешные с нулевым кодом ответа. Есть ли способ настроить нулевой код ответа, который можно назвать отказом. Поскольку запрос телеметрии автоматически захватывается AI, поэтому мы не имеем никакой ручки для этого

1 Ответ

2 голосов
/ 03 марта 2020

Вы можете сделать это, используя ITelemetryInitializer в вашем основном проекте. NET.

Чтобы называться ошибкой, когда код ответа равен нулю, вы можете установить свойство Success данных телеметрии запроса как false. Пример кода приведен ниже (для этого теста используется NET core 2.2). И, пожалуйста, убедитесь, что вы используете последнюю версию Microsoft.ApplicationInsights.AspNetCore 2.13.1.

Вот пользовательский ITelemetryInitializer:

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        if (telemetry is RequestTelemetry)
        {
            var requestTelemetry = telemetry as RequestTelemetry;

            //you can change the ResponseCode to "0" in your project
            if (requestTelemetry.ResponseCode == "200")
            {
                // set Success property to false
                requestTelemetry.Success = false;
            }
        }
    }
}

, затем зарегистрируйтесь в методе Startup.cs -> ConfigureServices:

    public void ConfigureServices(IServiceCollection services)
    {         
        //your other code

        //here, register the custom ITelemetryInitializer
        services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();

    }

После выполнения кода на портале azure -> идеи вашего приложения -> Журналы вы увидите, что свойство Success запроса имеет вид сделано как ложное:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...