我目前正在将Node Insights添加到我的NodeJS应用程序中,我已经安装了包并成功传输了数据,但是我希望在每个数据点发送时添加其他标签。
查看文档,似乎遥测处理器就是这样做的地方,但是使用下面的代码我看不到Azure门户中的标签。
var TraceProcessor = function (envelope) {
envelope.tags['TestTag'] = 'Test Tag';
return true;
};
module.exports = TraceProcessor;
我可以看到正在执行的代码和正在添加的标记,但无法在Azure门户中看到此标记被过滤。
我是否正确添加了标签,如果是,我可以在哪里通过门户网站过滤数据?
答案 0 :(得分:0)
我认为您正在寻找的是"自定义属性" (上面的示例使用自定义属性命名为" Tag")。 SDK中的所有方法通常允许您传递字符串键:值对的字典,并且这些属性随所有这些事件一起传播。对于所有非度量调用,如TrackEvent,您实际上可以传递自定义属性的字典和自定义度量的字典(字符串:double)。
{p> sdkTelemetryClient
:
public void TrackMetric(string name, double value, IDictionary<string, string> properties = null)
或在trackevent调用中使用指标AND属性:
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; });
您在发送的任何属性应在metrics explorer或分析查询工具中显示为过滤选项。
答案 1 :(得分:0)
所以我想出了这个,最终结果是我原来的方法和约翰建议的方法的结合。
var TraceProcessor = function (envelope) {
envelope.data.baseData.properties['TraceID'] = 'trace1';
return true;
};
module.exports = TraceProcessor;
自定义属性确实是我所需要的,但我已经拥有的遥测处理器能够通过自动遥测来满足每个请求。