PHP - RRD 函数


PECL/rrd 扩展为 RRDtool C 库提供绑定。RRDtool 是用于高性能数据记录和时间序列数据绘图的开源行业标准。

安装

PECL 扩展的安装说明可以在标题为 PECL 扩展的安装的手册章节中找到。您需要 PECL(PHP 扩展社区库)来安装 PHP RRD 扩展。

sudo pecl install rrd

要求

要使用 PECL/rrd,您首先需要安装 librrd。最常见的方法是使用您选择的 Linux 发行版中的 librrd-dev 软件包。PECL/rrd 使用 librrd 1.4.3 进行测试;以前或更新的版本可能不适合您。

示例

这里有两种类型的示例:第一种是 程序 PECL/rrd,第二种是 OOP PECL/rrd。所以让我们一一看看 -

程序 PECL/rrd 示例

程序示例如下 -


<?php
   $rrdFile = dirname(__FILE__) . "/speed.rrd";

   // 创建rrd文件
   rrd_create($rrdFile,
    array(
     "--start",920804400,
     "DS:speed:COUNTER:600:U:U",
     "RRA:AVERAGE:0.5:1:24",
     "RRA:AVERAGE:0.5:6:10"
     )
   );
   
   // 更新rrd文件
   rrd_update($rrdFile,
    array(
     "920804700:12345",
     "920805000:12357"
     )
   );
   
   // 图形输出
   rrd_graph(dirname(__FILE__) . "/speed.png",
    array(
     "--start", "920804400",
     "--end", "920808000",
     "--vertical-label", "m/s",
     "DEF:myspeed=$rrdFile:speed:AVERAGE",
     "CDEF:realspeed=myspeed,1000,*",
     "LINE2:realspeed#FF0000"
    )
   );
?>

OOP PECL/rrd 示例

面向对象编程 PECL rrd 示例在这里 -


   $rrdFile = dirname(__FILE__) . "/speed.rrd";
   $outputPngFile = dirname(__FILE__) . "/speed.png";
   
   $creator = new RRDCreator($rrdFile, "now -10d", 500);
   $creator->addDataSource("speed:COUNTER:600:U:U");
   $creator->addArchive("AVERAGE:0.5:1:24");
   $creator->addArchive("AVERAGE:0.5:6:10");
   $creator->save();
   
   $updater = new RRDUpdater($rrdFile);
   $updater->update(array("speed" => "12345"), "920804700");
   $updater->update(array("speed" => "12357"), "920805000");
   
   $graphObj = new RRDGraph($outputPngFile);
   $graphObj->setOptions(
       array(
           "--start" => "920804400",
           "--end" => 920808000,
           "--vertical-label" => "m/s",
           "DEF:myspeed=$rrdFile:speed:AVERAGE",
           "CDEF:realspeed=myspeed,1000,*",
           "LINE2:realspeed#FF0000"
       )
   );
   $graphObj->save();

函数 列表

以下是一些常用的 PHP RRD 函数 -

函数 描述
rrd_create() 创建新的 RRD 数据库文件。
rrd_error() 返回最新的错误消息。
rrd_fetch() 从 RRD 数据库中检索数据。
rrd_first() 返回 rrd 文件中第一个样本的时间戳。
rrd_graph() 根据 RRD 数据库中的数据创建图形。
rrd_info() 获取有关 RRD 文件的信息。
rrd_last() 检索 RRD 数据库的上次更新时间。
rrd_lastupdate() 获取有关上次更新数据的信息。
rrd_restore() 从 XML 转储中恢复 RRD 数据库。
rrd_tune() 调整 RRD 数据库参数。
rrd_update() 使用新数据更新 RRD 数据库。
rrd_version() 返回有关底层 rrdtool 库的信息。
rrd_xport() 从 RRD 数据库导出数据。
rrdc_disconnect() 关闭与 rrd 缓存守护程序的所有未完成连接。

这是对 PHP 的 RRD 函数的概述。这些工具允许您在应用程序中创建、更改和访问时间序列数据。