【问题标题】:How do you add custom properties for ALL Azure Application Insight requests (JavaScript)如何为所有 Azure Application Insight 请求添加自定义属性 (JavaScript)
【发布时间】:2020-03-26 19:48:40
【问题描述】:
  • 给定一个浏览器单页应用程序
  • 使用 AppInsights JS SDK v2.5.3 时
  • 然后,我希望将 CustomServiceName 与所有请求一起发送。

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

【问题讨论】:

    标签: javascript azure appinsights


    【解决方案1】:

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

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

    【讨论】:

    • 不确定 SDK 是否更新。 envelope.data.properties 现在未定义,至少对于 pageView 遥测而言。而 Telemetry 初始化程序中的 envelope.data.XXXX 现在通过检查 SDK 发送的请求自动添加到 data.properties
    • @Smokovsky 澄清一下,这是新方法吗? var telemetryInitializer = (envelope) => { envelope.tags["ai.cloud.role"] = "CLOUDROLEHERE"; if (envelope.data) { envelope.data["Name"] = aiName; envelope.data["Email"] = aiEmail; envelope.data["Role"] = aiRole; } }; appInsights.addTelemetryInitializer(telemetryInitializer);
    猜你喜欢
    • 2022-09-26
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2019-12-27
    • 2019-01-07
    相关资源
    最近更新 更多