我正在尝试用php5-rrd libraire创建rrd图。我正在尝试画(LASTHOUR,LASTHOUR,LASTHOUR,draw但效果不佳(可能我的RRA设置丢失了)。我尝试使用"rrd_update“函数。但不起作用。所以尝试使用"rrd_fetch“函数。但是所有的数据都会出现在-NaN上。
这是我的控制台日志。
1426322479:6249:1817
Array
(
[start] => 1426318800
[end] => 1426322700
[step] => 300
[data] => Array
(
[Users] => Array
(
[1426319100] => NAN
[1426319400] => NAN
[1426319700] => NAN
[1426320000] => NAN
[1426320300] => NAN
[1426320600] => NAN
[1426320900] => NAN
[1426321200] => NAN
[1426321500] => NAN
[1426321800] => NAN
[1426322100] => NAN
[1426322400] => NAN
[1426322700] => NAN
)
[Games] => Array
(
[1426319100] => NAN
[1426319400] => NAN
[1426319700] => NAN
[1426320000] => NAN
[1426320300] => NAN
[1426320600] => NAN
[1426320900] => NAN
[1426321200] => NAN
[1426321500] => NAN
[1426321800] => NAN
[1426322100] => NAN
[1426322400] => NAN
[1426322700] => NAN
)
)
)这是我的PHP代码
$rrdFile = dirname(__FILE__) . "/speed.rrd";
//create rrd file
rrd_create($rrdFile,
array(
"DS:Users:GAUGE:600:0:U",
"DS:Games:GAUGE:600:0:U",
"RRA:AVERAGE:0.5:1:1440",
"RRA:AVERAGE:0.5:5:1440",
"RRA:AVERAGE:0.5:30:800",
"RRA:AVERAGE:0.5:120:800",
"RRA:AVERAGE:0.5:1440:80"
)
);
//update rrd file
if(!(rrd_update($rrdFile,
array(
"N:".rand(0,9999).":".rand(0,9999)
)
))) {
$err = rrd_error();
echo "rrd_update() ERROR: $err\n";
}
// TEST CODE
$result = rrd_fetch( $rrdFile, array( "AVERAGE", "--resolution", "100", "--start", "-1h", "--end", "start+1h" ) );
print_r($result);
//graph output
if(!is_array(rrd_graph(dirname(__FILE__) . "/speed.png",
array(
"--start", "-1h",
"--title", "Status",
"--vertical-label", "Users & Games",
"--width", "600",
"--height", "200",
"DEF:Users=$rrdFile:Users:AVERAGE",
"DEF:Games=$rrdFile:Games:AVERAGE",
"CDEF:cUsers=Users",
"CDEF:cGames=Games",
"LINE:cUsers#FF0000",
"LINE:cGames#00FF00"
)
))) {
$err = rrd_error();
echo "rrd_graph() ERROR: $err\n";
}发布于 2015-03-16 09:18:10
您没有足够的样本数据,因此您的图和RRAs是空的。
您的图表设置为绘制过去1小时的图表;由于您有默认的间隔(5分钟),这意味着只有12个来自最高分辨率RRA的样本。
但是,您没有任何要放入的数据!您只需调用rrd_update一次,时间戳为'now',这甚至不足以填充一个RRA条目(您将需要至少两个样本,间隔5分钟,才能完全填充一个RRA条目)。
如果您希望生成一些测试数据,可以从过去3600秒的时间戳开始,然后添加12个样本,每次迭代增加300个时间戳。这将导致在您的主要(5分钟) RRA中有11个条目,而在次要的25分钟RRA中可能有2个条目。
https://stackoverflow.com/questions/29047167
复制相似问题