RRDB仅包含NaN

问题描述 投票:2回答:1

我在我的rrdb中获得所有NaN。为什么?

rrdtool create temps.rrd --step 120 \
  DS:temp:GAUGE:250:-10:212 \
  DS:rate:DERIVE:250:-10:212 \
  DS:setpoint:GAUGE:250:-10:212 \
  RRA:AVERAGE:0.3:1:43200

经过一夜收集数据并每2分钟更新一次,如下所示:

 /usr/bin/rrdupdate temps.rrd N:30.8:30.8:9.6

DS正在改变,但RRA没有任何条目。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
<!-- Round Robin Database Dump -->
<rrd>
        <version>0003</version>
        <step>120</step> <!-- Seconds -->
        <lastupdate>1375360140</lastupdate> <!-- 2013-08-01 07:29:00 CDT -->

        <ds>
                <name> temp </name>
                <type> GAUGE </type>
                <minimal_heartbeat>250</minimal_heartbeat>
                <min>-1.0000000000e+01</min>
                <max>2.1200000000e+02</max>

                <!-- PDP Status -->
                <last_ds>60.1</last_ds>
                <value>NaN</value>
                <unknown_sec> 60 </unknown_sec>
        </ds>

        <ds>
                <name> rate </name>
                <type> DERIVE </type>
                <minimal_heartbeat>250</minimal_heartbeat>
                <min>-1.0000000000e+01</min>
                <max>2.1200000000e+02</max>

                <!-- PDP Status -->
                <last_ds>59.9</last_ds>
                <value>NaN</value>
                <unknown_sec> 60 </unknown_sec>
        </ds>

        <ds>
                <name> setpoint </name>
                <type> GAUGE </type>
                <minimal_heartbeat>250</minimal_heartbeat>
                <min>-1.0000000000e+01</min>
                <max>2.1200000000e+02</max>

                <!-- PDP Status -->
                <last_ds>60.0</last_ds>
                <value>NaN</value>
                <unknown_sec> 60 </unknown_sec>
        </ds>
        <!-- Round Robin Archives -->
        <rra>
                <cf>AVERAGE</cf>
                <pdp_per_row>1</pdp_per_row> <!-- 120 seconds -->

                <params>
                <xff>3.0000000000e-01</xff>
                </params>
                <cdp_prep>
                        <ds>
                        <primary_value>NaN</primary_value>
                        <secondary_value>NaN</secondary_value>
                        <value>NaN</value>
                        <unknown_datapoints>0</unknown_datapoints>
                        </ds>
                        <ds>
                        <primary_value>NaN</primary_value>
                        <secondary_value>NaN</secondary_value>
                        <value>NaN</value>
                        <unknown_datapoints>0</unknown_datapoints>
                        </ds>
                        <ds>
                        <primary_value>NaN</primary_value>
                        <secondary_value>NaN</secondary_value>
                        <value>NaN</value>
                        <unknown_datapoints>0</unknown_datapoints>
                        </ds>
                </cdp_prep>
                <database>
                        <!-- 2013-06-02 07:30:00 CDT / 1370176200 --> <row><v>NaN</v><v>NaN</v><v>NaN</v></row>
                        <!-- 2013-06-02 07:32:00 CDT / 1370176320 --> <row><v>NaN</v><v>NaN</v><v>NaN</v></row>
                        <!-- 2013-06-02 07:34:00 CDT / 1370176440 --> <row><v>NaN</v><v>NaN</v><v>NaN</v></row>

many lines, all NaN

                        <!-- 2013-08-01 07:26:00 CDT / 1375359960 --> <row><v>NaN</v><v>NaN</v><v>NaN</v></row>
                        <!-- 2013-08-01 07:28:00 CDT / 1375360080 --> <row><v>NaN</v><v>NaN</v><v>NaN</v></row>
                </database>
        </rra>
</rrd>
rrdtool
1个回答
1
投票

你的问题是你实际上并没有存储任何数据;你的rrdupdate调用失败了。

如果从命令行运行rrdupdate命令,您将立即看到错误:

$ rrdtool update temps.rrd N:30.8:31.2:9.1
ERROR: temps.rrd: not a simple signed integer: '31.2'

这样做的原因是,虽然第一个和第三个DS是GAUGE类型,但第二个类型是DERIVE。这是一个(记录不完整)事实,当数据类型为GAUGE时,您只能使用非整数值。

所以,你有四个选择 -

  • 确保你的第二个值(对于'rate')始终是一个整数
  • 将其更改为键入GAUGE并传递速率而不是值
  • 完全删除第二个DS,并在显示数据时动态计算
  • rate DS替换为COMPUTE DS类型以在存储时计算

最后一个可能是最好的选择,但需要一些工作。

© www.soinside.com 2019 - 2024. All rights reserved.