部署到AppService时的ITelemetryProcessor行为

时间:2018-07-08 09:18:24

标签: asp.net asp.net-core azure-application-insights

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

当部署到应用程序服务时,我看到的是日志,但是缺少遥测处理器添加的属性。

我正在使用.Net Core 2.1,NuGet的应用程序见解版本是2.3.0。有没有办法调试为什么发生这种情况?还有人知道这是否是已知问题吗?

1 个答案:

答案 0 :(得分:3)

您能否共享增加应用程序见解和遥测处理器的代码?应该是这样的:

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之外本地运行,并查看它是否会失败。