Go语言 从打开遥测中的字符串属性值设置TraceId//将字符串转换为字节数组

k2fxgqgv  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(136)

我们正在尝试使用OpenTelemetry转换处理器[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"]))

收集器甚至不会启动,因为我们正在尝试给予一个字符串,而这里需要一个字节切片

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转换为Byte Array,但没有一种方法有效。
有人有什么想法吗?
提前感谢,亲切的问候!
[1][https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/fbb8ff9658b3bac7892dea6c7d49f40afe154bd8/processor/transformprocessor](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

pdtvr36n

pdtvr36n1#

我们找到了答案:

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

工作正常:)

相关问题