.net - TraceIdentifer 对 W3C 配置的 Activity 起什么作用(即 Trace Context)
问题描述
这个问题与已集成到 .NET 中的Trace Context W3CHttpContext.TraceIdentifier
建议以及该属性在未来注定要扮演的角色有关。
Activity(使用 W3C)和HttpContext.TraceIdentifier是否相互排斥以用于记录和跟踪目的?因为它们似乎在很大程度上重叠了关注点。
通过启动一个新的 .NET API,您是否最好只启用 W3C 并记录 Trace / Span / Parent id,而不是担心我们迄今为止一直在使用的跟踪标识符?
我明白在:
- 需要向后兼容,并且 W3C 规范目前已选择加入。
- 并非所有 API 都需要分布式跟踪,因此 TraceIdentifier 可能更合适。但是在这种情况下,W3C 方法仍然可以满足您的需求,并且还可以让您稍后以分布式方式进行跟踪。
这是一个 JSON 格式的日志条目,它记录了 TraceIdentifier(即 RequestId)以及 Activity 属性SpanId
,供参考。TraceId
ParentId
{
"@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"
}
解决方案
推荐阅读
- c++ - 在 Visual Studio Code 中调试(C++ 程序)时看不到矢量或其他容器(例如地图)的内容
- python - 如何使用python查看由字节字符串表示的两个jpg图像是否相同
- wordpress - 意外 URL 更改后,Wordpress 永久链接不起作用
- python - 在嵌套类中运行一个函数,该函数来自一个不同的嵌套类,两者都嵌套在同一个类中
- nginx - Nginx反向代理:并行尝试多个上游服务器并返回第一个成功响应
- amazon-web-services - Kubectl 无法访问 kubernetes api。k8s 部署不可达
- javascript - 映射复杂的javascript对象数组以获取值
- node.js - 当表单中有多个输入时,使用 amazon s3 上传图像
- gatsby - '..\node_modules\pngquant-bin\vendor\pngquant.exe' 丢失
- java - Java - 如何将对象添加到另一个对象的列表中