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之print详解
Sep 28 Python
使用Python的Django框架实现事务交易管理的教程
Apr 20 Python
python多进程控制学习小结
Oct 31 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Python 互换字典的键值对实例
Feb 12 Python
Python单元和文档测试实例详解
Apr 11 Python
python循环输出三角形图案的例子
Nov 22 Python
django框架forms组件用法实例详解
Dec 10 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
Python中私有属性的定义方式
Mar 05 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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
Zend引擎的发展 [15]
2006/10/09 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
基于header的一些常用指令详解
2013/06/06 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
详解php命令注入攻击
2019/04/06 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
js评分组件使用详解
2017/06/06 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
Vue.js用法详解
2017/11/13 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
详解Python中的循环语句的用法
2015/04/09 Python
Python AES加密模块用法分析
2017/05/22 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
机电一体化自荐信
2013/12/10 职场文书
心理健康心得体会
2014/01/02 职场文书
行政主管职责范本
2014/03/07 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
横店影视城导游词
2015/02/06 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
MySQL常用慢查询分析工具详解
2022/08/14 MySQL