我有一个带有OpenID Connect登录名和基准App Insights安装的.net核心2.2 Web应用程序。我可以通过在登录页面上等待15分钟然后提交来生成错误。但是,我不希望这些出现在应用程序见解中,因为我们会根据错误数量发出警报。如何通过阻止应用程序发送或使应用程序洞察力忽略掉“ signin-oidc”中的这些错误?
答案 0 :(得分:0)
您可以使用ITelemetryProcessor放弃不需要的消息。
首先,您需要使用Visual Studio检查错误的唯一属性(来自“ signin-oidc”),如下所示(例如,这是一条跟踪消息):
然后创建一个实现ITelemetryProcessor的自定义类。请记住,使用唯一属性或属性组合来过滤掉不需要的消息。如下代码:
namespace WebApplication1netcore4
{
public class MyTelemetryProcessor : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
public MyTelemetryProcessor(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry telemetry)
{
ExceptionTelemetry err1= telemetry as ExceptionTelemetry;
// you can also use combinations of properties by using && or || operator
if (err1!= null && err1.Context.Properties.Keys.Contains("the unique property of that error"))
{
if (err1.Context.Properties["unique property"] == "the property value")
{
//return means abandon this error message which has the specified property value
return;
}
}
if (err1 == null)
{
this.Next.Process(telemetry);
}
if (err1 != null)
{
this.Next.Process(err1);
}
}
}
}
然后在Startup.cs-> ConfigureServices()方法中,添加以下代码:
services.AddApplicationInsightsTelemetry();
services.AddApplicationInsightsTelemetryProcessor<MyTelemetryProcessor>();