2017-01-23 60 views
0

有沒有辦法告訴應用洞察捕捉不僅關係到SQL依賴的數據的百分比是多少?例如10%?如果沒有,是否有辦法一起禁用它?MS應用洞察 - 如何節流的Sql依賴

+2

這裏見我的回答:http://stackoverflow.com/questions/38320886/app-insights-disable-sql-dependency-telemetry/38321304#38321304 –

+0

請儘量按照詹姆斯·戴維斯 - MSFT的答案並找出它是否可以幫助你。 –

+0

@ JamesDavis-MSFT你的解決方案工作得很好,請將其發佈爲答案,以便我可以接受! – Leonardo

回答

1

可以「節流」(或樣品,微軟稱它)以不同的方式。一種方法是使用內置配置選項來限制所有內容,但是如果只想限制特定的依賴項,則需要實現自己的ITelemetryChannel。
的指南爲如何做到這一點可以在這裏找到:http://apmtips.com/blog/2015/05/06/diy-data-sampling/

然後,在發送(ITelemetry項)方法,您可以檢查是否輸入產品的依賴和相關的SQL,它看起來會像這樣:

if (item is DependencyTelemetry) 
{ 
    var dependency = item as DependencyTelemetry; 
    if (dependency.DependencyTypeName == "SQL") 
    { 
     //implement throttling from the guide 
    } 
} 

爲紐帶所示,您將需要在這個創造ServerTelemetryChannel的實例,並調用send()方法 - 你需要爲你想實際發送到任何遙測項目做到這一點應用見解。
這意味着你還可以使用此實現完全過濾掉任何SQL依賴遙測這樣的:

public void Send(ITelemetry item) 
{ 
    if (item is DependencyTelemetry) 
    { 
     var dependency = item as DependencyTelemetry; 
     if (dependency.DependencyTypeName == "SQL") 
     { 
      return; 
     } 
    }   
    this.channel.Send(item); 
} 
+0

我閱讀並實現了它,替換了applicationinsights.config文件中的standart節點,但是即使將'Send(..)'的實現留空,我仍然可以看到所有類型的遙測都是一樣的...斷點也是不工作... – Leonardo

+0

您的遙測頻道正在實施ITelemetryChannel和ITelemetryModule? 而且,你可以在applicationinsights.config文件中顯示行嗎? – lmms90

+0

@ Imms90我現在通過代碼初始化我的自定義頻道。我的斷點正在被擊中,但即使使用空白的「發送」方法,我仍然得到日誌...是因爲我使用的是開發環境? – Leonardo