2016/04にKafkaのリソースをモニタリングするツールkafka-monitorがlinkedinからOSSとして公開された。
プロデューササービスの生成率とコンシューマサービスの消費率、メッセージ損失、メッセージ重複、エンドツーエンドのレイテンシがグラフとして表示できるようなのでKafkaに繋げてみて試してみる。
環境
現在、最新版は0.10系であるが、0.9と0.8系しか対応していなさそうなので0.9系を使う。
Kafka Monitor supports Apache Kafka 0.8 and 0.9. Use branch 0.8.2.2 to monitor Apache Kafka cluster 0.8.
- Apache kafka 0.9.0.1
- Java 1.8
Kafkaの起動
$ cd kafka_2.11-0.9.0.1 |
Topicを作る
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 \ |
Kafka monitorインストール
$ git clone https://github.com/linkedin/kafka-monitor.git |
CentOSを使っていてGradleのbuildタスクが失敗する場合は以下の手順でjava-1.8.0-openjdk-develをインストールする。
FAILURE: Build failed with an exception. |
kafka monitor起動
$ bin/end-to-end-test.sh --topic test --broker-list localhost:9092 \ |
http://localhost:8000
に接続すると以下の画面が表示される。

metricsのグラフが8個表示される。1秒間隔でグラフが更新されるが、特に表示間隔を変えたりする機能はないため、1秒間隔でグラフが更新されていくのを見てるだけの画面。
Metrics Tableのタブを選択すると8個のmetricsのテーブルが表示される。このテーブルも1秒間隔で更新される。

HTTPでMetrics取得
画面は微妙だけど以下の様にメトリクスをAPIで取得することができるので、運用ツールから値を取れるようになっている。
$ curl localhost:8778/jolokia/read/kmf.services:type=produce-service,name=*/produce-availability-avg |
まとめ
画面、取得できるMetricsの個数は微妙だが、APIで値を取得することができるので運用ツールから参照させておくといいかも。
おわり。