首页 > 解决方案 > TraceIdentifer 对 W3C 配置的 Activity 起什么作用(即 Trace Context)

问题描述

这个问题与已集成到 .NET 中的Trace Context W3CHttpContext.TraceIdentifier建议以及该属性在未来注定要扮演的角色有关。

Activity(使用 W3C)和HttpContext.TraceIdentifier是否相互排斥以用于记录和跟踪目的?因为它们似乎在很大程度上重叠了关注点。

通过启动一个新的 .NET API,您是否最好只启用 W3C 并记录 Trace / Span / Parent id,而不是担心我们迄今为止一直在使用的跟踪标识符?

我明白在:

这是一个 JSON 格式的日志条目,它记录了 TraceIdentifier(即 RequestId)以及 Activity 属性SpanId,供参考。TraceIdParentId

{
  "@t": "2021-08-13T17:00:10.7787030Z",
  "@mt": "HTTP {RequestMethod} {RequestPath} responded {StatusCode} in {Elapsed:0.0000} ms",
  "@r": [
    "0.6127"
  ],
  "UserId": "00000000-0000-0000-0000-000000000000",
  "RequestMethod": "GET",
  "RequestPath": "/",
  "StatusCode": 200,
  "Elapsed": 0.61267,
  "SourceContext": "Serilog.AspNetCore.RequestLoggingMiddleware",
  "SpanId": "332010586910af41",
  "TraceId": "c9d2356397fdd64998690c709acf9a51",
  "ParentId": "0000000000000000",
  "RequestId": "0HMAUFETQ32F5:00000005",
  "ConnectionId": "0HMAUFETQ32F5"
}

标签: .netasp.net-core.net-core

解决方案


推荐阅读