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实现提取文章摘要的方法
Apr 21 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
python中scikit-learn机器代码实例
Aug 05 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
django删除表重建的实现方法
Aug 28 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
Python使用正则实现计算字符串算式
Dec 29 Python
pycharm的python_stubs问题
Apr 08 Python
自学python用什么系统好
Jun 23 Python
浅析python实现动态规划背包问题
Dec 31 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
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
Python如何进行时间处理
2020/08/06 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
运动会广播稿60字
2014/01/15 职场文书
先进个人获奖感言
2014/01/24 职场文书
个性与发展自我评价
2014/02/11 职场文书
工厂搬迁方案
2014/05/11 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
MYSQL如何查看进程和kill进程
2022/03/13 MySQL