Neil Lathwood fad5aca1b7 feature: Allow customisation of rrd step/heartbeat when creating new rrd files (#5947)
* feature: Allow customisation of rrd step/heartbeat when creating new rrd files

* revert defaults

* added docs + webui config option

* Move RrdDefinition to an Object to make them easier to create and remove the possibility of typos.

* Fix style/lint issues and missing use statements

* 3 more missing use statements

* updated doc + moved schema file
2017-02-23 22:45:50 +00:00

56 lines
1.7 KiB
PHP

<?php
use LibreNMS\RRD\RrdDefinition;
foreach (dbFetchRows('SELECT * FROM mempools WHERE device_id = ?', array($device['device_id'])) as $mempool) {
echo 'Mempool '.$mempool['mempool_descr'].': ';
$mempool_type = $mempool['mempool_type'];
$mempool_index = $mempool['mempool_index'];
$file = $config['install_dir'].'/includes/polling/mempools/'. $mempool_type .'.inc.php';
if (is_file($file)) {
include $file;
}
if ($mempool['total']) {
$percent = round(($mempool['used'] / $mempool['total'] * 100), 2);
} else {
$percent = 0;
}
echo $percent.'% ';
$rrd_name = array('mempool', $mempool_type, $mempool_index);
$rrd_def = RrdDefinition::make()
->addDataset('used', 'GAUGE', 0)
->addDataset('free', 'GAUGE', 0);
$fields = array(
'used' => $mempool['used'],
'free' => $mempool['free'],
);
$tags = compact('mempool_type', 'mempool_index', 'rrd_name', 'rrd_def');
data_update($device, 'mempool', $tags, $fields);
$mempool['state'] = array(
'mempool_used' => $mempool['used'],
'mempool_perc' => $percent,
'mempool_free' => $mempool['free'],
'mempool_total' => $mempool['total'],
);
if (!empty($mempool['largestfree'])) {
$mempool['state']['mempool_largestfree'] = set_numeric($mempool['largestfree']);
}
if (!empty($mempool['lowestfree'])) {
$mempool['state']['mempool_lowestfree'] = set_numeric($mempool['lowestfree']);
}
dbUpdate($mempool['state'], 'mempools', '`mempool_id` = ?', array($mempool['mempool_id']));
echo "\n";
}//end foreach