我正在使用大量的rrd文件,我只是注意到我的一些rrd图显示了空图,尽管最近有一个lastupdate。我刚刚在我的rrd文件上做了一个rrdtool信息,发现了一些有趣的东西。在具有空文件的rrd文件中,它们的值为0.以下是一个示例:
devserv161
rra[0].rows = 100000
ds[FLUSHER_READ].minimal_heartbeat = 480
ds[WRITE].last_ds = 2030.10630219402
rra[0].cdp_prep[1].unknown_datapoints = 0
ds[WRITE].type = GAUGE
ds[WRITE].index = 1
rra[0].cf = AVERAGE
ds[FLUSHER_READ].unknown_sec = 15
step = 80
rra[0].cdp_prep[2].unknown_datapoints = 0
ds[FLUSHER_READ].value =
ds[WRITE].max =
rra[0].pdp_per_row = 1
ds[FLUSHER_READ].index = 2
ds[READ].type = GAUGE
rrd_version = 0003
rra[0].cdp_prep[1].value =
ds[READ].unknown_sec = 15
ds[WRITE].minimal_heartbeat = 480
last_update = 1428948095
ds[READ].min =
header_size = 1208
ds[READ].minimal_heartbeat = 480
ds[WRITE].unknown_sec = 15
ds[FLUSHER_READ].type = GAUGE
ds[WRITE].value =
rra[0].cur_row = 53085
rra[0].cdp_prep[0].unknown_datapoints = 0
ds[READ].max =
ds[FLUSHER_READ].max =
ds[FLUSHER_READ].min =
ds[READ].index = 0
rra[0].cdp_prep[0].value =
rra[0].xff = 0.999
ds[READ].value =
ds[WRITE].min =
ds[READ].last_ds = 1417.90542990501
filename = devserv161.rrd
rra[0].cdp_prep[2].value =
ds[FLUSHER_READ].last_ds = 74.1351542318656
任何关于为什么.values为0而不是具有值的帮助将非常感激。每10分钟左右添加一个新值。
答案 0 :(得分:0)
如果RRA中的值为零(而不是未知),则表示您在DS中存储了零。
如果您的DS类型为'计数器'或者'派生'当实际数据类型为' gauge'时,你就可以存储零。但是,在您的情况下,您的DS是GAUGE类型,因此情况并非如此。
如果您尝试在DS的最小/最大值之外存储值,则它将存储未知。同样,如果您在更新之间留下太长的时间并且心跳过期,那么它也会存储未知。
虽然您的图形功能可能设置为将未知数显示为零,从而产生空图形,但您告诉我们您没有未知数据点,并且RRA中的值实际上为零。因此,您必须意外设置零。
您应检查更新代码,并可能将正在写入的值或rrdupdate命令行记录到单独的调试文本文件中。您可能会发现您正在使用零更新,或者正在使用rrdupdate的错误语法导致零更新。