Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > Python图形界面

python监控网卡流量并使用graphite绘图的示例

来源:中文源码网    浏览:213 次    日期:2024-04-29 07:12:10
【下载文档:  python监控网卡流量并使用graphite绘图的示例.txt 】


python监控网卡流量并使用graphite绘图的示例
复制代码 代码如下:#!/usr/bin/env pythonimport sys,timefrom socket import socketdef 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 dicCARBON_SERVER = '127.0.0.1'CARBON_PORT = 2003delay = 3sock = 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)

相关内容