Eu finalmente consegui fazê-lo funcionar. Praticamente todas as métricas de Kafka no JMX possuem múltiplos atributos. Por exemplo, esse kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec contém os seguintes atributos:
-
Count -
EventType -
FifteenMinuteRate -
FiveMinuteRate -
MeanRate -
OneMinuteRate -
RateUnit
Ao selecionar o Type , deve-se escolher se ela deseja recuperar o valor como está ou sua variação durante o intervalo. O collectd está configurado para relatar métricas. Portanto, gauge é o valor e counter é sua variação.
A maneira mais flexível de relatar as métricas JMX do Kafka é simplesmente usar o atributo Count , um contador crescente monotonicamente que é incrementado sempre que uma nova mensagem chega e é relatado como counter . Se o collectd estiver configurado para relatar a cada 60 segundos, esse será o número de mensagens recebidas por minuto. Se estiver reportando a cada 10 minutos, o valor será o número de mensagens por 10 minutos.
<MBean "kafka-all-messages">
ObjectName "kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec"
InstancePrefix "all"
<Value>
InstancePrefix "kafka-messages-in"
Type "counter"
Table false
Attribute "Count"
</Value>
</MBean>