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、KafkaMirrorMaker2KafkaConnect 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 本身初始化。

步骤

为每个 KafkaMirrorMakerKafkaMirrorMaker2KafkaConnect、KafkaConnect S2IKafkaBridge 资源执行这些步骤。

  1. spec.template 属性中配置 Jaeger tracer 服务。例如:

    Kafka Connect 的 Jaeger tracer 配置

    apiVersion: kafka.strimzi.io/v1beta1
    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/v1beta1
    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/v1alpha1
    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/v1beta1
    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
    #...

    1
    使用 追踪环境变量 作为模板配置属性。
    2
    spec.tracing.type 属性设置为 jaeger
  2. 创建或更新资源:

    oc apply -f your-file
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.