2016-09-27 32 views
0

我正在將Application Insights添加到我的NodeJS應用程序中,我安裝了軟件包併成功傳輸數據,但是我想在發送每個數據點時添加其他標記。NodeJS的應用程序洞察中的標記指標

看看文檔,它似乎是一個遙測處理器的地方,但使用下面的代碼我看不到Azure門戶中的標籤。

var TraceProcessor = function (envelope) { 
    envelope.tags['TestTag'] = 'Test Tag'; 
    return true; 
}; 
module.exports = TraceProcessor; 

我可以看到正在執行的代碼和正在添加的標記,但無法在Azure門戶中看到該標記進行過濾。

我是否正確地添加標籤,如果是的話,我可以在門戶網站中通過這些標籤過濾數據?

+0

根據https://github.com/Microsoft/ApplicationInsights-node.js/blob/master/Library/Client.ts#L215源代碼中'envelope'的'tag'屬性的定義,它似乎是在context類的https://github.com/Microsoft/ApplicationInsights-node.js/blob/master/Library/Context.ts#L49中驗證。你能否澄清你的要求? –

+0

感謝您的回覆。我想要做的是能夠在每個度量標準發送時添加附加信息,然後在分析數據時通過這些信息進行過濾。標籤名稱對於每個數據點都是相同的,但值可能不同。 從查看C#版本的見解,我認爲我可以使用標籤來完成此操作 - https://blogs.msdn.microsoft.com/visualstudioalm/2015/01/07/application-insights-support- for-multiple-environments-stamps-and-app-versions/ 有沒有類似的NodeJS機制? –

回答

0

所以我想通了,它最終結果是我原來的方法和約翰建議的方法的組合。

var TraceProcessor = function (envelope) { 
    envelope.data.baseData.properties['TraceID'] = 'trace1'; 
    return true; 
}; 
module.exports = TraceProcessor; 

自定義屬性確實是我所需要的,但遙測處理器我已經是被需要的,以便能夠與每個請求自動遙測做到這一點。

0

我認爲你要找的是「自定義屬性」(上面的示例使用名爲的「自定義屬性」標籤「)。 SDK中的所有方法通常允許您傳遞字符串鍵值對的字典,並且這些屬性隨所有這些事件一起傳送。對於所有非度量標準調用(如TrackEvent),您實際上可以傳遞自定義屬性字典字典(字符串:double)自定義度量標準。

C#SDK在TelemetryClient

public void TrackMetric(string name, double value, IDictionary<string, string> properties = null) 

或在trackevent呼叫使用度量和性能:

public void TrackEvent(string name, IDictionary<string, string> properties = null, IDictionary<string, double> metrics = null) 

JavaScript的SDK(當然,從TS接口反正),從AppInsights.prototype

trackMetric(name: string, average: number, sampleCount?: number, min?: number, max?: number, properties?: { [name: string]: string; }); 

您發送的任何屬性應該在度量標準瀏覽器或分析查詢工具中顯示爲過濾選項。

+0

感謝您的迴應 - 也許我誤解了,不會使用TrackMetric和TrackEvent強制我手動執行事件跟蹤,而不是使用自動遙測? –