JMXを使用してApache Kafkaからメトリックを収集し、collectdを介して視覚化および監視サービスであるLibratoに送信しています。問題は、一部のメトリックが誤ってレポートしているように見えることです。 Kafkaクラスターを使用している人は誰でも、1分間に多数の着信メッセージ(15,000など)を報告するノードもあれば、予想どおり0を報告するノードもあります。
Collectdのメトリック構成の1つは次のとおりです。
<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>
そして、これがLibratoのグラフです。
誰かが何が悪いのか知っていますか? Type
などの私の収集した構成ですか?
この問題についてのほんの少しのフォローアップ:それはJMXでも収集された間違いでもありませんでした。各Kafkaブローカーに直接ログインし、MBeanの値を読み取ることで、JMX、collectd、およびLibratoの値が一貫していることを確認しました。
問題は、自動コミット間隔が小さすぎるKafkaクライアントを使用していたため、各Kafkaブローカーに送信されるメッセージの数がhugeであったことです。