RRDTool:无法弄清楚如何更新数据库

时间:2012-10-04 15:33:46

标签: cron rrdtool rrd

我正在尝试设置RRD,但我似乎无法让数据库存储任何值。

以下是我创建数据库的方法:

rrdtool create test.rrd -s 60 \
DS:local_alloc_procs:GAUGE:10:0:U \
RRA:AVERAGE:0.5:1:10080

我有一个脚本,cron每分钟运行一次以更新数据库:

* * * * * /home/A01113531/Documents/scripts/Cluster/rrdtool/updatescript

updatescript:

#!/bin/bash

export LD_LIBRARY_PATH=/home/A01113531/rrdtool/lib:/rc/tools/free/redhat_6_x86_64/moab-7.0.1/lib:/rc/tools/free/redhat_6_x86_64/torque-4.1.2/lib:/rc/tools/free/redhat_6_x86_64/pbs-drmaa-1.0.12/lib:$LD_LIBRARY_PATH
export PATH=/home/A01113531/rrdtool/bin:/rc/tools/free/redhat_6_x86_64/moab-7.0.1/bin:/rc/tools/free/redhat_6_x86_64/torque-4.1.2/bin:/rc/tools/free/redhat_6_x86_64/pbs-drmaa-1.0.12/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH
export MOABHOMEDIR=/rc/moab/server

RRDTOOL='/home/A01113531/rrdtool/bin/rrdtool'
FILE='/home/A01113531/Documents/scripts/Cluster/rrdtool/test.rrd'
COMMAND=$(/home/A01113531/Documents/scripts/Cluster/rrdtool/parser.py -t cluster | grep LocalAllocProcs | awk '{print $2}')
$RRDTOOL update $FILE N:$COMMAND

这是rrdtool信息的输出输出:

filename = "test.rrd"
rrd_version = "0003"
step = 60
last_update = 1349364541
header_size = 584
ds[local_alloc_procs].index = 0
ds[local_alloc_procs].type = "GAUGE"
ds[local_alloc_procs].minimal_heartbeat = 10
ds[local_alloc_procs].min = 0.0000000000e+00
ds[local_alloc_procs].max = NaN
ds[local_alloc_procs].last_ds = "1217"
ds[local_alloc_procs].value = NaN
ds[local_alloc_procs].unknown_sec = 1
rra[0].cf = "AVERAGE"
rra[0].rows = 10080
rra[0].cur_row = 3827
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0

从中可以看出,last_ds获取的是有效数字,但由于某种原因,值没有从NaN更改。

我已经坚持了一段时间,我们非常感谢任何帮助或提示。

丹佛

1 个答案:

答案 0 :(得分:1)

我刚刚遇到了这个问题,几乎把我所有的头发都撕掉了。

似乎rrd非常有趣地接受数据,因为它不期待数据。在我的情况下,我将步数设置为3600(每小时),但心跳设置为10秒。基本上如果rrd没有在一小时的前10秒内获得更新,它将忽略我的更新。

在你的情况下,你似乎每隔60秒就有一个步,但心跳速度为10秒。尝试将心跳改为60秒,看看它们是否有帮助。