繁体   English   中英

将 Kafka Connect JMX 指标报告到 Datadog

[英]Getting Kafka Connect JMX metrics reporting into Datadog

我正在工作,赢得了一个涉及 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 代理需要具有 Java/JMX 集成。

其次,使用Datadog JMX 与 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"
                }
              }
            }
          }
        ]
      }
    ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM