10.4. 为 MirrorMaker、Kafka Connect 和 Kafka Bridge 设置追踪
MirrorMaker、MirrorMaker 2.0、Kafka Connect(包括使用 Source2Image 支持的 Kafka Connect)和 AMQ Streams Kafka Bridge 支持分布式追踪。
MirrorMaker 和 MirrorMaker 2.0 中的追踪
对于 MirrorMaker 和 MirrorMaker 2.0,信息会从源集群追踪到目标集群。追踪数据记录进入和离开 MirrorMaker 或 MirrorMaker 2.0 组件的信息。
Kafka Connect 中的追踪
只有 Kafka Connect 本身生成并使用的消息才会被跟踪。要追踪在 Kafka Connect 和外部系统间发送的信息,您必须在连接器中为这些系统配置追踪。如需更多信息,请参阅 第 2.2.1 节 “配置 Kafka 连接”。
在 Kafka Bridge 中追踪
Kafka Bridge 生成并使用的消息会被跟踪。还会追踪从客户端应用程序发送和接收消息的传入 HTTP 请求。要进行端到端追踪,您必须在 HTTP 客户端中配置追踪。
10.4.1. 在 MirrorMaker、Kafka Connect 和 Kafka Bridge 资源中启用追踪
更新 KafkaMirrorMaker
、KafkaMirrorMaker2
、
和 KafkaConnect
S2IKafkaBridge
自定义资源的配置,以为每个资源指定和配置 Jaeger tracer 服务。更新 OpenShift 集群中启用追踪的资源会触发两个事件:
- 在 MirrorMaker、MirrorMaker 2.0、Kafka Connect 或 AMQ Streams Kafka Bridge 中的集成消费者和生产者中更新拦截器类。
- 对于 MirrorMaker、MirrorMaker 2.0 和 Kafka Connect,追踪代理会根据资源中定义的追踪配置初始化 Jaeger tracer。
- 对于 Kafka Bridge,基于资源中定义的追踪配置的 Jaeger tracer 由 Kafka Bridge 本身初始化。
流程
为每个 KafkaMirrorMaker
、KafkaMirrorMaker2
、KafkaConnect、
和 KafkaConnect
S2IKafkaBridge
资源执行这些步骤。
在
spec.template
属性中配置 Jaeger tracer 服务。例如:Kafka Connect 的 Jaeger tracer 配置
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect metadata: name: my-connect-cluster spec: #... template: connectContainer: 1 env: - name: JAEGER_SERVICE_NAME value: my-jaeger-service - name: JAEGER_AGENT_HOST value: jaeger-agent-name - name: JAEGER_AGENT_PORT value: "6831" tracing: 2 type: jaeger #...
MirrorMaker 的 Jaeger tracer 配置
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaMirrorMaker metadata: name: my-mirror-maker spec: #... template: mirrorMakerContainer: env: - name: JAEGER_SERVICE_NAME value: my-jaeger-service - name: JAEGER_AGENT_HOST value: jaeger-agent-name - name: JAEGER_AGENT_PORT value: "6831" tracing: type: jaeger #...
MirrorMaker 2.0 的 Jaeger tracer 配置
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaMirrorMaker2 metadata: name: my-mm2-cluster spec: #... template: connectContainer: env: - name: JAEGER_SERVICE_NAME value: my-jaeger-service - name: JAEGER_AGENT_HOST value: jaeger-agent-name - name: JAEGER_AGENT_PORT value: "6831" tracing: type: jaeger #...
Kafka Bridge 的 Jaeger tracer 配置
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaBridge metadata: name: my-bridge spec: #... template: bridgeContainer: env: - name: JAEGER_SERVICE_NAME value: my-jaeger-service - name: JAEGER_AGENT_HOST value: jaeger-agent-name - name: JAEGER_AGENT_PORT value: "6831" tracing: type: jaeger #...
创建或更新资源:
oc apply -f your-file