【问题标题】:Gathering `kafka.producer` metrics using JMX使用 JMX 收集“kafka.producer”指标
【发布时间】:2018-12-31 08:54:43
【问题描述】:

我正在运行一个 Kakfa 代理,我正在使用 JMX 对其进行监控。

此代理是一个 docker 容器,作为一个以 kafka-server-start.sh 启动的进程运行,JMX 端口 9999 被公开并用作环境变量。

当我连接到 JMX 端口并尝试列出所有域时,我得到以下信息;

kafka
kafka.cluster
kafka.controller
kafka.coordinator.group
kafka.coordinator.transaction
kafka.log
kafka.network
kafka.server
kafka.utils

我没有看到kafka.producer,这是可以理解的,因为这个 Kafka 代理的生产者是 N 多个不同的应用程序,但此时我很困惑。

我也如何获得kafka.producer 指标。 我是否必须在每个充当生产者的N 应用程序中公开kafka.producer 指标是否有一些配置开始仅在代理上收集kafka.producer 指标。

这样做的正确方法是什么。请帮忙。

【问题讨论】:

    标签: apache-kafka jmx


    【解决方案1】:

    是的,您是正确的,要捕获生产者 JMX 指标,您需要在运行 kafka 生产者实例的所有进程中启用 JMX。

    【讨论】:

    • 嘿,我是 Kafka 的新手,我想在本地设置中捕获生产者速率。我正在从 IDE 运行我的制作人,预计该主题会产生一百万条记录。在这种情况下,如何公开 kafka.producer 指标以捕获指标?
    【解决方案2】:

    在这种情况下,将生产改写为在不可靠的网络上编写可能会有所帮助。

    从这个角度来看,衡量写作特征最合理的地方似乎是客户端本身(即在您所说的每个“应用程序”中)。

    如果生产者和代理之间的消息丢失,您仍然可以将统计信息发送到本地“指标存储”(例如,您可以在 record-retry-rate 或其他相关指标中看到“峰值”)。

    此外,将 Kafka 生产者指标与其他 本地 指标配对可能非常有用(JVM 统计数据、详细的业务指标等)。请记住,客户端几乎肯定会在生产环境中的不同机器上运行,并且可能会受到与代理本身不同的因素的影响。

    如果您打算监控您的客户端应用程序(这很可能无论如何都会发生),那么我只需在那里进行(即standard 方式)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多