代码之家  ›  专栏  ›  技术社区  ›  Gurpreet Singh

部署到AppService时的ITelemetryProcessor行为

  •  0
  • Gurpreet Singh  · 技术社区  · 7 年前

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

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

    我使用的是.NET Core 2.1,Application Insights Nuget版本是2.3.0。有没有办法调试为什么会发生这种情况?还有人知道这是一个已知的问题吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   cijothomas    7 年前

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

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
        services.AddApplicationInsightsTelemetry();
        services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();
    
        // If you have more processors:
        services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();
    
        // ...
    }
    

    您是否可以尝试打印向TelemetryConfiguration实例注册的遥测处理器列表?您可以构造注入 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 };
            }
    

    这应该确认遥测处理器是否在配置中。

    另外,当你说本地工作时——你是说从Visual Studio运行时?vs会改变行为,所以可以尝试在vs之外本地运行,看看它是否会责备。

    推荐文章