43tt 发表于 2014-5-12 09:34:48

graphite,python监控网卡流量

#!/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()
def set_interface(inter_msg):
   dic={}
   for i in xrange(len(inter_msg)):
       dic.split(":").strip()]={"in":inter_msg.split(":").strip().split(),"out":inter_msg.split(":").strip().split()}
   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]["in"]),int(inter_dic1]["in"])
   for i in xrange(len(inter_dic1.keys())):
       lines.append("interface.%s_in %s %d" % (inter_dic1.keys(),int(inter_dic2]["in"])-int(inter_dic1]["in"]),now))
       lines.append("interface.%s_out %s %d" % (inter_dic1.keys(),int(inter_dic2]["out"])-int(inter_dic1]["out"]),now))
   message = '\n'.join(lines) + '\n'
   print "sending message\n"
   print '-' * 80
   print message
   sock.sendall(message)
   time.sleep(delay)


页: [1]
查看完整版本: graphite,python监控网卡流量