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实现telnet客户端的方法
Apr 15 Python
Python数据库的连接实现方法与注意事项
Feb 27 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
python 自定义装饰器实例详解
Jul 20 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
Python如何将装饰器定义为类
Jul 30 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 Python
python实现的web监控系统
Apr 27 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
MySQL修改密码方法总结
2008/03/25 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
Use Word to Search for Files
2007/06/15 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
Webpack执行命令参数详解
2017/06/17 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
客户经理岗位职责
2013/12/08 职场文书
毕业生自荐书
2014/02/03 职场文书
民事起诉书范本
2015/05/19 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers