Skip to content
Read RRDtool files without rrd extension as ext-rrd does not support reading rrd files generated on different arch
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
src
tests
.gitignore
.travis.yml
README.md
composer.json
composer.lock
phpunit.xml.dist initial commit Mar 14, 2018

README.md

Pure PHP RRDtool file reader

Build Status codecov

Because on windows php ext-rrd can not read rrd files created on unix and vice versa. See https://github.com/oetiker/rrdtool-1.x/issues/759

This library supports reading:

  • rrds created on 64bit linux from 64bit Windows
  • rrds created on 64bit Windows from 64bit Linux

Only meant to export/dump data out of rrd file.

This library is based on javascriptRRD

Example

Convert RRD to 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);

Filter 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;
}

Output would be:

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
You can’t perform that action at this time.