mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Move rrd handling functions into includes/rrdtool.inc.php; add backwards compatibility with file naming in old version of MIB-based polling
This commit is contained in:
@@ -296,7 +296,18 @@ function rrdtool_escape($string, $maxlength=null){
|
||||
|
||||
$result = str_replace(':', '\:', $result); # escape colons
|
||||
return $result.' ';
|
||||
} // rrdtool_escape
|
||||
|
||||
|
||||
/*
|
||||
* @return the name of the rrd file for $host's $extra component
|
||||
* @param host Host name
|
||||
* @param extra Components of RRD filename - will be separated with "-"
|
||||
*/
|
||||
function rrd_name($host, $extra, $exten = ".rrd") {
|
||||
global $config;
|
||||
$filename = safename(is_array($extra) ? implode("-", $extra) : $extra);
|
||||
return implode("/", array($config['rrd_dir'], $host, $filename.$exten));
|
||||
}
|
||||
|
||||
function rrdtool_tune($type, $filename, $max) {
|
||||
@@ -314,4 +325,53 @@ function rrdtool_tune($type, $filename, $max) {
|
||||
$options = "--maximum " . implode(":$max --maximum ", $fields). ":$max";
|
||||
rrdtool('tune', $filename, $options);
|
||||
}
|
||||
}
|
||||
} // rrdtool_tune
|
||||
|
||||
/*
|
||||
* Please use this instead of creating & updating RRD files manually.
|
||||
* @param device Device object - only 'hostname' is used at present
|
||||
* @param name Array of rrdname components
|
||||
* @param def Array of data definitions
|
||||
* @param val Array of value definitions
|
||||
*
|
||||
*/
|
||||
|
||||
function rrd_create_update($device, $name, $def, $val, $step=300) {
|
||||
global $config;
|
||||
$rrd = rrd_name($device['hostname'], $name);
|
||||
|
||||
if (!is_file($rrd) && $def != null) {
|
||||
// add the --step and the rra definitions to the array
|
||||
$newdef = "--step $step ".implode(' ', $def).$config['rrd_rra'];
|
||||
rrdtool_create($rrd, $newdef);
|
||||
}
|
||||
|
||||
rrdtool_update($rrd, $val);
|
||||
|
||||
} // rrd_create_update
|
||||
|
||||
|
||||
/*
|
||||
* @return bool indicating existence of RRD file
|
||||
* @param device Device object as used with rrd_create_update()
|
||||
* @param name RRD name array as used with rrd_create_update() and rrd_name()
|
||||
*/
|
||||
function rrd_file_exists($device, $name)
|
||||
{
|
||||
return is_file(rrd_name($device['hostname'], $name));
|
||||
} // rrd_file_exists
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* @return bool indicating rename success or failure
|
||||
* @param device Device object as used with rrd_create_update()
|
||||
* @param oldname RRD name array as used with rrd_create_update() and rrd_name()
|
||||
* @param newname RRD name array as used with rrd_create_update() and rrd_name()
|
||||
*/
|
||||
function rrd_file_rename($device, $oldname, $newname)
|
||||
{
|
||||
$oldrrd = rrd_name($device['hostname'], $oldname);
|
||||
$newrrd = rrd_name($device['hostname'], $newname);
|
||||
return rename($oldrrd, $newrrd);
|
||||
} // rrd_file_rename
|
||||
|
||||
Reference in New Issue
Block a user