2011-05-20 88 views
0

我想在持续集成期间测量服务器的CPU和内存使用情况,然后将它们表示为多个图表。我使用循环数据库文件(* .rrd)在java中使用RRD4J库来完成它。用于测量CPU和内存使用情况的RRD

我不知道如何定义轮循档案...... 我已经试过这种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"); 

在这两种情况下,我记录一个措施每秒钟,但我仍然在图表上2分5分钟。我想在同一时期获得更多价值的图表。

回答

0

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

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

此外,你可能想要一个CPU /内存使用GAUGE,而不是一个只有上升的计数器。如果你错误地使用了COUNTER,你会得到尖刻的输出,因为RRD将一个下移解释为溢出,并为该观察增加了一个非常大的数值。

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

+0

非常感谢!我已将步骤更改为5,并将DsType.COUNTER更改为DsType.GAUGE!有用! – Fabien 2011-06-29 09:31:52