aldas/rrd-php-reader

仅使用PHP读取rrd文件

v0.1.0 2018-11-10 20:54 UTC

This package is auto-updated.

Last update: 2024-08-27 18:51:36 UTC


README

Build Status codecov

因为Windows上的php ext-rrd无法读取在Unix上创建的rrd文件,反之亦然。见oetiker/rrdtool-1.x#759

此库支持读取

  • 在64位Linux上从64位Windows创建的rrds
  • 在64位Windows上从64位Linux创建的rrds

仅用于导出/转储rrd文件中的数据。

此库基于javascriptRRD

示例

将RRD转换为CSV: rrd_to_csv.php

$reader = RrdReader::createFromPath('path/to/my_rrd.rrd');

$fp = fopen('output.csv', 'wb');
$reader->outputAsCsv($fp, [
    'ds' => 'value'
]);
fclose($fp);

过滤rrd: read_rrd.php

$reader = RrdReader::createFromPath('path/to/my_rrd.rrd');

$traversable = $reader->getAll([
    'ds' => 'value',
    'row_filter_callback' => function (int $timestamp, float $value, RrdDs $ds, RraInfo $rra) {
        return $value < 8;
    }
]);

/** @var RrdRowValue $value */
foreach ($traversable as $value) {
    echo $value . PHP_EOL;
}

输出将会是

timestamp=1521054891, value=6.000000, cf=AVERAGE, ds=value, step=1
timestamp=1521054892, value=7.000000, cf=AVERAGE, ds=value, step=1
timestamp=1521054891, value=6.000000, cf=MAX, ds=value, step=1
timestamp=1521054892, value=7.000000, cf=MAX, ds=value, step=1