添加注入的 TelemetryConfiguration 后,Azure Functions v3 不再自动跟踪依赖项

Posted

技术标签:

【中文标题】添加注入的 TelemetryConfiguration 后,Azure Functions v3 不再自动跟踪依赖项【英文标题】:Azure Functions v3 no longer auto-tracking dependencies after adding injected TelemetryConfiguration 【发布时间】:2022-01-14 20:40:06 【问题描述】:

目前在 .netcore 3.1 中有一个天蓝色函数 v3,带有以下 host.json


  "version": "2.0",
  "logging": 
    "applicationInsights": 
      "samplingSettings": 
        "isEnabled": false,
        "excludedTypes": "Exception"
      ,
      "dependencyTrackingOptions": 
        "enableSqlCommandTextInstrumentation": true
      
    ,
    "logLevel": 
      "Function": "Information",
      "Host.Aggregator": "Information",
      "Host.Results": "Information",
      "default": "Warning"
    
  

在应用洞察中自动跟踪 SQL 依赖关系时一切正常。还需要跟踪 redis 调用我已按照建议通过依赖注入添加了 telemetryClient

telemetryClient = new TelemetryClient(telemetryConfiguration);

然而,在这样做之后,我只接收到我通过遥测客户端手动编写的依赖调用,而不再获得默认的 SQL 调用。

我尝试手动创建一个 DependencyCollector.DependencyTrackingTelemetryModule 并使用注入的遥测配置和设置对其进行初始化 EnableSqlCommandTextInstrumentation = true ,虽然这确实启用了 SQL 跟踪,但它并没有将它绑定到调用上下文。

之前有没有人遇到过这个问题,或者对如何正确实施自定义遥测同时保持默认依赖跟踪有任何建议?

【问题讨论】:

可以参考类似的GitHub问题:App Insights does not collect SQL dependencies out of the box、ITelemetryProcessor does not appear to be supported in Function Apps和Injecting TelemetryConfiguration no longer works after updating from v3-Preview to v3 【参考方案1】:

将 Microsoft.Azure.WebJobs.Logging.ApplicationInsights 降级到与 Microsoft.NET.Sdk.Functions 相同的版本,并且可以正常工作。

【讨论】:

以上是关于添加注入的 TelemetryConfiguration 后,Azure Functions v3 不再自动跟踪依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何添加通用依赖注入[重复]

Dll注入:修改PE文件 IAT注入

在 Anylogic 中添加/注入代理到队列

springboot 添加aop controller里面注入的service 是空 null

在电子邮件中注入 PHP 以添加标题?

aop为系统添加操作日志,注入或配置声明的方式来实现