没有专门针对RRD文件的XML格式的文档,但可以从二进制RRD格式的文档中派生,如下所示:
本指南已从以下网站的信息汇集在一起:
另请参阅rrdtool网站上的文档。
RRD XML文件的基本结构是:
<rrd> <version /> <step /> <lastupdate /> <ds> <name /> <type /> <step /> <minimal_heartbeat /> <min /> <max /> <last_ds /> <value /> <unknown_sec /> </ds> ... <rra> <cf /> <pdp_per_row /> <xff /> <cdp_prep> <ds> <value /> <unknown_datapoints /> </ds> ... <cdp_prep> <database> <row> <v /> ... </row> ... </database> </rra>... </rrd>
在这个特别的语法定义中,我用椭圆(…)来表示元素的基数是1或更多。
该结构可以描述为:每个循环数据库(<rrd>)具有一个或多个数据源(<ds>)和一个或多个循环归档(<rra>)。 每个<rra>包含一个具有多行(<row>)的数据库(<数据库>)。 每个<row>具有多个值(<v>),其数目对应于为<rrd>定义的数据源数量(<ds>)。
数据源元素(<ds>)定义了将被监视的每个数据源(DS)的数据特征:
- <名称>:DS的自由文本名称
- <step>:数据采集的采样率,以秒为单位。 假定每个主数据点(PDP)在自上一次PDP以来的恰好几秒的时间点存储数据。 如果未指定,则使用默认值300。
- <type>:捕获的度量types – {COUNTER | DERIVE | 绝对| GAUGE}声明为COUNTER的DS将在一个步长内保存该值的变化率。 这假定值始终在增加(当前值和前一个值之间的差值大于0)。 路由器上的stream量计数器是使用COUNTER作为DST的理想select。 DERIVE与COUNTER相同,但也允许负值。 如果要查看服务器上可用磁盘空间的更改速率,则可能需要使用DERIVE数据types。 ABSOLUTE也会保存更改的速率,但是它假定前一个值被设置为0.当前值和以前值之间的差值总是等于当前值。 GAUGE不保存变化率。 它保存了实际的价值本身。 没有分裂或计算。 服务器中的内存消耗是衡量标准的典型例子。
- <minimal_heartbeat>:最大时间(以秒为单位),我们可以不更新。 例如,如果minimal_heartbeat = 120并且我们超过了120秒而没有听到一个值,那么这个间隔的主数据点被设置为UNKNOWN。
- <min>:数据源的最小可logging值
- <max>:数据源的最大可logging值
- <last_ds>:??
- <value>:??
循环归档元素(<rra>)定义RRD中每个归档的度量特性。
归档文件由每个定义的数据源(DS)的许多数据值或统计数据组成。 <rra>的元素是:
- <cf>:存档的合并function – {AVERAGE | MIN | MAX | LAST}。 根据合并function对PDP进行汇总或过滤。
- <pdp_per_row>:将构成logging值的PDP的数量。 如果pdp_per_row大于1,PDP将根据<cf>进行聚合或过滤。 <pdp_per_row>和DS <step>的乘积给出了<rra>中每条logging的采样率(以秒为单位)。 例如,如果DS <step> = 300并且<pdp_per_row> = 6,则采样率= 1800秒。
- <xff>:“XFiles因子(XFF)”。 未知logging值的情况下,PDP的百分比可能是未知的。
- <cdp-prep>:??
- <database>:由<rra>存储的数据。 一个<数据库>由多个<row>元素组成,每个元素的<v>元素的数量等于为<rrd>定义的数据源元素(<ds>)的数量。 <v>元素存储通过rrdupdate函数调用写入RRD文件的采样数据 – 换句话说,由RRD所连接的监视工具生成的数据。
有几个因素我没有find解释。 他们被标记?