我正在尝试在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指标作为对象。任何帮助将不胜感激。
答案 0 :(得分:0)
所有客户端(生产者,消费者,AdminClient)都具有称为metrics()
的方法,该方法公开所有JMX指标。
例如,对于生产者,请参见metrics()
,它返回所有现有指标及其值的映射。