<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AgilePHP &#187; python-pyrrd</title>
	<atom:link href="http://www.agilephp.net/tag/python-pyrrd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agilephp.net</link>
	<description>开发可以敏捷，人生需要慢慢体味</description>
	<lastBuildDate>Thu, 03 Nov 2011 11:53:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Python and RRD</title>
		<link>http://www.agilephp.net/2010/01/python-and-rrd/</link>
		<comments>http://www.agilephp.net/2010/01/python-and-rrd/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 01:33:33 +0000</pubDate>
		<dc:creator>bbiao</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python-pyrrd]]></category>
		<category><![CDATA[python-rrd]]></category>
		<category><![CDATA[python-rrdtool]]></category>
		<category><![CDATA[rrd]]></category>
		<category><![CDATA[rrdtool]]></category>
		<category><![CDATA[xenserver]]></category>
		<category><![CDATA[时序数据库]]></category>

		<guid isPermaLink="false">http://www.agilephp.net/2010/01/python-and-rrd/</guid>
		<description><![CDATA[RRD是Round Robin Database的意思，RRDTool是用来管理RRD的一个工具。RRDTool的主页在这里，Wikipedia的页面在这里。RRD其实就是一个时序数据库，使用一个固定大小的环型buffer，适用于存储一些统计性的信息，如CPU负载呀，气温变化呀。我为什么要说这个东西呢，因为XenServer里的性能统计是用的RRD，你可以访问诸如http://xenserver-host/rrd_updates?cf=AVERAGE&#38;interval=5&#38;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文件吧。 相关文章 在Google App Engine上进行开发 了解一些“云” AOP in PHP<h3>相关文章</h3>
<ol>
		<li><a href="http://www.agilephp.net/2009/10/dev-in-google-app-engine/" rel="bookmark">在Google App Engine上进行开发</a><!-- (8)--></li>
		<li><a href="http://www.agilephp.net/2009/08/cloud-to-overview/" rel="bookmark">了解一些“云”</a><!-- (4.8)--></li>
		<li><a href="http://www.agilephp.net/2009/09/aop-in-php/" rel="bookmark">AOP in PHP</a><!-- (3.8)--></li>
	</ol>
]]></description>
			<content:encoded><![CDATA[<p>RRD是Round Robin Database的意思，<a href="http://oss.oetiker.ch/rrdtool/ " target="_blank">RRDTool</a>是用来管理RRD的一个工具。<a href="http://oss.oetiker.ch/rrdtool/ " target="_blank">RRDTool</a>的<a href="http://oss.oetiker.ch/rrdtool/ " target="_blank">主页</a>在这里，Wikipedia的页面在<a href="http://en.wikipedia.org/wiki/RRDtool" target="_blank">这里</a>。RRD其实就是一个时序数据库，使用一个固定大小的<a href="http://en.wikipedia.org/wiki/Circular_buffer" target="_blank">环型buffer</a>，适用于存储一些统计性的信息，如CPU负载呀，气温变化呀。我为什么要说这个东西呢，因为XenServer里的性能统计是用的RRD，你可以访问诸如<a href="http://xenserver-host/rrd_updates?cf=AVERAGE&amp;interval=5&amp;start=123131321">http://xenserver-host/rrd_updates?cf=AVERAGE&amp;interval=5&amp;start=123131321</a>形式的网址来获取统计信息。XenServer将返回一个XML文件，这个XML文件其实就是用rrdtool里的export工具导出的。</p>
<p>好，下载完成了这个文件以后，我们假设文件名是data.xml，你可以使用rrdtool restore data.xml data.rrd的方式将数据重新恢复成rrd的格式，然后就可以使用rrdtool进行一系列操作。rrdtool的操作可以写十篇博客，这不是我今天想说的重点。</p>
<p>我今天想说的是，当我把rrdtool跟Python集成的时候，发现Python提供了若干封装的工具，比如Python-PyRRD，Python-rrd，Python-rrdtool，我想没几个人能搞明白这几者之间的关系吧。我来说一下。</p>
<p>Python-rrdtool，这个就是rrdtool的一个Python封装，调用方式与rrdtool里命令的格式是一致的。</p>
<p>Python-rrd，这个据说应该是rrdtool的前身，命名方式不符合Python的命名策略，所以改名成了Python-rrdtool，但是debian和ubuntu的源里还保留了一个过渡性质的傀儡包（transitional dummy package），其实就是Python-rrdtool</p>
<p>Python-PyRRD，这个是OO化的rrdtool封装，个人比较推荐用这个包，方便，代码也更容易让人理解。</p>
<p>另外，Java也提供了两个rrdtool的封装，一个是<a href="http://www.jrobin.org/" target="_blank">JRobin</a>，一个是<a href="https://rrd4j.dev.java.net/" target="_blank">rrd4j</a>，后者是在前者的基础上做的，提供了更好的OO的支持和性能。但是这两个项目似乎更新得很慢，XenServer导出的rrd数据（version 0003）他们现在不支持（只支持到version 0001）。所以想用Java分析XenServer的性能，还是自己去解析那个xml文件吧。</p>
<h3>相关文章</h3>
<ol>
		<li><a href="http://www.agilephp.net/2009/10/dev-in-google-app-engine/" rel="bookmark">在Google App Engine上进行开发</a><!-- (8)--></li>
		<li><a href="http://www.agilephp.net/2009/08/cloud-to-overview/" rel="bookmark">了解一些“云”</a><!-- (4.8)--></li>
		<li><a href="http://www.agilephp.net/2009/09/aop-in-php/" rel="bookmark">AOP in PHP</a><!-- (3.8)--></li>
	</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.agilephp.net/2010/01/python-and-rrd/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

