rrddump XML 格式的文档在哪里?

shr*_*yas 5 rrdtool

我正在使用 rrdtools 来存储我的服务器的指标,并想使用 rrddump 命令将此 rrd 转储到 XML。所以需要这种 XML 格式的文档,我在哪里可以找到它?

小智 7

没有专门针对 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>
Run Code Online (Sandbox Code Playgroud)

在这个特别的语法定义中,我使用省略号 (...) 来表示元素的基数是 1 或更多。

这种结构可以描述为:每个循环数据库(<rrd>)都有一个或多个数据源(<ds>)和一个或多个循环归档(<rra>)。每个<rra> 包含一个具有多行(<row>)的数据库(<database>)。每个<row>有多个值(<v>),其个数对应<rrd>定义的数据源个数(<ds>)。

数据源元素 (< ds >) 定义了每个将被监控的数据源 (DS) 的数据特征:

  • <名称>:DS 的自由文本名称
  • < step >:数据采集的采样率,以秒为单位。假设每个主数据点 (PDP) 都在自上次 PDP 后恰好几秒的时间点存储数据。如果未指定,则使用默认值 300。
  • < type >:捕获的测量类型 - { COUNTER | 派生 | 绝对| GAUGE } 声明为 COUNTER 的 DS 将保存值在一个步骤周期内的变化率。这假设该值始终在增加(当前值与前一个值之间的差值大于 0)。路由器上的流量计数器是使用 COUNTER 作为 DST 的理想选择。DERIVE 与 COUNTER 相同,但它也允许负值。如果您想查看服务器上可用磁盘空间的变化率,那么您可能需要使用 DERIVE 数据类型。ABSOLUTE 也保存了变化率,但它假定前一个值设置为 0。当前值与前一个值之间的差值始终等于当前值。GAUGE 不保存变化率。它保存了实际值本身。没有划分或计算。服务器中的内存消耗是量规的典型示例。
  • < minimum_heartbeat >:我们可以在没有更新的情况下进行的最长时间(以秒为单位)。例如,如果 minimum_heartbeat = 120 并且我们在 120 秒内没有听到值,则此间隔的主要数据点设置为 UNKNOWN。
  • < min >:数据源的最小可记录值
  • <max>:数据源的最大可记录值
  • <last_ds>:??
  • <值>:??

Round Robin Archive 元素 (< rra >) 定义了 RRD 中每个存档的测量特性。

存档由每个定义的数据源 (DS) 的许多数据值或统计信息组成。< rra > 的元素是:

  • < cf >:档案的合并功能 - { AVERAGE | 最小 | 最大 | 最后的 }。PDP 根据合并功能进行聚合或过滤。
  • < pdp_per_row >:构成记录值的 PDP 数量。如果 pdp_per_row 大于 1,则将根据 < cf > 聚合或过滤 PDP。< pdp_per_row > 和 DS < step > 的乘积给出了 < rra > 中每条记录的采样率(以秒为单位)。例如,如果 DS < step > = 300 和 < pdp_per_row > = 6,< rra > = 1800 秒的采样率。
  • < xff >:“XFiles Factor (XFF)”。在不使记录值未知的情况下可以未知的 PDP 的百分比。
  • < cdp-prep >: ??
  • <数据库>:<rra>存储的数据。一个<database>由多个<row>元素组成,每个元素的<v>元素的数量等于为<rrd>定义的DataSource元素(<ds>)的数量。< v > 元素存储通过 rrdupdate 函数调用写入 RRD 文件的采样数据 - 换句话说,由 RRD 与之连接的监控工具生成的数据。

有一些元素我无法找到解释。它们被标记为??。