read rrd files purely using php

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


Build Status codecov

Because on windows php ext-rrd can not read rrd files created on unix and vice versa. See

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


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'

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