Opentelemetry 上下文传播测试
Opentelemetry context propagation test
我正在尝试测试一些 opentelemetry 跨度是否在父子关系中正确构建和链接。
clientSpan = Span.wrap(
SpanContext.createFromRemoteParent(
"12345678123456781234567812345678",
"1234567812345678",
TraceFlags.getDefault,
TraceState.getDefault
)
)
.updateName("clientSpan")
我要测试的代码创建了一个新跨度,它是它接收到的客户端跨度的子跨度
tracer.spanBuilder("my-endpoint")
.setSpanKind(SpanKind.SERVER)
.setParent(Context.current().`with`(clientSpan))
.startSpan()
我的问题是每当我通过 clientSpan
InMemorySpanExporter.getFinishedSpanItems()
returns 为空。
它 returns 非空,并且在没有使用 clientSpan 时符合预期。
在单元测试中,我尝试结束父跨度或保持打开状态:clientSpan.end()
但 getFinishedSpanItems 始终为空。
也许我在单元测试中没有正确构建 clientSpan? (在产品代码中,它是从 carrier-propagator-getter 组合中提取的)
wrap
returns 包含提供的跨度上下文但没有功能的非记录跨度。所有操作都是空操作。所以无论你做什么 clientSpan
都没有效果。
请将 TraceFlags.getDefault()
更改为 TraceFlags.getSampled()
。默认 returns 一个所有位都关闭的标志,这意味着将不考虑子跨度
我正在尝试测试一些 opentelemetry 跨度是否在父子关系中正确构建和链接。
clientSpan = Span.wrap(
SpanContext.createFromRemoteParent(
"12345678123456781234567812345678",
"1234567812345678",
TraceFlags.getDefault,
TraceState.getDefault
)
)
.updateName("clientSpan")
我要测试的代码创建了一个新跨度,它是它接收到的客户端跨度的子跨度
tracer.spanBuilder("my-endpoint")
.setSpanKind(SpanKind.SERVER)
.setParent(Context.current().`with`(clientSpan))
.startSpan()
我的问题是每当我通过 clientSpan
InMemorySpanExporter.getFinishedSpanItems()
returns 为空。
它 returns 非空,并且在没有使用 clientSpan 时符合预期。
在单元测试中,我尝试结束父跨度或保持打开状态:clientSpan.end()
但 getFinishedSpanItems 始终为空。
也许我在单元测试中没有正确构建 clientSpan? (在产品代码中,它是从 carrier-propagator-getter 组合中提取的)
wrap
returns 包含提供的跨度上下文但没有功能的非记录跨度。所有操作都是空操作。所以无论你做什么 clientSpan
都没有效果。
请将 TraceFlags.getDefault()
更改为 TraceFlags.getSampled()
。默认 returns 一个所有位都关闭的标志,这意味着将不考虑子跨度