使用腳本+kafka自帶命令行工具 統計數據寫入kafka速率


思路

每隔一段時間(比如說10秒)統計一次某topic的所有partition的最大offset值之和,這便是該topic的message總數。
然后除以間隔時間就可以粗略但方便得出 某topic的數據增長速率(即相應程序寫kafka的速率)

Kafka常用topic操作命令匯總 中有統計最大offset命令

# 最大offset
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test_topic --time -1

shell實現

注意:

  1. 第一次打印出來的speed請忽略(為了shell更加簡單方便沒有特殊處理第1次統計的情況)
  2. 該腳本需要放入到kafka程序安裝根目錄,或者把bin/kafka-run-class.sh文件寫成絕對路徑
#!/bin/sh

brokers="localhost:9092"
topic="test_topic"

last=0
now=0
speed=0

while :
do
    echo "-------------"
    last=$now
    now=$(bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list ${brokers} --topic ${topic} --time -1 |  awk -F ":" '{sum+=$NF} END {print sum}')
    let speed=(now-last)/10
    echo "now is $now, speed is $speed"
    sleep 10
done


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM