Kafka Topicのエンドツーエンドレイテンシを計測する
指定したトピックのエンドツーエンドレイテンシを計測するためにkafka.tools.EndToEndLatency という組み込みツールがある。
内部的にはProducerとConsumerを作成し、指定したトピックに対してsend()したメッセージを即時poll()し、それに要した時間をエンドツーエンドのレイテンシとして計測している。
code:kafka.tools.EndToEndLatency
$ kafka-run-class kafka.tools.EndToEndLatency
USAGE: java kafka.tools.EndToEndLatency$ broker_list topic num_messages producer_acks message_size_bytes optional properties_file 例えば1メッセージのサイズを1KBとして、10000メッセージを送信して計測する場合は以下のように実行する。(acksは1)
code: sample
$ kafka-run-class kafka.tools.EndToEndLatency kafka-broker:9092 test-topic 10000 1 1024
0 80.59510499999999
1000 0.91967
2000 0.7074940000000001
3000 0.642405
4000 0.643733
5000 0.5821459999999999
6000 0.7872509999999999
7000 1.655574
8000 0.520065
9000 0.504698
Avg latency: 1.1131 ms
Percentiles: 50th = 0, 99th = 4, 99.9th = 205