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中方法链的使用方法
Feb 23 Python
通过源码分析Python中的切片赋值
May 08 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
python实现log日志的示例代码
Apr 28 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
Oct 11 Python
python3爬虫怎样构建请求header
Dec 23 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
python基础详解之if循环语句
Apr 24 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
建立动态的WML站点(三)
2006/10/09 PHP
如何使用脚本模仿登陆过程
2006/11/22 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python socket实现简单聊天室
2018/04/01 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
python开发前景如何
2020/06/11 Python
高级护理专业大学生求职信
2013/10/24 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
走群众路线学习笔记
2014/11/06 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫