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


Posted in Python onApril 27, 2014
#!/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)
Python 相关文章推荐
python抓取某汽车网数据解析html存入excel示例
Dec 04 Python
python使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
Python格式化css文件的方法
Mar 10 Python
简单的Python的curses库使用教程
Apr 11 Python
理论讲解python多进程并发编程
Feb 09 Python
Python-OpenCV基本操作方法详解
Apr 02 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
python 爬取小说并下载的示例
Dec 07 Python
python抓取网页图片示例(python爬虫)
Apr 27 #Python
python实现sublime3的less编译插件示例
Apr 27 #Python
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 #Python
Python设计模式之单例模式实例
Apr 26 #Python
Python设计模式之观察者模式实例
Apr 26 #Python
Python设计模式之代理模式实例
Apr 26 #Python
python中的列表推导浅析
Apr 26 #Python
You might like
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Django实现自定义404,500页面教程
2017/03/26 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
python__name__原理及用法详解
2019/11/02 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
PHP高级工程师面试问题推荐
2013/01/18 面试题
为什么会有内存对齐
2016/10/10 面试题
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
五一家具促销方案
2014/01/10 职场文书
酒吧创业计划书
2014/01/18 职场文书
教师演讲稿大全
2014/05/16 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
pytorch 如何使用float64训练
2021/05/24 Python