【发布时间】:2021-09-11 17:36:51
【问题描述】:
我正在使用 OpenTelemetry 和 AWS X-Ray 来跟踪以下之间的 E2E 消息:
生产者 (JVM) -> Kafka Broker -> 消费者(多个,基于 Python)
然后将生成的跟踪发送到 AWS OTEL 收集器,后者将它们转发到 AWS X-Ray。
但是,当我从 X-Ray 中看到它们时,消费者跟踪显示为生产者的子段:
我希望将消费者视为一个单独的细分市场。
我还尝试在消费者端使用 AWS X-Ray SDK 来显式初始化一个新段,如下所示:
val traceId = TraceIdData(String(record.headers().headers("X-Amzn-Trace-Id").first().value()))
logger.debug("Trace Id {}, Parent Id {}", traceId.root, traceId.parent)
AWSXRay.beginSegment("Simple Kafka Consumer", traceId.root, traceId.parent)
... some processing ...
AWSXRay.endSegment()
但是,即使我开始一个新的分段并指定:trace_id 和 parent_id,这仍然显示为 AWS X-Ray 中的子分段。我已经确认这两个属性都不为空且有效。
如何在 AWS X-Ray 中为此持续跟踪生成一个新的段?最好是使用 OpenTelemetry (agent/sdk/collector) 来执行此操作,但也可以使用 AWS X-Ray SDK。
【问题讨论】:
标签: amazon-web-services aws-xray open-telemetry