Azure Application Insights 将响应代码零标记为成功
Azure Application Insights is marking response code zero as success
最近我们遇到了一个问题,即我们的服务器由于巨大的流量激增而超时,并且这些请求遥测被成功登录到 AI 中,响应代码为零。有什么方法可以将响应代码零配置为失败。由于请求遥测是由 AI 自动捕获的,因此我们对此没有任何处理
您可以在您的 .NET 核心项目中使用 ITelemetryInitializer。
当响应码为零时称为失败,您可以将请求遥测数据的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 portal -> your application insights -> Logs 中,可以看到请求的 Success 属性 为 false:
最近我们遇到了一个问题,即我们的服务器由于巨大的流量激增而超时,并且这些请求遥测被成功登录到 AI 中,响应代码为零。有什么方法可以将响应代码零配置为失败。由于请求遥测是由 AI 自动捕获的,因此我们对此没有任何处理
您可以在您的 .NET 核心项目中使用 ITelemetryInitializer。
当响应码为零时称为失败,您可以将请求遥测数据的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 portal -> your application insights -> Logs 中,可以看到请求的 Success 属性 为 false: