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编程开发之textwrap文本样式处理技巧
Nov 13 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
python使用生成器实现可迭代对象
Mar 20 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
python儿童学游戏编程知识点总结
Jun 03 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
python 发送get请求接口详解
Nov 17 Python
Python 实现PS滤镜的旋涡特效
Dec 03 Python
完美处理python与anaconda环境变量的冲突问题
Apr 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/03/31 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
js 调整select 位置的函数
2008/02/21 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
django 外键创建注意事项说明
2020/05/20 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
通过代码实例了解Python异常本质
2020/09/16 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
会计专业毕业生自我鉴定
2013/10/29 职场文书
大学生实习感言
2014/01/16 职场文书
村居抓节水倡议书
2014/05/19 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
导游词之山海关
2019/12/10 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技