我对Application Insights的遥测配额的很大一部分正在被SignalR(和其他SignalR请求)的ping请求用尽。
如何阻止报告这些请求?我想保留其他ajax请求,但对SignalR请求应用某种(客户端)过滤器。
我还没有找到任何提供简单示例的好文档。我知道我可以使用addTelemetryInitializer
过滤掉一些请求,但我不知道要过滤哪些内容?
appInsights.queue.push(function () {
appInsights.context.addTelemetryInitializer(function (envelope) {
// What should I do here to remove /signalr requests?
});
});
答案 0 :(得分:7)
在您的场景中,我假设您希望过滤由浏览器发出的Ajax远程依赖项调用。要从遥测中过滤我们的服务器端信号器请求,您需要在服务器端实现遥测处理器(https://azure.microsoft.com/en-us/blog/request-filtering-in-application-insights-with-telemetry-processor/)
会是这样的。目前无法验证,因此稍后会修复任何语法错误:
window.appInsights = appInsights;
// Add telemetry initializer
appInsights.queue.push(function () {
appInsights.context.addTelemetryInitializer(function (envelope) {
/* filter our Ajax requests with signalr in url*/
if (envelope.name === Microsoft.ApplicationInsights.Telemetry.RemoteDependencyData.envelopeType && envelope.data.baseData.commandName.indexOf("signalr")>-1){
return false;
}
});
});
// end of insertion
appInsights.trackPageView();
有关JS遥测初始化程序的更多示例,请参阅此处:https://blogs.msdn.microsoft.com/albulank/2016/04/20/modifying-and-filtering-telemetry-with-appinsights-javascript-sdk-telemetry-initializer/