如何为所有 Azure Application Insight 请求添加自定义属性 (JavaScript)

How do you add custom properties for ALL Azure Application Insight requests (JavaScript)

a) 自定义属性应该在 envelope.dataenv.data.baseData 还是 envelope.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);

基于https://github.com/microsoft/ApplicationInsights-JS#telemetry-initializers

a) envelope.data 是模型的基础,直接在此对象上设置新属性可能无法正确摄取,并且 env.data.baseData 会因您发送的数据类型而异。 envelope.data.properties 应该存在于所有遥测类型中,并允许您发送任何自定义数据以及您希望的遥测。 envelope.data.properties["CustomServiceName"] = "MyName"; 是正确的实现。

b) 使用遥测初始化器是实现此目的的最佳方法 - 向每个请求添加 属性 是它们的用例之一。上下文具有 a small number 个特定数据点,并且列表不可自定义。根据您的其余设置,Cloud Role 可能适合,但您仍需要使用遥测初始化程序来设置它。