Signalr 筛选来自ApplicationInsight的信号器请求

Signalr 筛选来自ApplicationInsight的信号器请求,signalr,azure-application-insights,Signalr,Azure Application Insights,我已经在我的web应用程序上配置了应用程序洞察,但是遥测充满了来自SingalR的“失败”请求,这使得发现真正的问题变得困难(见下面的屏幕截图)。我想过滤掉所有信号器请求,而不是将它们发送给AI 我已经创建了一个遥测处理器(请参见下面的代码),并将其注册到ApplicationInsights.config文件中,这在本地调试时可以正常工作,并防止发送任何信号器事件,但一旦web应用程序在IIS中发布并运行,它似乎不会产生任何效果 public class SignalRFilter : IT

我已经在我的web应用程序上配置了应用程序洞察,但是遥测充满了来自SingalR的“失败”请求,这使得发现真正的问题变得困难(见下面的屏幕截图)。我想过滤掉所有信号器请求,而不是将它们发送给AI

我已经创建了一个遥测处理器(请参见下面的代码),并将其注册到ApplicationInsights.config文件中,这在本地调试时可以正常工作,并防止发送任何信号器事件,但一旦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;
    }
}

有什么建议吗?

您正在实时度量流中查看这些请求。对于此特定视图,您可以根据需要筛选它们。该功能在最新的2.4-beta版本中可用(稳定版本应该很快发布)。在这种情况下,您可以单击“过滤器”按钮并向每个流添加适当的过滤器。图表也存在类似的行为:


您是否已检查应用程序Insights Analytics中是否显示/signair/start?可能是您成功地过滤了它们,并且它们只显示在实时视图中。

可能是服务器上的路径不同,或者外壳不同(例如,信号器)。代码在我看来还行。这是我检查的第一件事,我刚刚重新检查了所有内容,我看不到开发环境和发布内容之间有任何差异。一旦出版,它似乎从来没有击中过滤器。我将尝试创建一个抛出异常的过滤器,看看是否命中该异常。