在Open Telemetry // Cast String to Byte Array中设置TraceId的字符串属性



我们正在尝试使用OpenTelemetry Transform Processor[1]设置TraceID。

有一种方法可以像这样用硬编码值[2]设置TraceID(示例显示了一个SpanID,但TraceID也可以)。

traces:
set(span_id, SpanID(0x0000000000000000))

我们希望将其设置为存储在属性中的值。我们尝试

traces:
set(trace_id, attributes["traceID"])

其中attributes["traceID"]是字符串0x00000000000000000000000000000000

这行不通,但是如果我们尝试

traces:
set(trace_id,TraceID(attributes["traceID"]))

收集器甚至不会启动,因为我们试图给出一个String,其中需要一个字节片

collector server run finished with error: invalid configuration: processor "transform" has invalid configuration: invalid argument at position 1 invalid argument for slice parameter at position 0, must be a byte slice literal

我们尝试了不同的方法将String类型强制转换为字节数组,但没有一种方法有效。

有人有什么想法吗?

提前感谢,致以亲切的问候!

[1] https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/fbb8ff9658b3bac7892dea6c7d49f40afe154bd8/processor/transformprocessor[2] https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/ottl update-a-spans-id

我们找到了答案:

- set(trace_id.string,attributes["traceID"])

可以正常工作:)

最新更新