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>