Как я могу получить метрики Kafka на уровне темы в Java? - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь получить метрики Кафки на уровне темы в Java.Документы kafka показывают, что я могу получить их, используя 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\""

Я также не уверен, как на самом деле использовать бин и где указывать информацию кластера kafka.

До сих пор у меня все получалось ... Но бин на самом деле ничего не делает, потому что я не знаю, как на самом деле его выполнить.

        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;

В идеале я хочу получить метрики кафки на уровне темы как объект.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 26 апреля 2019

У всех клиентов (Producer, Consumer, AdminClient) есть методы с именем metrics(), которые предоставляют все метрики JMX.

Например, для источника см. metrics(), который возвращает карту всех существующих метрик и их значений.

...