请求-ID标头的正确格式是什么,因此Azure Monitor opentelemetry pockage识别出来并用作跟踪ID? 我想发送一个请求-ID标头,以便由Azure Monitor OpenTelemetry软件包用于操作ID。 我进行了几次尝试,包括: 'request-id:| 9e74f0e5-efc4-41b5-86d1-

问题描述 投票:0回答:1

'Request-Id: |9e74f0e5-efc4-41b5-86d1-3524a43bd891.'

,但是,这些都没有被ASP.NET核心识别。

'Correlation-Context: Id=9e74f0e5-efc4-41b5-86d1-3524a43bd891'

LegacyPropagator : DistributedContextPropagator

负责从the标题中解析跟踪ID:
System.Diagnostics

我不理解此代码如何通过

Request-Id

标头提供跟踪ID。
相关性HTTP协议(也称为request-id)正在
弃用。该协议定义了两个标题:
request-id:带有呼叫的全球独特ID。

相互关系 - 封面:带有名称值对的集合 分布式跟踪属性

https://learn.microsoft.com/en-us/azure/azure-monitor/app/distributed-trace-data#correlation-headers-using-using-w3c-tracecontext

要使标头正常工作,您需要遵循不弃用的相关协议指定的
  • 级请求ID格式。具体来说,
  • format:
  • getter(carrier, RequestId, out traceId, out _);

Request-Id

c# .net azure azure-application-insights open-telemetry
1个回答
0
投票

根请求ID:



span:



    Request-Id
  • (垂直条),

    Request-Id(dot)和|<root-id>.<local-id1>.<local-id2>.

    (下划线)保留用于
    层结构。这些字符

    cannot
  • 是节点值的一部分。连字符
  • Request-Id: |9e74f0e5efc441b586d13524a43bd891.

    IS允许在节点值中。 上面的格式检查与legacypropagator识别并解析request-id header的兼容性。

    如果您仅目标通过自定义跟踪ID以使其与旧系统的向后兼容,则上述的
    Request-Id: |9e74f0e5efc441b586d13524a43bd891.1d2f3e4g5h6i7j8k.

    格式就足够了。但是,对于完整的追踪功能,建议过渡到W3C跟踪上下文。
  • 这里是创建和管理
|

标头的代码。

.
您还可以解析传入的标题并调整其格式。
_
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.