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 函数的概述。这些工具允许您在应用程序中创建、更改和访问时间序列数据。