python监控网卡流量并使用graphite绘图的示例
发布时间:2022-06-24 22:35:54
标签:python,网卡,graphite
#!/usr/bin/env python
import sys,time
from socket import socket
def read_interface(in_file):
with file(in_file) as f:
return f.readlines()[2:]
def set_interface(inter_msg):
dic={}
for i in xrange(len(inter_msg)):
dic[inter_msg[i].split(":")[0].strip()]={"in":inter_msg[i].split(":")[1].strip().split()[0],"out":inter_msg[i].split(":")[1].strip().split()[8]}
return dic
CARBON_SERVER = '127.0.0.1'
CARBON_PORT = 2003
delay = 3
sock = socket()
try:
sock.connect( (CARBON_SERVER,CARBON_PORT) )
except:
print "Couldn't connect to %(server)s on port %(port)d, is carbon-agent.py running?" % { 'server':CARBON_SERVER, 'port':CARBON_PORT }
sys.exit(1)
while True:
now = int( time.time() )
lines=[]
int1=read_interface("/proc/net/dev")
inter_dic1=set_interface(int1)
time.sleep(1)
int2=read_interface("/proc/net/dev")
inter_dic2=set_interface(int2)
print int(inter_dic2[inter_dic2.keys()[1]]["in"]),int(inter_dic1[inter_dic1.keys()[1]]["in"])
for i in xrange(len(inter_dic1.keys())):
lines.append("interface.%s_in %s %d" % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]]["in"])-int(inter_dic1[inter_dic1.keys()[i]]["in"]),now))
lines.append("interface.%s_out %s %d" % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]]["out"])-int(inter_dic1[inter_dic1.keys()[i]]["out"]),now))
message = '\n'.join(lines) + '\n'
print "sending message\n"
print '-' * 80
print message
sock.sendall(message)
time.sleep(delay)


猜你喜欢
- 本文教大家用原生js实现的简单网页主页右下角的广告框效果,利用好绝对定位,点击X关闭广告,里面的内容不管动图或者视频都可以。 代码最简洁,j
- Django的Field类中方法有:to_python() # 把数据库数据转成python数据from_db_value() # 把数据库
- 计算字符长度的js函数function LEN(str){ var i,sum=0; for(i=0;i<str.length;i++
- 一、python的基础语法1.行连接的方法是最后加上一个‘\'2.注释:多行注释三引号,#行注释;三引号定义的字符串原样输出(保存原
- 选择一个合适的编辑器,比如notepad++、VS、eclipse、sublime text等,选中要集体缩进的代码块,按Tab:集体缩进(
- ghhs("nav01","li"); // 鼠标经过时变色 ghh
- 一、FFmpeg 多个音频合并的2种方法多个mp3文件合并成一个mp3文件一种方法是连接到一起ffmpeg64.exe -i "c
- 上一篇列出了Perl中定义数组,对象的方式与JS的异同。这里继续补充数组,哈希的相关操作。一、数组可以对数组进行增删,插入。与JS不同的是这
- 为什么需要线程锁当我们访问一些特殊的数据时,需要保证该数据的原子性,比如: 文章的阅读量、文章的点赞量等。我们必须要确保这些共享数据必须是原
- Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为:connection can no
- 这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下交换变量x = 6y = 5 x,
- xml问价中查询数据中包含list,需要使用collection<resultMap id="XX" type=&
- 相关知识点:#key-value#字典是无序的,因为他没有下标,通过key找info={ 'stu01':"liu
- Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)之前遇到转为tensor转化为浮点型的问题,今天
- 有时候在测试django中一些模块时,不想重新跑一整个django项目,只想跑单个文件,正好写在if __name__ == '__
- 一.权限表mysql数据库中的3个权限表:user 、db、 host权限表的存取过程是:1)先从user表中的host、 user、 pa
- Thrift 是一种接口描述语言和二进制通信协议。以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 Thrift
- 导语hello everyone! I'm kimiko!Miss me???嘿!中秋结束了,开始正式营业给大家继续送福
- 目录利用python反转图片/视频安装库反转效果实现代码项目地址利用python反转图片/视频准备:一张图片/一段视频python库:Pil
- 本教程为大家分享了oracle 11g r2安装教程,供大家参考,具体内容如下一、环境脚本简单配置#!/bin/bashmv /etc/yu