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使用PyV8执行javascript代码示例分享
Dec 04 Python
Python中的各种装饰器详解
Apr 11 Python
解决Python传递中文参数的问题
Aug 04 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
python构建深度神经网络(DNN)
Mar 10 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
详解Python 解压缩文件
Apr 09 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
python如何获取apk的packagename和activity
Jan 10 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中定义网站根目录的常用方法
2010/08/08 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
总结Python中逻辑运算符的使用
2015/05/13 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python验证企业工商注册码
2015/10/25 Python
itchat接口使用示例
2017/10/23 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python hmac模块使用实例解析
2019/12/24 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
python将unicode和str互相转化的实现
2020/05/11 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
销售人员个人求职信
2013/09/26 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
股份合作协议书
2014/09/10 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
JavaScript canvas实现流星特效
2021/05/20 Javascript