【问题标题】:Net Core 3 ILogger Dependency Tracking AppInsightsNet Core 3 ILogger 依赖跟踪 AppInsights
【发布时间】:2020-02-25 13:07:28
【问题描述】:

我将 ILogger (Microsoft.Extensions.Logging) 与应用程序洞察一起使用。我想知道在使用BeginScope() 时如何自动跟踪所有依赖项,如果可能的话?

例如这段代码:

            using (var scope = this.logger.BeginScope(new Dictionary<string, string>
            {
                { "Reference", "HelloWorld" }
            }))
            {
                this.logger.LogDebug("Foo");
                this.logger.LogInformation("Bar.");
                var response = await this.httpClient.PostAsync(..); // dependency tracking
            }

这会将Reference 字段记录为跟踪上的自定义维度,但是,依赖项条目没有任何自定义维度。这必须手动完成还是我遗漏了什么?

应该详细说明,这些 ^^ 未附加到跟踪的依赖项条目,我正在使用托管服务并通过 services.AddApplicationInsightsTelemetryWorkerService() 连接应用程序洞察力

【问题讨论】:

  • AFAIK 如果不通过 Ilogger 接口进行处理,则不会添加范围属性。依赖关系跟踪不是使用 ILogger 接口完成的。
  • 依赖遥测没有获取范围属性。只有来自 ilogger 的痕迹才能得到它。
  • 如何聚合整个依赖链?作为一个 API,你可以免费获得它,但我想作为一个工人并没有那么多。丰富上下文似乎是我认为的技巧..

标签: azure-application-insights serilog ilogger


【解决方案1】:

目前无法根据 ilogger 范围将遥测项组合在一起。

在应用程序洞察力中将一组遥测数据逻辑组合在一起的推荐方法是使用StartOperation API。一个简单的例子如下所示:

using (telemetryClient.StartOperation<RequestTelemetry>("logical operation to be grouped."))
            {
                using (var scope = logger.BeginScope(new Dictionary<string, object>
                    {
                        { "Reference", "HelloWorld" }
                    }))
                {
                    logger.LogWarning("Foo");
                    var res = new HttpClient().GetAsync("https://bing.com").Result.StatusCode;
                }
            }

在本例中,所有生成的遥测数据——“父请求遥测”、ilogger 日志、依赖遥测(以及 StartOperation 中的任何其他内容)都将具有相同的 operationid,并且可以如下所示进行查询:

union requests,dependencies,traces 
| where operation_Id == 'daf85c73470f80448394748b5067f6e8'

另请注意,在常规 Web 应用程序中,从单个请求范围生成的所有遥测数据将自动关联在一起。上面的示例展示了如何手动应用分组 - 通常在控制台应用程序等中需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 2018-03-13
    • 1970-01-01
    • 2023-03-06
    • 2022-11-02
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多