[英]PHP-RRD Wasn't Work
我正在尝试通过php5-rrd libraires创建rrd图。 我正在尝试绘制(LASTHOUR,LASTDAY,LASTWEEK,LASTMONTH)图。 但效果不好,(也许我的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";
}
您没有足够的样本数据,因此您的图形和RRA为空。
您的图表设置为最近1小时的图表; 由于您具有默认间隔(5分钟),因此这意味着最高分辨率的RRA仅包含12个样本。
但是,您没有任何数据输入! 您只需要使用“ now”时间戳调用一次rrd_update
,这甚至不足以填充一个RRA条目(您将需要至少两个样本,并且间隔5分钟才能完全填充RRA条目)。
如果要生成一些测试数据,请从过去的3600秒时间戳开始,然后添加12个样本,每次迭代将时间戳增加300。 这将在您的主要(5分钟)RRA中产生11个条目,而在您的次要25分钟RRA中可能产生2个条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.