azure - Azure App Insights 智能警报的自定义排除项
问题描述
我们在 Azure App Insights 中使用智能检测器来在我们的应用程序出现异常时生成一些警报。但是,我们的代码中存在一些故意的故障,我们抛出 403。有没有办法在 Application Insights 中修改这些“智能警报”,以便在其检测逻辑中排除这些已知故障?我们有一个与这些预期故障相关的特定异常类型,如果有办法,我们可以很容易地在异常检测中使用它来排除这些故障,但我在 UI 上找不到执行此操作的选项。
感谢您的任何指示。
解决方案
您不能直接从 Azure 门户执行此操作,但您需要实现一个遥测处理器,它可以帮助您覆盖遥测属性集。
如果请求标志为失败且响应代码 = 403。但如果您想将其视为成功,您可以提供设置成功属性的遥测初始化程序。
定义你的初始化器
C#
using System;
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
namespace MvcWebRole.Telemetry
{
/*
* Custom TelemetryInitializer that overrides the default SDK
* behavior of treating response codes >= 400 as failed requests
*
*/
public class MyTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
var requestTelemetry = telemetry as RequestTelemetry;
// Is this a TrackRequest() ?
if (requestTelemetry == null) return;
int code;
bool parsed = Int32.TryParse(requestTelemetry.ResponseCode, out code);
if (!parsed) return;
if (code >= 400 && code < 500)
{
// If we set the Success property, the SDK won't change it:
requestTelemetry.Success = true;
// Allow us to filter these requests in the portal:
requestTelemetry.Properties["Overridden400s"] = "true";
}
// else leave the SDK to set the Success property
}
}
}
在 ApplicationInsights.config 中:
XML复制
<ApplicationInsights>
<TelemetryInitializers>
<!-- Fully qualified type name, assembly name: -->
<Add Type="MvcWebRole.Telemetry.MyTelemetryInitializer, MvcWebRole"/>
...
</TelemetryInitializers>
</ApplicationInsights>
更多信息,您可以参考本文档。
推荐阅读
- angular - 这个箭头函数体可以通过省略花括号和关键字'return'来简化。tslint(arrow-return-shorthand)
- java - 如何使用junit和mockito测试spring资源文件
- java - 为什么在 Maven 错误“java:找不到符号”中?
- exception - 类成员函数之间的异常处理
- html - 如何在 Chrome 中更改 webkit-progress-value 的颜色?
- python - Python pandas - 基于纬度、经度的距离聚合列
- python - 将 GCS csv 压缩桶中的数据分批输入到 tensorflow 模型中
- flutter - VSCode 未在 Dart 代码中显示函数参数列表
- android - 如何在两种颜色之间生成n种颜色android
- ios - 我无法从命令行验证我的 ipa,但它可以从 xcode 工作