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中的exec、eval使用实例
Sep 23 Python
python链接Oracle数据库的方法
Jun 28 Python
python django 实现验证码的功能实例代码
May 18 Python
Python网络编程 Python套接字编程
Sep 13 Python
Python补齐字符串长度的实例
Nov 15 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
python之列表推导式的用法
Nov 29 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
flask开启多线程的具体方法
Aug 02 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 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
使用 php4 加速 web 传输
2006/10/09 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
DOM精简教程
2006/10/03 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
JS与C#编码解码
2013/12/03 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
Python lxml模块安装教程
2015/06/02 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python中的TCP socket写法示例
2018/05/11 Python
python实现机器学习之元线性回归
2018/09/06 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
意大利网上药房:Farmacia 33
2020/01/27 全球购物
影视动画专业个人的自我评价
2013/12/31 职场文书
秋游活动策划方案
2014/02/16 职场文书
个人授权委托书
2014/04/03 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
婚礼答谢礼品
2015/01/20 职场文书
消防演习通知
2015/04/25 职场文书
工作自我评价范文
2019/03/21 职场文书
话题作文之学会尊重
2019/12/16 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python