我试图在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指标作为对象。任何帮助将不胜感激。
所有客户端(Producer,Consumer,AdminClient)都有名为metrics()
的方法,它们公开了所有JMX指标。
例如,对于Producer,请参阅metrics()
,它返回所有现有指标及其值的Map。