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调用windows api锁定计算机示例
Apr 17 Python
Python写的一个简单DNS服务器实例
Jun 04 Python
Python中的进程分支fork和exec详解
Apr 11 Python
详解Python中time()方法的使用的教程
May 22 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
django主动抛出403异常的方法详解
Jan 04 Python
Python离线安装PIL 模块的方法
Jan 08 Python
python list多级排序知识点总结
Oct 23 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
Django静态文件加载失败解决方案
Aug 26 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
详解python3 GUI刷屏器(附源码)
Feb 18 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
php中文件上传的安全问题
2006/10/09 PHP
简单的PHP图片上传程序
2008/03/27 PHP
Smarty Foreach 使用说明
2010/03/23 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
Python快速从注释生成文档的方法
2016/12/26 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
基于Python实现扑克牌面试题
2019/12/11 Python
Spy++的使用方法及下载教程
2021/01/29 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
结婚喜宴家长答谢词
2014/01/15 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
工作保证书怎么写
2015/02/28 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis