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

时间:2019-04-25 17:21:58

标签: java apache-kafka jmx

我正在尝试在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指标作为对象。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

所有客户端(生产者,消费者,AdminClient)都具有称为metrics()的方法,该方法公开所有JMX指标。

例如,对于生产者,请参见metrics(),它返回所有现有指标及其值的映射。