gpt4 book ai didi

java - 尝试以编程方式通过 jmx 访问 kafka 指标时出错

转载 作者:行者123 更新时间:2023-12-02 10:49:28 29 4
gpt4 key购买 nike

我刚刚开始使用一个简单的示例来读取 jmx 指标,并使用 HeapMemoryUsage、CPUTime 等简单值来感受它。我需要尝试访问kafka服务器/消费者指标,特别是滞后,我可以看到它在FetcherLagMetrics-ConsumerLag下的jconsole应用程序中作为键可见。但以编程方式我收到以下错误:

javax.management.InstanceNotFoundException: kafka.consumer:type=consumer- 
fetch-manager-metrics

这告诉我消费者获取管理器指标是问题所在,因为它甚至在 jconsole 中也不存在。我将其更改为以下内容,但仍然存在同样的问题:

consumerBean = jmxCon.getMBeanServerConnection().getAttribute(new 
ObjectName("kafka.server:type=FetcherLagMetrics"),"ConsumerLag");
cd = (CompositeData) consumerBean;

尝试访问这些值的代码如下:

        jmxCon.getMBeanServerConnection().invoke(new 
ObjectName("java.lang:type=Memory"), "gc", null, null);

for (int i = 0; i < 100; i++) {

//get an instance of the HeapMemoryUsage Mbean
memoryMbean = jmxCon.getMBeanServerConnection().getAttribute(new ObjectName("java.lang:type=Memory"), "HeapMemoryUsage");
cd = (CompositeData) memoryMbean;

//get an instance of the OperatingSystem Mbean
osMbean = jmxCon.getMBeanServerConnection().getAttribute(new ObjectName("java.lang:type=OperatingSystem"),"ProcessCpuTime");

//get an instance of the kafka metrics Mbean
consumerBean = jmxCon.getMBeanServerConnection().getAttribute(new ObjectName("kafka.consumer:type=consumer-fetch-manager-metrics"),"MaxLag");
cd = (CompositeData) consumerBean;

consumerBeanII = jmxCon.getMBeanServerConnection().getAttribute(new ObjectName("kafka.server:type=FetcherLagMetrics,name=ConsumerLag"),"Lag");


System.out.println("Used memory: " + " " + cd.get("MaxLag") + " Used cpu: " + consumerBean); //print memory usage

tempMemory = tempMemory + Long.parseLong(cd.get("used").toString());
Thread.sleep(1000); //delay for one second

}

它在consumerBean = 行失败......有人可以解释或提供使用jmx/JMI实现访问kafka指标的正确方法吗?

最佳答案

我不确定你的 Kafka 版本,但是当我使用 JConsole 查看我的版本(v1.1.0)时,没有你描述的用于消费者延迟的 bean。因此我认为您的 JMX 查询预计会失败。

相反,我相信此类信息已移至 Kafka Admin API界面。因此,如果您不想使用 kafka-consumer-groups.sh 命令行实用程序,您现在必须使用它来获取滞后设置。

对于我们来说,我们只需要这些统计数据来进行监控,因此我们使用 https://github.com/danielqsj/kafka_exporter获取 Prometheus 的信息。

关于java - 尝试以编程方式通过 jmx 访问 kafka 指标时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52282338/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com