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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
Python遍历numpy数组的实例
Apr 04 Python
python实现顺序表的简单代码
Sep 28 Python
用Django写天气预报查询网站
Oct 21 Python
python中退出多层循环的方法
Nov 27 Python
Pytorch 之修改Tensor部分值方式
Dec 27 Python
Python request使用方法及问题总结
Apr 26 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
python Scrapy爬虫框架的使用
Jan 21 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 Python
详解python的异常捕获
Mar 03 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函数(ignore_user_abort)
2012/08/01 PHP
浅析php创建者模式
2014/11/25 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
python实现汉诺塔方法汇总
2016/07/25 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
python3爬取各类天气信息
2018/02/24 Python
Python读取properties配置文件操作示例
2018/03/29 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
python实现最短路径的实例方法
2020/07/19 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
电大本科自我鉴定
2014/02/05 职场文书
个人实习生的自我评价
2014/02/16 职场文书
会计系毕业生求职信
2014/05/28 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL