Я использую JMX для мониторинга кластера Apache Kafka с помощью плагина collectd GenericJMX. Однако я не уверен, что означают некоторые параметры MBean.
В частности, у меня есть одна метрика, которая называется kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
, показывающий количество сообщений, получаемых одним компьютером в секунду. Это мой файл конфигурации для этого MBean:
<MBean "kafka-all-messages">
ObjectName "kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec"
InstancePrefix "all"
<Value>
InstancePrefix "kafka-messages-in"
Type "counter"
Table false
Attribute "MeanRate"
</Value>
</MBean>
Я не знаю какой Type
является правильным для этого измерения, например gauge
, counter
или другой. Я пробовал читать эта документация на collectd Автор не мог понять, где мне применять каждый тип измерения.
Может кто-нибудь объяснить мне это?
Это похоже на измеритель, поскольку это значение «Per» - Кафка уже нормализует это до определенного периода времени. Если бы имя было просто «MessagesIn», я бы ожидал, что это счетчик - число, которое постоянно увеличивается по мере поступления сообщений.
Другими словами, если компонент возвращает «прямо сейчас» чего-либо, это показатель. Если он возвращает «общий итог» чего-либо, это счетчик. MessagesInPerSec - это значение «текущего состояния», так же как и датчик.
Наконец-то мне удается заставить его работать. Практически все метрики Kafka в JMX имеют несколько атрибутов. Например, это kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
содержит следующие атрибуты:
Count
EventType
FifteenMinuteRate
FiveMinuteRate
MeanRate
OneMinuteRate
RateUnit
При выборе Type
, вы должны выбрать, хотите ли вы, чтобы он извлекал значение как есть или его разность для интервала collectd настроен для отчета по метрикам. Следовательно, gauge
это стоимость и counter
это разница.
Самый гибкий способ сообщить о показателях JMX Kafka - просто использовать Count
атрибут, монотонно увеличивающийся счетчик, который увеличивается всякий раз, когда приходит новое сообщение, и сообщает об этом как о counter
. Если collectd настроен на отправку отчетов каждые 60 секунд, это будет количество сообщений, приходящих в минуту. Если он отправляет отчеты каждые 10 минут, значением будет количество сообщений за 10 минут.
<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>