2017-06-13 80 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 /開始在你的應用洞察分析?這可能是您成功過濾出來的情況,它們只在實時查看中顯示。