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
是正確的測量值,例如gauge
,counter
或另一個。我已經嘗試閱讀有關 collectd的文件,但無法真正理解我應該在哪裡應用每種測量類型。有人可以解釋一下嗎?
我終於設法讓它工作了。JMX 中幾乎所有的 Kafka 指標都有多個屬性。例如,它
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
包含以下屬性:
Count
EventType
FifteenMinuteRate
FiveMinuteRate
MeanRate
OneMinuteRate
RateUnit
選擇 時
Type
,您必須選擇是希望它按原樣檢索值,還是在將收集的時間間隔配置為報告度量時其差異。因此,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>
這看起來像一個量規,因為它是一個“Per”值——Kafka 已經將它標準化為一個特定的時間範圍。如果名稱只是“MessagesIn”,我希望它是一個計數器——隨著消息的傳入,這個數字會不斷增加。
換句話說,如果 bean 返回某個東西的“現在”,它就是一個量規。如果它返回某事物的“到目前為止的總數”,則它是一個計數器。MessagesInPerSec 是一個“目前狀態”值,因此也是一個量規。