【问题标题】:How do RRD values in a database dump translate to the input values?数据库转储中的 RRD 值如何转换为输入值?
【发布时间】:2016-12-01 16:38:12
【问题描述】:

我无法理解我在循环数据库中保存的值。我使用rrdtool dump mydatabase 进行转储,然后得到数据的转储。我找到了最新的更新,并将其与我的rrd update 命令相匹配:

$rrdupdate --template=var1:var2:var3:var4:var5 N:15834740:839964:247212:156320:13493356

在匹配时间戳的转储中,我找到了这些值:

<!-- 2016-12-01 10:30:00 CST / 1480609800 --> <row><v>9.0950245287e+04</v><v>4.8264158237e+03</v><v>1.4182428703e+03</v><v>8.9785764359e+02</v><v>7.7501969607e+04</v></row>

第一个值应该是var1。超出科学计数法,即 90,950.245287,与我的输入值完全不匹配。 (它们都不是十进制的。)

为了能够将转储中的值转换为我输入的标准值,我需要做些什么特别的事情吗?

【问题讨论】:

    标签: database scientific-notation rrdtool rrd database-dump


    【解决方案1】:

    我无法为您提供具体情况,因为您没有显示 RRD 文件的完整定义(内部结构、DS 定义等),但是...

    存储在 RRDTool 数据库中的值会经过数据规范化,然后转换为费率(除非 DS 是 Gauge 类型,在这种情况下,它们已被假定为费率)。

    标准化是在线性基础上调整值以使其完全符合时间间隔(通常为 300 秒)定义的时间序列。

    如果您想查看存储的值与您编写它们时完全一样,您需要将 DS 类型设置为“量规”,并使规范化成为一个空步骤。执行后者的唯一方法是将值精确地存储在时间边界上。因此,如果 Interval 为 300s,则存储在 12:00:00、12:05:00 等 - 否则将调整值。

    Alex van den Bogaerdt's tutorial 中有更多关于规范化的信息——它是什么,以及为什么这样做——

    【讨论】:

      猜你喜欢
      • 2017-08-25
      • 2021-09-03
      • 2021-01-22
      • 2019-11-24
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      相关资源
      最近更新 更多