使用 JMX 收集“kafka.producer”指标
Gathering `kafka.producer` metrics using JMX
我有一个 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
指标仅限经纪人。
这样做的正确方法是什么。请帮忙
在此上下文中,将 producing 改写为 通过不可靠的网络 写入可能会有所帮助。
从这个角度来看,衡量写作特征 最合理的地方似乎是客户本身(即在每个 "application" 中,如您所说)。
如果生产者和代理之间的消息丢失,您仍然可以将统计信息发送到本地 "metric store"(例如,您可以在 record-retry-rate
或某些地方看到 "spike"其他相关指标)。
此外,将 Kafka 生产者指标与其他 local 指标配对可能非常有用(JVM 统计信息、详细的业务指标等)。请记住,与代理本身相比,客户端几乎肯定会 运行 在生产环境中的不同机器上,并且可能会受到不同因素的影响。
如果您打算监视您的客户端应用程序(这很可能无论如何都会发生),那么我会在那里进行(即 standard 方式)。
是的,你是对的,要捕获生产者 JMX 指标,你需要在所有 运行 kafka 生产者实例的进程中启用 JMX。
我有一个 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
指标仅限经纪人。
这样做的正确方法是什么。请帮忙
在此上下文中,将 producing 改写为 通过不可靠的网络 写入可能会有所帮助。
从这个角度来看,衡量写作特征 最合理的地方似乎是客户本身(即在每个 "application" 中,如您所说)。
如果生产者和代理之间的消息丢失,您仍然可以将统计信息发送到本地 "metric store"(例如,您可以在 record-retry-rate
或某些地方看到 "spike"其他相关指标)。
此外,将 Kafka 生产者指标与其他 local 指标配对可能非常有用(JVM 统计信息、详细的业务指标等)。请记住,与代理本身相比,客户端几乎肯定会 运行 在生产环境中的不同机器上,并且可能会受到不同因素的影响。
如果您打算监视您的客户端应用程序(这很可能无论如何都会发生),那么我会在那里进行(即 standard 方式)。
是的,你是对的,要捕获生产者 JMX 指标,你需要在所有 运行 kafka 生产者实例的进程中启用 JMX。