collectd 中的 MBean 参数是什么意思?

collectd 中的 MBean 参数是什么意思?

我正在使用 JMX 和 collectd 的 GenericJMX 插件来监控 Apache Kafka 集群。但是,我不确定某些 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是正确的测量单位,例如gaugecounter或者另一个。我尝试阅读有关 collectd 的文档但我真的不明白应该在哪里应用每种测量类型。

有人可以给我解释一下吗?

答案1

这看起来像一个计量器,因为它是一个“Per”值——Kafka 已经将其规范化为特定的时间范围。如果名称只是“MessagesIn”,我会认为它是一个计数器——一个随着消息传入而不断增加的数字。

换句话说,如果 bean 返回某事物的“当前”状态,则它就是一个计量器。如果它返回某事物的“迄今为止的总数”,则它就是一个计数器。MessagesInPerSec 是一个“当前状态”值,因此也是一个计量器。

答案2

我终于让它工作了。JMX 中的几乎所有 Kafka 指标都有多个属性。例如,它kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec包含以下属性:

  • Count
  • EventType
  • FifteenMinuteRate
  • FiveMinuteRate
  • MeanRate
  • OneMinuteRate
  • RateUnit

选择 时Type,您必须选择是否希望它按原样检索值或按 collectd 配置报告指标的间隔检索其差值。因此,gauge是值,counter是差值。

报告 Kafka 的 JMX 指标的最灵活方法是简单地使用属性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>

相关内容