1

我想在持续集成期间测量服务器的 CPU 和内存使用情况,并将它们表示为几个图表。我使用循环数据库文件 (*.rrd) 在带有 RRD4J 库的 java 中执行此操作。

我不知道如何定义循环存档...我尝试过这种 RRA:

rrdDefCPU.addDatasource("CPU", DsType.COUNTER, 150, 0, 100);
rrdDefCPU.addArchive("RRA:AVERAGE:0.5:8:300"); 

或者

rrdDefCPU.addDatasource("CPU", DsType.COUNTER, 600, 0, 100);
rrdDefCPU.addArchive("RRA:AVERAGE:0.5:1:600"); 

在这两种情况下,我每秒记录一个测量值,但在 5 分钟内我仍然在图表上记录 2 个点。我想要一个在同一时期有更多值的图表。

4

1 回答 1

1

如果您在 5 分钟间隔内没有看到更多细节,那么我猜您的步长是 5 分钟,并且您是通过复制演示代码获得的。请在您的问题中显示您的 RrdDef 构造函数。

RrdDef rrdDef = new RrdDef(rrdPath, startTime, 300); // step size 300s

此外,您可能需要一个用于 CPU/内存使用的 GAUGE,而不是一个只会上升的 COUNTER。如果您错误地使用 COUNTER,您会得到尖峰输出,因为 RRD 将向下移动解释为溢出,并在该观察中添加了非常大的数量。

在您的代码中,您正在改变 Heartbeat 大小,它与 Xff 结合以确定输入中允许的大小差距。如果你有连续的数据,你不会看到改变 HB 的任何影响。

于 2011-06-28T16:52:12.917 回答