当使用 IF 和 UN 将未知值设置为 0 时,RRD 图中的最后一个值有时会变为 0

  • 本文关键字:RRD 最后一个 未知 UN IF 设置 rrdtool
  • 更新时间 :
  • 英文 :


我正在绘制一个包含来自多个 rrd 数据文件的变量的图形。 我还在图表上显示每个变量的最后一个值。 当我使用,例如"CDEF:A=a,UN,0,a,IF,8,",然后在图形上打印变量 A 的最后一个值时,取决于我何时加载图形,即使 rrd 数据文件中的最后一个更新值不是 0,A 的最后一个值有时也会变成 0。 我正在使用 rrdtool 1.4.8。当我使用 "CDEF:A=a,8," 定义 A 时,这种情况不会发生

这是因为您正在使用多个 RRD 文件,并且它们的更新与查询之间存在争用条件。 我已经在"Routers2"通过MRTG数据生成的图表中看到这种情况,并且程序添加了特殊的计算来避免这种情况。

运行图表时,最终点基于当前时间。 但是,我们当前所处的时间段可能尚未在其中一个源 RRD 文件中更新。

例如,假设数据每 5 分钟更新一次。

  • 在 11:59,RRD 文件A更新,11:55 存储桶现已完成。
  • 在 12:01,RRD 文件B更新,12:00 存储桶现已完成。
  • 在 12:03,调用graph函数。 图表的末尾设置为 12:00,因为这是最新的可用数据。
  • 但是,对于 RRD 文件A,最新的可用数据是 11:55,因为我们还没有 12:04 更新。 因此,图中的最后一个数据点是unknown.

这就是为什么您偶尔会在其中一个数据集的末尾得到一个未知数。 这意味着源该数据的 RRD 将在您当前所处的时间窗口结束时更新。

如果您没有未知测试,则图形根本不会显示有问题的点(因为未绘制未知点)。 因此,如果您仔细观察,您会发现图表中的线提前一个像素结束。

以编程方式避免这种情况的一种方法是获取所有组件 RRD 文件的lastupdate时间,然后将其中最早的文件用作图形上的结束时间。 这是routers2软件避免此问题的方法。

相关内容

  • 没有找到相关文章

最新更新