Назад | Перейти на главную страницу

Что означают параметры MBean в collectd?

Я использую 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>