0

我正在尝试创建 COMMAND JSON 数据源来监视一些值,例如来自这样的脚本:

print json.dumps({
    'values': {
        '': {'random': random()},
    },
    'events': []
})

当我刚开始 zencommand 时,会创建适当的 rrd 文件,但图表上的 cur、avg 和 max 值显示 NaN。当我放大到当前时间点时,NaN 被实际数字取代,这距离监控开始不远。

为什么在我放大之前它没有显示正确的最小值、最大值和平均值?这是否与合并有关?我读了http://www.vandenbogaerdt.nl/rrdtool/min-avg-max.php,但是那个页面没有告诉任何关于 NaN 值的信息。

有什么方法可以更快地放大当前时间戳以更快地查看一些数据?

4

1 回答 1

1

当您缩小时,您将看到较低粒度的 RRA(Round Robin Archives)。在更高粒度的数据中有足够的数据之前,这些数据不会被填充;因此,例如,如果您有一个 5 分钟粒度 RRA、一个 1 小时粒度 RRA 和一个 1 天粒度 RRA,并且收集了过去 45 分钟的数据,那么您将在“每日”图表中看到约 8 个数据点(使用 5 分钟 RRA),但您的“每月”(将使用 1 小时 RRA)或“每年”(使用 1 天 RRA)中没有任何内容。

这适用于任何 RRA;AVG、LAST、MAX 等。直到合并的时间窗口完成,并且已收集完整的主要数据点以进行合并,合并的数据点值是未定义的。

RRDTool 根据请求的图形数据宽度和像素宽度以及请求的合并函数选择要使用的 RRA。尽管有一些方法可以强制 RRDtool 使用比它需要的更高粒度的 RRA,并在运行中进行整合,但这是低效且缓慢的。它还使低粒度 RRA 变得毫无意义,并抛弃了 RRDtool 的主要优点之一(它在更新时执行合并,从而加快绘图速度)

于 2014-07-13T21:50:17.467 回答