将CorrelationId添加到来自ASP dotnet核心应用程序的应用程序见解日志记录和遥测中

时间:2019-03-19 21:32:54

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

我需要添加CorrelationId以便在asp dotnet核心应用程序中对请求进行端到端跟踪。我正在使用Azure应用程序见解进行日志记录和遥测。如何将相关性ID添加到请求范围,以便各个层中的每个Ilogger调用和遥测调用都记录此信息?

下面是用于启用应用程序见解的代码段:

 .UseApplicationInsights()
 .ConfigureLogging(loggingBuilder => loggingBuilder.AddApplicationInsights())

1 个答案:

答案 0 :(得分:0)

Application Insights为分布式遥测关联定义了data model。为了将遥测与逻辑操作相关联,每个遥测项都有一个名为operation_Id的上下文字段。该标识符由分布式跟踪中的每个遥测项目共享。因此,即使单层失去了遥测功能,您仍然可以关联其他组件报告的遥测功能。

分布式逻辑操作通常由一组较小的操作组成,这些操作是由组件之一处理的请求。这些操作由request telemetry定义。每个请求遥测都有其自己的ID,该ID可以唯一且全局地对其进行标识。并且与此请求关联的所有遥测项(例如跟踪和异常)都应将operation_parentId设置为请求ID的值。

每个传出操作(例如对另一个组件的HTTP调用)均由dependency telemetry表示。依赖遥测还定义了自己的ID,该ID在全局上是唯一的。由此依赖关系调用发起的请求遥测将此ID用作其operation_parentId。

您可以通过将operation_Id,operation_parentId和request.id与dependency.id一起使用来构建分布式逻辑操作的视图。这些字段还定义了遥测呼叫的因果顺序。

文档参考-link

希望以上信息对您有帮助。