aldas / rrd-php-reader
仅使用PHP读取rrd文件
v0.1.0
2018-11-10 20:54 UTC
Requires
- php: ^7.0
Requires (Dev)
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-08-27 18:51:36 UTC
README
因为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