我正在使用JMX通过collectd的GenericJMX插件监视Apache Kafka集群。 但是,我不确定一些MBean参数是什么意思。
特别是,我有一个名为kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec指标kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec ,显示一台机器每秒收到的消息数量。 这是这个MBean的configuration文件:
<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或其他types。 我已经尝试阅读收集的这个文件,不能真正了解我应该在哪里应用每种测量types。
有人能解释我吗?
这看起来像一个衡量标准,凭借“Per”价值–Kafka已经将其规范化为一个特定的时间框架。 如果这个名字只是“MessagesIn”,我希望它是一个计数器 – 随着消息的进入,这个数字会不断增加。
换句话说,如果bean返回某个东西的“现在”,那么它就是一个标准。 如果它返回到目前为止的总和,这是一个计数器。 MessagesInPerSec是一个“当前状态”值,所以是一个标准。
我终于设法得到它的工作。 几乎所有的JMX中的Kafka度量都有多个属性。 例如,这个kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec包含以下属性:
Count EventType FifteenMinuteRate FiveMinuteRate MeanRate OneMinuteRate RateUnit select“ Type ,必须select是要检索值,还是将间隔collectd期间的variablesconfiguration为报告度量标准。 因此, gauge是价值, counter是它的变化。
报告Kafka的JMX度量标准的最灵活的方法是简单地使用Count属性,一个单调增加的计数器,在新消息到达时递增,并将其作为counter报告。 如果collectdconfiguration为每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>