RRDB Contains Only NaN



我正在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>

您的问题是实际上没有存储任何数据;您的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时,第二DS是类型DERIVE。当数据类型为GAUGE时,只能使用非整数值,这是一个(记录不足)事实。

所以,你有四个选择-

  • 确保您的第二个值(表示"rate")始终为整数
  • 将其更改为类型GAUGE并传递速率而不是值
  • 完全删除第二个DS,并在显示数据时实时计算
  • rate DS替换为COMPUTE DS类型,以便在存储时进行计算

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

相关内容

  • 没有找到相关文章

最新更新