繁体   English   中英

PHP-RRD无效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM