首页 > 解决方案 > 部署到 AppService 时的 ITelemetryProcessor 行为

问题描述

我创建了一个自定义遥测处理器,它将客户属性添加到遥测项目中。在本地运行时,我看不到任何问题,并且我看到属性被添加(在发布和调试模式下)并记录到 AppInsights。

部署到应用服务时,我看到了日志,但遥测处理器添加的属性丢失了。

我正在使用 .Net Core 2.1,应用程序洞察 NuGet 版本是 2.3.0。有没有办法调试为什么会这样?还有人知道这是否是一个已知问题吗?

标签: asp.netasp.net-coreazure-application-insights

解决方案


你能分享你的代码来增加应用程序洞察力和遥测处理器吗?它应该是这样的:

public void ConfigureServices(IServiceCollection services)
{
    // ...
    services.AddApplicationInsightsTelemetry();
    services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();

    // If you have more processors:
    services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();

    // ...
}

您可以尝试打印在 TelemetryConfiguration 实例中注册的 TelemetryProcessor 列表吗?您可以将构造函数注入TelemetryConfiguration控制器类,并打印出列表。如下所示。

string tpList;

        public ValuesController(TelemetryConfiguration tc)
        {
            var tps = tc.TelemetryProcessors;
            foreach(var tp in tps)
            {
               var s = tp.GetType().ToString();
                tpList += s;
            }

        }

        // GET api/values
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2", tpList };
        }

这应该确认 TelemetryProcessor 是否在配置中。

另外,当您说本地工作时-您是指从 Visual Studio 运行时吗?VS 会改变行为,因此可以尝试在 VS 之外的本地运行,看看它是否会重现。


推荐阅读