2017-06-13 81 views
0

我在我的Web应用程序上配置了Application Insights,但是遥测器充满了来自SingalR的'失败'请求,这使得发现真正的问题变得困难(参见下面的截图)。我想过滤掉所有的SignalR请求,而不是将它们发送给AI。过滤来自ApplicationInsight的SignalR请求

AI SignalR

我创建了一个遥测处理器(见下面的代码基于on this example from MS)和ApplicationInsights.config文件中注册它,这个本地工作调试时如预期,并防止然而,它发送的任何SignalR事件一旦Web应用程序发布并在IIS中运行,似乎没有任何影响。

public class SignalRFilter : ITelemetryProcessor 
{ 
    private ITelemetryProcessor Next { get; set; } 

    public SignalRFilter(ITelemetryProcessor next) 
    { 
     this.Next = next; 
    } 

    public void Process(ITelemetry item) 
    { 
     if (!OKtoSend(item)) 
      return; 
     else 
      this.Next.Process(item); 
    } 

    private bool OKtoSend(ITelemetry item) 
    { 
     if (item is RequestTelemetry && ((RequestTelemetry)item).Url.AbsolutePath.Contains("signalr")) 
      return false; 
     else 
      return true; 
    } 
} 

有什么建议吗?

+0

难道在服务器上的路径是不同的或套管(例如SignalR)。代码对我来说看起来不错。 –

+0

这是我检查的第一件事,我刚刚重新检查了所有内容,并且看不到开发环境和发布内容之间的任何差异。一旦发布,它永远不会碰到过滤器。我会尝试创建一个引发异常的过滤器,看看它是否被触发。 –

回答

0

您正在查看Live Metrics Stream中的这些请求。对于这个特定的视图,你可以按需过滤它们。功能可用于最新的2.4-beta版本(稳定版本即将发布)。在这种情况下,您可以单击“过滤器”按钮并为每个流添加适当的过滤器。存在图表类似的行为:

enter image description here

你检查你是否看到/ signair /开始在你的应用洞察分析?这可能是您成功过滤出来的情况,它们只在实时查看中显示。