`

Python and RRD

 
阅读更多

RRD是Round Robin Database的意思,RRDTool是用来管理RRD的一个工具。RRDTool主页在这里,Wikipedia的页面在这里

 

RRD其实就是一个时序数据库,使用一个固定大小的环型buffer,适用于存储一些统计性的信息,如CPU负载呀,气温变化呀。我为什么要说这个东西呢,因为XenServer里的性能统计是用的RRD,你可以访问诸如http://xenserver-host/rrd_updates?cf=AVERAGE&interval=5&start=123131321形式的网址来获取统计信息。XenServer将返回一个XML文件,这个XML文件其实就是用rrdtool里的export工具导出的。

 

好,下载完成了这个文件以后,我们假设文件名是data.xml,你可以使用rrdtool restore data.xml data.rrd的方式将数据重新恢复成rrd的格式,然后就可以使用rrdtool进行一系列操作。rrdtool的操作可以写十篇博客,这不是我今天想说的重点。

 

我今天想说的是,当我把rrdtool跟Python集成的时候,发现Python提供了若干封装的工具,比如Python-PyRRD,Python-rrd,Python-rrdtool,我想没几个人能搞明白这几者之间的关系吧。我来说一下。

 

Python-rrdtool,这个就是rrdtool的一个Python封装,调用方式与rrdtool里命令的格式是一致的。

 

Python-rrd,这个据说应该是rrdtool的前身,命名方式不符合Python的命名策略,所以改名成了Python-rrdtool,但是debian和ubuntu的源里还保留了一个过渡性质的傀儡包(transitional dummy package),其实就是Python-rrdtool

Python-PyRRD,这个是OO化的rrdtool封装,个人比较推荐用这个包,方便,代码也更容易让人理解。

 

另外,Java也提供了两个rrdtool的封装,一个是JRobin,一个是rrd4j,后者是在前者的基础上做的,提供了更好的OO的支持和性能。但是这两个项目似乎更新得很慢,XenServer导出的rrd数据(version 0003)他们现在不支持(只支持到version 0001)。所以想用Java分析XenServer的性能,还是自己去解析那个xml文件吧。

 

这篇文章也发表在AgilePHP上,去看看,Python and RRD

分享到:
评论

相关推荐

    rrd4j 读取rrd文件

    通过Java查询rrd文件,可以通过java查看rrd文件信息,通过开始时间,截止时间查询rrd文件数据,该jar是linux版本,兼容各linux版本

    rrd文件查看器

    rrd文件查看器

    rrd4j开发jar包

    《rrd4j开发jar包详解》 在Java开发领域,rrd4j是一个不可或缺的工具,它是一个轻量级的、高效的时序数据库库,主要用于存储和处理时间序列数据。rrd4j这个名字来源于“Round Robin Database for Java”,它是对...

    Smokeping 产生的rrd文件 分析 读取

    【 Smokeping 产生的rrd文件分析与读取】 在IT监控领域,Smokeping是一个非常流行的网络延迟和丢包率监测工具。它通过RRDTool(Round Robin Database Tool)存储收集到的数据,RRDTool是一种高效的数据存储系统,...

    RRD环形数据库操作.rar

    RRD(Round Robin Database)是一种特殊类型的数据库,主要用于存储时间序列数据,如系统监控、网络流量统计、服务器性能指标等。RRD的核心理念是通过有限的磁盘空间,以固定的时间间隔存储数据点,实现对历史数据的...

    java rrd library

    Java RRD库是一种用于在Java应用程序中创建、更新和读取Round Robin Database (RRD)文件的工具。RRD数据库是一种高效的数据存储格式,最初由Raffael Bircher开发,主要用于存储时间序列数据,如系统监控数据、网络...

    瑞蕊RRD300CPE编程器固件

    标题中的“瑞蕊RRD300CPE编程器固件”指的是瑞蕊公司生产的RRD300CPE型号的编程器所使用的固件。固件,全称为Firmware,是存储在硬件设备内部的软件,它控制设备的操作、功能和行为。在这个特定的情况下,固件是为...

    关于rrd文件大量并发写的I/O问题调研(二)

    本文将聚焦于RRD(Round Robin Database)文件系统在处理大量并发写入I/O问题上的挑战,以及如何进行调研和优化。RRD是一种特别设计用于存储时间序列数据的数据结构,常见于监控和性能分析工具中,如Nagios和Cacti。...

    开源需求管理工具 rrd

    rrd,全称可能为“Requirements and Resource Director”,是一款专为Linux平台设计的开源需求管理工具。它旨在帮助项目团队有效地跟踪、组织和管理项目的需求,同时提供资源分配和项目进度监控功能。rrd的开源特性...

    关于rrd文件大量并发写的I/O问题调研(一)

    本文将聚焦于RRD(Round Robin Database)文件在面临大量并发写入时的I/O问题,这是一个在系统监控和数据存储中常见的挑战。RRD是一种轻量级的时间序列数据库,主要用于存储和聚合周期性数据,如网络流量、CPU利用率...

    RRD时序数据库实现C源码

    RRD(Round Robin Database,循环记录数据库)是一种用于存储时间序列数据的轻量级数据库,由Tobi Oetiker在1998年创建。它主要用于监控网络设备、服务器性能等,通过定期收集数据并存储在高效的数据结构中,便于...

    Zabbix与RRDtool绘图之创建每台主机每张图的rrd文件.docx

    - **Python实现**:使用Python语言编写了创建RRD文件的脚本。其中`rrdtool.create()`函数被用来创建RRD文件,同时通过定义不同的函数(如`Item01`、`Item02`、`Item03`等)来处理不同类型的监控数据。 #### 知识点...

    nginx+php+nginx-rrd安装.txt

    nginx+php+nginx-rrd安装笔记、只是简单记录命令等操作、重要的事情说两遍,我承认,这个字数太多了,只是在凑字数。

    rrd4j 测试报告

    **rrd4j 测试报告** rrd4j(Round Robin Database for Java)是一个开源的、用Java编写的时序数据库,主要用于存储和检索时间序列数据,如系统性能监控、网络流量统计等。本测试报告关注的是rrd4j在处理大量数据时...

    rrd-1.1.3.tgz

    标题中的"rrd-1.1.3.tgz"是一个软件包的名称,通常在Linux环境中,这样的命名格式表示这是一个采用tar和gzip压缩的文件。rrd可能代表"Round Robin Database",这是一个流行的时间序列数据库工具,用于存储和图形化...

    Rrd2Svg:用于将收集的RRD文件转换为SVG的Java类。-开源

    可以通过“收集”守护程序将系统统计信息存储到RRD文件中。 请查看:http://oss.oetiker.ch/rrdtool/ https://collectd.org/上:...

    RRD介绍及应用文档

    本文档主要介绍了RRD时序数据库的基本原理和使用说明。

    RRD.zip_www.18rrd.com

    而`RRD`可能是项目的主程序文件或数据文件,其中包含了具体实现遗传算法的MATLAB代码。代码中可能包括了定义问题、设定参数、初始化种群、执行遗传操作以及结果评估等关键部分。 总的来说,这个项目展示了如何利用...

    create_rrd_data.rar_大数据

    开发语言:python 系统环境为linux 此脚本可为cacti或其他利用rrd绘图的工具生成新的数据,例如由于一些意外原因导致rrd数据部分丢失,可以用此脚本恢复,但生成的数据并不是真实数据,而是根据丢失前后的数据分析...

    知乎日报 RRD.zip

    《知乎日报RRD:Flux、Retrofit、RxJava与Dagger2的完美结合》 在IT领域,开源项目一直是推动技术进步的重要力量。今天我们要深入探讨的是一个名为"知乎日报RRD.zip"的开源项目,它巧妙地融合了Retrofit、RxJava、...

Global site tag (gtag.js) - Google Analytics