如何在Java中的主题级别获取Kafka指标?

问题描述 投票:0回答:1

我试图在Java的主题级别获取Kafka指标。 kafka Docs表明我可以使用JMX获取它们,但我不知道该怎么做。

文档显示MBean为kafka.producer:type=producer-topic-metrics,client-id="{client-id}",topic="{topic}"我不确定在哪里放置我追求的实际度量标准名称,但是已经尝试过这样做:"kafka.consumer:type=consumer-fetch-manager-metrics,client-id=\"1\",topic=\"%s\",name=\"bytes-consumed-rate\""

我也不确定如何实际使用bean以及在何处指定kafka集群信息。

到目前为止,我已经有了这个...但是bean实际上并没有做任何事情,因为我不知道如何实际执行它。

        String metric = String.format("kafka.server:name=BytesInPerSec,topic=%s,type=BrokerTopicMetrics", topicName);
        try{
            ObjectName objectName = new ObjectName(metric);
            String s = objectName + " ^L";
            LOGGER.info(s);
        }
        catch(MalformedObjectNameException e){
            LOGGER.error("Malformed Object Exception: ", e);
        }
        return null;

理想情况下,我希望将主题级别的kafka指标作为对象。任何帮助将不胜感激。

java apache-kafka jmx
1个回答
0
投票

所有客户端(Producer,Consumer,AdminClient)都有名为metrics()的方法,它们公开了所有JMX指标。

例如,对于Producer,请参阅metrics(),它返回所有现有指标及其值的Map。

© www.soinside.com 2019 - 2024. All rights reserved.