获取kafka的lag, offset, logsize的shell和python脚本
python脚本
#!/usr/bin/env python import os
import re
import sys group_id=sys.argv[1]
pn=sys.argv[2] kafka_ip=os.popen('sudo docker inspect elements_kafka_1 | grep KAFKA_ADVERTISED_HOST_NAME').read()
kafka_ip=re.match('^.*=(.*)",', kafka_ip).group(1)
kafka_port=9092 def kafka_value(): content=os.popen('sudo docker exec -it elements_kafka_1 /opt/kafka_2.12-2.2.0/bin/kafka-consumer-groups.sh --bootstrap-server kafka_ip:kafka_port --group group_id --describe | grep -v LAG').read()
content=content.split() length=len(content)
item_num=length/8 Offset=""
Logsize=""
Lag="" for i in range(0, item_num):
Logsize = content[8*i+3]
if Logsize == "":
continue
else:
Offset = content[8*i+2]
Lag = content[8*i+4] if pn in ("lag", "Lag"):
print(Lag)
if pn in ("offset", "Offset"):
print(Offset)
if pn in ("logsize", "Logsize"):
print(Logsize) kafka_value()
shell脚本
#!/bin/bash #NIC=ens3
#kafka_ip=`ifconfig $NIC | awk '/inet addr:/ {print $2}' | awk -F: '{print $2}'`
kafka_ip=`sudo docker inspect elements_kafka_1 | grep KAFKA_ADVERTISED_HOST_NAME | awk -F "[=,\"]" '{print $3}'`
kafka_port=
group_id=$
pn=$ sudo docker exec -it elements_kafka_1 \
/opt/kafka_2.-2.2./bin/kafka-consumer-groups.sh --bootstrap-server $kafka_ip:$kafka_port --group $group_id --describe | grep -v LAG \
> /tmp/kafka-tp-${group_id}.info # modify format problem
sed -i 's/\r//g' /tmp/kafka-tp-${group_id}.info Offset=
logsize=
Lag= while read line
do
current_logsize=`echo $line | awk '{print $4}'`
if [ $current_logsize = ];then
continue
else
current_lag=`echo $line | awk '{print $5}'`
current_offset=`echo $line | awk '{print $3}'`
Offset=$((Offset+current_offset))
logsize=$((logsize+current_logsize))
Lag=$((Lag+current_lag))
fi
done < /tmp/kafka-tp-${group_id}.info case $pn in
offset|Offset)
echo $Offset
;;
logsize|logSize)
echo $logsize
;;
lag|Lag)
echo $Lag
;;
*)
echo Error
;;
esac
获取kafka的lag, offset, logsize的shell和python脚本的更多相关文章
- shell调用python脚本,并且向python脚本传递参数
1.shell调用python脚本,并且向python脚本传递参数: shell中: python test.py $para1 $para2 python中: import sys def main ...
- jenkins发布程序触发shell调用python脚本刷新akamai cdn api
刷新cdn的流程:jenkins获取git中的代码,触发脚本推送到生产环境中(即cdn的源站) --> 触发脚本获取git工作目录的更新列表,将更新列表拼凑成带域名信息的url,写入到目录中 - ...
- 关于怎么获取kafka指定位置offset消息(转)
1.在kafka中如果不设置消费的信息的话,一个消息只能被一个group.id消费一次,而新加如的group.id则会被“消费管理”记录,并指定从当前记录的消息位置开始向后消费.如果有段时间消费者关闭 ...
- 获取kafka最新offset-java
之前笔者曾经写过通过scala的方式获取kafka最新的offset 但是大多数的情况我们需要使用java的方式进行获取最新offset scala的方式可以参考: http://www.cnblog ...
- 获取Kafka每个分区最新Offset的几种方法
目录 脚本方法 Java 程序 参考资料 脚本方法 ./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhos ...
- 工具篇-Spark-Streaming获取kafka数据的两种方式(转载)
转载自:https://blog.csdn.net/weixin_41615494/article/details/7952173 一.基于Receiver的方式 原理 Receiver从Kafka中 ...
- Kafka设计解析(十二)Kafka 如何读取offset topic内容 (__consumer_offsets)
转载自 huxihx,原文链接 Kafka 如何读取offset topic内容 (__consumer_offsets) 众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka ...
- Spark Streaming消费Kafka Direct保存offset到Redis,实现数据零丢失和exactly once
一.概述 上次写这篇文章文章的时候,Spark还是1.x,kafka还是0.8x版本,转眼间spark到了2.x,kafka也到了2.x,存储offset的方式也发生了改变,笔者根据上篇文章和网上文章 ...
- Kafka Consumer Lag Monitoring
Sematext Monitoring 是最全面的Kafka监视解决方案之一,可捕获约200个Kafka指标,包括Kafka Broker,Producer和Consumer指标.尽管其中许多指标很 ...
随机推荐
- [UE4]如何替换角色Mesh上的Material材质
http://www.dawnarc.com/2016/10/ue4%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E8%A7%92%E8%89%B2mesh%E4%B8%8 ...
- Node.js 内置模块crypto加密模块(2) AES
AES:高级加密标准 ( Advanced Encryption Standard ) AES是一种对称加密算法:加密需要密钥,且加密密钥和解密密钥相同 下面是AES加密的Node实现: " ...
- sticky,粘性定位
position:sticky,粘性定位:可以说是relative和fixed的结合: 滑动过程中,元素在显示窗口内则在其本身的位置,超出元素所在位置则显示在设定的sticky位置. 使用: #id ...
- 解决webSocke客户端连接服务端返回400错误
原因: nginx使用了转发,头信息没设置全,问题出现在nginx的配置文件 解决办法: 修改nginx.conf配置文件,在linux终端敲入vim /etc/nginx/nginx.conf,找到 ...
- 乐字节-Java8核心特性实战之Stream(流)
说起流,我们会想起手机 ,电脑组装流水线,物流仓库商品包装流水线等等.如果把手机 ,电脑,包裹看做最终结果的话,那么加工商品前的各种零部件就可以看做数据源,而中间一系列的加工作业操作,就可以看做流的处 ...
- 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)
常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据. 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTT ...
- 服务器安装docker后免除sudo命令
1. 先建立一个docker组:sudo groupadd docker 2. 将用户加入docker组:sudo usermod -aG docker (用户名) 3. 先退出登录:exit 4. ...
- iOS 隐藏百度地图SDK的百度LOGO
第一个思路:找到LOGO对应的UIIMageView,并将其隐藏hidden // 隐藏百度地图Logo UIView *mView = _mapView.subviews.firstObject; ...
- C# dynamic与var的区别
1.C#编程总结(十四)dynamic 2.var和dynamic的区别及如何正确使用dynamic?
- Jquery属性操作(入门二)
********JQuery属性相关的操作******** 1.属性 属性(如果你的选择器选出了多个对象,那么默认只会返回出第一个属性). attr(属性名|属性值) - 一个参数是获取属性的值,两个 ...