【问题标题】:Getting Kafka Connect JMX metrics reporting into Datadog将 Kafka Connect JMX 指标报告导入 Datadog
【发布时间】:2021-09-18 06:22:37
【问题描述】:

我正在赢得一个涉及 Kafka Connect 的项目。我们有一个在 Kubernetes 上运行的 Kafka Connect 集群,其中一些 Snowflake 连接器已经启动并正常工作。我们现在遇到的问题是尝试从 Kafka Connect 集群获取 JMX 指标以在 Datadog 中报告。根据我对文档 (https://docs.confluent.io/home/connect/monitoring.html#using-jmx-to-monitor-kconnect) 的理解,工作人员已经默认发出指标,我们只需要找到一种方法将其报告给 Datadog。

在我们的 K8 Configmap 中,我们设置了以下值:

    CONNECT_KAFKA_JMX_PORT: "9095"
    KAFKA_JMX_PORT: "9095"
    JMX_PORT: "9095"

我在设置 KAFKA_JMX_PORT 环境变量的地方包含了这个启动脚本:

export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<redacted> -Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT}"

我一直在网上和整个 Stackoverflow 上寻找,实际上还没有看到有人将 JMX 指标报告给 Datadog 并在那里建立仪表板的例子,所以我想知道是否有人有这方面的经验。

【问题讨论】:

  • 嘿,你曾经能够让它工作吗?我什至不确定如何在图像中包含 datadog jar,更不用说启动和运行配置了。如果你让它工作并且它与答案不同,你介意分享作为自我答案吗?

标签: kubernetes apache-kafka apache-kafka-connect jmx datadog


【解决方案1】:

首先,您的 Datadog 代理需要具有 Java/JMX 集成。

其次,使用Datadog JMX integration with auto-discovery,其中kafka-connect必须与容器名称匹配。

annotations:
  ad.datadoghq.com/kafka-connect.check_names: '["jmx"]'
  ad.datadoghq.com/kafka-connect.init_configs: '[{}]'
  ad.datadoghq.com/kafka-connect.instances: |
    [
      {
        "host": "%%host%%",
        "port": 9095,
        "conf": [
          {
            "include": {
              "domain": "kafka.connect",
              "type": "connector-task-metrics",
              "bean_regex": [
                "kafka.connect:type=connector-task-metrics,connector=.*,task=.*"
              ],
              "attribute": {
                "batch-size-max": {
                  "alias": "jmx.kafka.connect.connector.batch_size_max"
                },
                "status": {
                  "metric_type": "gauge",
                  "alias": "jmx.kafka.connect.connector.status",
                  "values": {
                    "running":0,
                    "paused":1,
                    "failed":2,
                    "destroyed":3,
                    "unassigned":-1
                  }
                },
                "batch-size-avg": {
                  "alias": "jmx.kafka.connect.connector.batch_size_avg"
                },
                "offset-commit-avg-time-ms": {
                  "alias": "jmx.kafka.connect.connector.offset_commit_avg_time"
                },
                "offset-commit-max-time-ms": {
                  "alias": "jmx.kafka.connect.connector.offset_commit_max_time"
                },
                "offset-commit-failure-percentage": {
                  "alias": "jmx.kafka.connect.connector.offset_commit_failure_percentage"
                }
              }
            }
          },
          {
            "include": {
              "domain": "kafka.connect",
              "type": "source-task-metrics",
              "bean_regex": [
                "kafka.connect:type=source-task-metrics,connector=.*,task=.*"
              ],
              "attribute": {
                "source-record-poll-rate": {
                  "alias": "jmx.kafka.connect.task.source_record_poll_rate"
                },
                "source-record-write-rate": {
                  "alias": "jmx.kafka.connect.task.source_record_write_rate"
                },
                "poll-batch-avg-time-ms": {
                  "alias": "jmx.kafka.connect.task.poll_batch_avg_time"
                },
                "source-record-active-count-avg": {
                  "alias": "jmx.kafka.connect.task.source_record_active_count_avg"
                },
                "source-record-write-total": {
                  "alias": "jmx.kafka.connect.task.source_record_write_total"
                },
                "source-record-poll-total": {
                  "alias": "jmx.kafka.connect.task.source_record_poll_total"
                }
              }
            }
          }
        ]
      }
    ]

【讨论】:

  • conf 字段不需要是 init_configs 的一部分吗?
  • 我不这么认为。
猜你喜欢
  • 2019-07-29
  • 2022-07-19
  • 2020-09-13
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多