如何为所有Azure Application Insight请求(JavaScript)添加自定义属性 给定一个浏览器单页应用程序 使用AppInsights JS SDK v2.5.3时 然后我想要一个CustomServiceName与所有请求一起发送

如何为所有Azure Application Insight请求(JavaScript)添加自定义属性 给定一个浏览器单页应用程序 使用AppInsights JS SDK v2.5.3时 然后我想要一个CustomServiceName与所有请求一起发送,javascript,azure,appinsights,Javascript,Azure,Appinsights,a) 自定义属性是否应位于信封.data、环境数据.baseData或信封.data.properties上 它似乎会根据所拨打电话的类型而变化 b) 我是否可以在操作上下文而不是每个请求上设置CustomServiceName 目前我们正在使用这个 var telemetryInitializer = (envelope) => { envelope.tags["ai.application.ver"] = "1.2.3";

a) 自定义属性是否应位于
信封.data
环境数据.baseData
信封.data.properties

它似乎会根据所拨打电话的类型而变化

b) 我是否可以在操作上下文而不是每个请求上设置
CustomServiceName

目前我们正在使用这个

        var telemetryInitializer = (envelope) => {
            envelope.tags["ai.application.ver"] = "1.2.3";

            if (envelope.data) {
                envelope.data["CustomServiceName"] = "MyName";
                if (envelope.data.properties) {
                    envelope.data.properties["CustomServiceName"] = "MyName";
                }
            }
        };
        aisdk.addTelemetryInitializer(telemetryInitializer);
基于

a)
信封。数据
是模型的基础,直接在此对象上设置新属性可能无法正确接收,并且
env.data.baseData
将根据您发送的数据类型而有所不同<代码>信封.data.properties应存在于所有遥测类型上,并允许您随遥测发送任何自定义数据<代码>信封.数据.属性[“CustomServiceName”]=“MyName”是正确的实现


b) 使用遥测初始值设定项是实现这一点的最佳方法-为每个请求添加属性是它们的一个用例。上下文中有一组特定的数据点,列表是不可自定义的。根据设置的其他部分,云角色可能适合,但您仍需要使用遥测初始值设定项进行设置。

不确定SDK是否已更新<代码>信封.数据.属性现在未定义,至少对于
页面视图
遥测而言。遥测初始值设定项中的
信封.data.XXXX
现在通过检查发送的请求自动添加到
数据.properties
SDK@Smokovsky说清楚一点,这是新方法吗<代码>var telemetryInitializer=(信封)=>{envelope.tags[“ai.cloud.role”]=“CLOUDROLEHERE”;if(envelope.data){envelope.data[“Name”]=aiName;envelope.data[“Email”]=aiEmail;envelope.data[“role”]=aiRole;}; appInsights.addTelemetryInitializer(telemetryInitializer)