zoukankan      html  css  js  c++  java
  • 使用脚本+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
    
    
  • 相关阅读:
    pinus学习(3)
    pinus学习(2)
    HBASE架构解析(二)
    排序算法
    泛型原理
    《JAVA NIO》第二章缓冲区
    @SuppressWarnings
    网络编程
    synchronized原理
    第十六节:pandas之日期时间
  • 原文地址:https://www.cnblogs.com/itwild/p/12308394.html
Copyright © 2011-2022 走看看