我目前正在将Application Insights添加到我的NodeJS应用程序中,我已经安装了软件包并成功传输了数据,但是我想在发送数据时为每个数据点添加额外的标记。
查看文档,似乎遥测处理器是执行此操作的地方,但使用下面的代码,我无法在Azure门户中看到标记。
var TraceProcessor = function (envelope) {
envelope.tags['TestTag'] = 'Test Tag';
return true;
};
module.exports = TraceProcessor;
我可以看到正在执行的代码和正在添加的标记,但无法看到此标记以在Azure门户中按其进行筛选。
我添加的标签是否正确?如果正确,我可以在门户中的何处按这些标签筛选数据?
3条答案
按热度按时间zed5wv101#
我认为您要寻找的是“自定义属性”(上面的示例使用了一个名为“Tag”的自定义属性)。SDK中的所有方法通常都允许您传递字符串key:value对的字典,并且这些属性与所有这些事件一起传播。对于所有非度量调用,如TrackEvent,您实际上可以传递自定义属性的字典 * 和 * 自定义度量的字典(字符串:double)。
TelemetryClient
中的c# sdk:或者在trackevent调用中使用度量和属性:
JavaScript SDK(好吧,反正是从ts接口),从
AppInsights.prototype
您发送到那里的任何属性 * 应该 * 在Metrics Explorer或分析查询工具中显示为过滤选项。
mm5n2pyu2#
所以我想明白了这一点,最终证明这是我最初的方法和约翰建议的方法的结合。
自定义属性确实是我所需要的,但我已经拥有的遥测处理器是能够为每个请求自动遥测的所需。
mf98qq943#
我今天发现了两件事:
“标签”很有用,但应(仅?)用于Azure关心的一般属性,即:
但是,自由形式数据应位于包络数据之下:
对于在应用启动后不会更改的属性,可以在顶层执行此操作,如下所示:
编辑:查看浏览器网络日志,我看到这些数据嵌入到data.baseData.properties中。