我们如何停止在ASP.NET MVC(.NET Full,而不是.NET Core)中记录特定模块,例如RequestTrackingTelemetryModule
我尝试删除
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
在 ApplicationInsights.config 中,但它抛出了一个奇怪的异常
我正在将Azure Web App用于登台环境和实时环境。所以我只想停止在实时环境中记录请求信息,因为它花费太多。
感谢您的帮助!
答案 0 :(得分:1)
您可以使用ITelemetryProcessor,并遵循此link。
添加一个实现ITelemetryProcessor的自定义类:
public class MyTelemetryProcessor : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
public MyTelemetryProcessor(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry telemetry)
{
RequestTelemetry request = telemetry as RequestTelemetry;
if (request != null)
{
return;
}
if (request == null)
{
this.Next.Process(telemetry);
}
}
}
然后在ApplicationInsights.config中,添加以下内容:
<TelemetryProcessors>
<Add Type="WebApplicationMVC.MyTelemetryProcessor, WebApplicationMVC">
<!-- Set public property -->
</Add>
</TelemetryProcessors>
屏幕截图:
它确实从应用洞察数据中过滤了所有请求,测试结果如下: