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";

   //create rrd file
   rrd_create($rrdFile,
    array(
     "--start",920804400,
     "DS:speed:COUNTER:600:U:U",
     "RRA:AVERAGE:0.5:1:24",
     "RRA:AVERAGE:0.5:6:10"
     )
   );
   
   //update rrd file
   rrd_update($rrdFile,
    array(
     "920804700:12345",
     "920805000:12357"
     )
   );
   
   //graph output
   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 函式 -

序號 函式及描述
1 rrd_create()

建立新的 RRD 資料庫檔案。

2 rrd_error()

返回最新的錯誤訊息。

3 rrd_fetch()

從 RRD 資料庫中檢索資料。

4 rrd_first()

返回 rrd 檔案中第一個樣本的時間戳。

5 rrd_graph()

根據 RRD 資料庫中的資料建立圖形。

6 rrd_info()

獲取有關 RRD 檔案的資訊。

7 rrd_last()

檢索 RRD 資料庫的最後更新時間。

8 rrd_lastupdate()

獲取有關最後更新的資料的資訊。

9 rrd_restore()

從 XML 匯出還原 RRD 資料庫。

10 rrd_tune()

調整 RRD 資料庫引數。

11 rrd_update()

使用新資料更新 RRD 資料庫。

12 rrd_version()

返回有關底層 rrdtool 庫的資訊。

13 rrd_xport()

從 RRD 資料庫匯出資料。

14 rrdc_disconnect()

關閉與 rrd 快取守護程式的任何未完成連線。

這是對 PHP 的 RRD 函式的概述。這些工具允許您在應用程式中建立、更改和訪問時間序列資料。

php_function_reference.htm
廣告