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调用新浪微博API项目实践
Jul 28 Python
线程和进程的区别及Python代码实例
Feb 04 Python
Python的动态重新封装的教程
Apr 11 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
利用python绘制数据曲线图的实现
Apr 09 Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 Python
django haystack实现全文检索的示例代码
Jun 24 Python
5行Python代码实现一键批量扣图
Jun 29 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
星际争霸中的热键
2020/03/04 星际争霸
PHP中include()与require()的区别说明
2010/03/10 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
php关联数组快速排序的方法
2015/04/17 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
详解javascript void(0)
2020/07/13 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
NumPy 数组使用大全
2019/04/25 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
诚信的演讲稿范文
2014/05/12 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
canvas实现贪食蛇的实践
2022/02/15 Javascript