azure - Azure Application Insights 将响应代码零标记为成功
问题描述
最近我们遇到了一个问题,我们的服务器由于巨大的流量激增而超时,并且这些请求遥测作为成功登录到 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 门户 -> 您的应用程序洞察 -> 日志中,您可以看到请求的 Success 属性为 false:
推荐阅读
- arrays - 我希望我可以循环播放这组视频和图像,我该怎么做?
- javascript - Javascript 返回 [object 对象]
- pine-script - 根据 MA 方向/颜色更改单个条形颜色
- html - 用于在 HTML 中生成列表的 XSLT 通用模板
- bison - 野牛是否允许多个输入文件?
- matlab - 如何在 Matlab GUI 中移动具有相同按钮的形状以及当弹丸击中形状时如何计算得分?
- laravel - Mailgun 没有在我的实时应用程序上发送邮件
- c# - 我如何运行 c# wpf pre Filled form 并使用 selenium 自动将数据插入 Web 表单
- c# - JWT Web 令牌授权验证不提供声明数据
- android - 如何尝试使用动态跨度计数在 GridLayoutManager 中拖放项目