2016-02-12 75 views
5

我最近開始託管我的第一個生產應用程序。我繼續並激活了應用程序洞察力,我認爲這有很大的價值。但是,我從開發者那裏獲得統計信息,例如日誌記錄來自localhost:xxxx的條目。我相信有一種方法可以關閉它。任何人都可以給我一些指點嗎?如何忽略Azure應用程序洞察中的localhost

回答

7
  1. 可以篩選出已收集遙測您使用F5得到UI,因爲它有物業IsDeveloperMode =真
  2. 你可以有web.config中轉型,從web.debug.config和葉刪除應用模塊啓示它只在web.release.config中(如果您只有自動收集的屬性)
  3. 您可以從配置中刪除檢測密鑰並將其僅設置爲代碼中的發佈版本:TelemetryConfiguration.Active.InsrumentationKey =「MyKey」(如果您不要在調試中提供iKey,您仍然可以在VS 2015中看到AI集線器中的所有遙測)
  4. 您可以使用differen牛逼iKeys用於調試和發佈再次在代碼中設置它
  5. 您可以完全調試通過設置禁用ApplicationInsights TelemetryConfiguration.Active.DisableTelemetry =真
+0

我說在我的FilterConfig.cs下面幾行代碼: '#如果RELEASE TelemetryConfiguration .Active.DisableTelemetry = true;#endif' 阿納斯塔西婭,你認爲這會奏效嗎? – chesco

+0

如果您有一個定義RELEASE的標準應用程序,並且您沒有在代碼中創建任何自定義TelemetryConfiguration,那麼將會顯示yes。 DisableTelemetry適用於每個遙測配置。自動收集僅使用TelemetryConfiguration.Active。此外,我不知道如果您在FilterConfig中的代碼已達到之前跟蹤smth(例如一些跟蹤)。如果是的話,那些遙測顯然會被髮送。 –

8

您還可以,如果你使用的過濾器使用TelemetryProcessor(本地主機遙測最新版本(Application Insights Web SDK的預發佈版本)。這是一個例子。這個類添加到項目中:

public class LocalHostTelemetryFilter : ITelemetryProcessor 
{ 
    private ITelemetryProcessor next; 
    public LocalHostTelemetryFilter(ITelemetryProcessor next) 
    { 
     this.next = next; 
    } 

    public void Process(ITelemetry item) 
    { 
     var requestTelemetry = item as RequestTelemetry; 
     if (requestTelemetry != null && requestTelemetry.Url.Host.Equals("localhost", StringComparer.OrdinalIgnoreCase)) 
     { 
      return; 
     } 
     else 
     { 
      this.next.Process(item); 
     } 
    } 
} 

,然後註冊它ApplicationInsights.config:

<TelemetryProcessors> 
    <Add Type="LocalhostFilterSample.LocalHostTelemetryFilter, LocalHostFilterSample"/> 
</TelemetryProcessors> 
+0

這是更好的方式,因爲我可以使用Selenium發送自定義標題,然後此代碼可以忽略我的測試。是的,我知道,我應該有一個專門的測試環境..當然。但至少我正在測試..:D – ppumkin