diff --git a/html/includes/graphs/device/poller_modules_perf.inc.php b/html/includes/graphs/device/poller_modules_perf.inc.php
index dd285a82da..50ca7fcf4b 100644
--- a/html/includes/graphs/device/poller_modules_perf.inc.php
+++ b/html/includes/graphs/device/poller_modules_perf.inc.php
@@ -1,8 +1,10 @@
+ * Copyright (c) 2016 Paul D. Gear
+ *
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
@@ -11,28 +13,28 @@
*/
$scale_min = '0';
-$colour_scheme = 'mixed';
$attribs = get_dev_attribs($device['device_id']);
ksort($config['poller_modules']);
require 'includes/graphs/common.inc.php';
-$colour_iter = 0;
-$rrd_options .= " 'COMMENT:Seconds Current Minimum Maximum Average\\n'";
+$count = 0;
foreach ($config['poller_modules'] as $module => $module_status) {
- $rrd_filename = $config['rrd_dir'].'/'.$device['hostname'].'/poller-'.$module.'-perf.rrd';
+ $rrd_filename = rrd_name($device['hostname'], array('poller-perf', $module));
if ($attribs['poll_'.$module] || ( $module_status && !isset($attribs['poll_'.$module]))) {
if (is_file($rrd_filename)) {
- if (!$config['graph_colours'][$colour_scheme][$colour_iter]) {
- $colour_iter = 0;
- }
- $colour = $config['graph_colours'][$colour_scheme][$colour_iter];
- $colour_iter++;
-
- $rrd_options .= ' DEF:'.$module.'='.$rrd_filename.':'.$module.':AVERAGE';
- $rrd_options .= ' LINE1.25:'.$module.'#'.$colour.':"'.str_pad($module, 18," ").'"';
- $rrd_options .= ' GPRINT:'.$module.':LAST:%6.2lf GPRINT:'.$module.':AVERAGE:%7.2lf';
- $rrd_options .= " GPRINT:".$module.":MAX:%7.2lf 'GPRINT:".$module.":AVERAGE:%7.2lf\\n'";
+ $ds['ds'] = 'poller';
+ $ds['descr'] = $module;
+ $ds['filename'] = $rrd_filename;
+ $rrd_list[] = $ds;
+ $count++;
}
}
}
+
+$unit_text = "Seconds";
+$simple_rrd = false;
+$nototal = false;
+$text_orig = true;
+$colours = 'manycolours';
+require "includes/graphs/generic_multi_simplex_seperated.inc.php";
diff --git a/includes/polling/functions.inc.php b/includes/polling/functions.inc.php
index 17a51aea0f..d1fcf196e3 100644
--- a/includes/polling/functions.inc.php
+++ b/includes/polling/functions.inc.php
@@ -225,19 +225,27 @@ function poll_device($device, $options) {
else {
foreach ($config['poller_modules'] as $module => $module_status) {
if ($attribs['poll_'.$module] || ( $module_status && !isset($attribs['poll_'.$module]))) {
- // TODO per-module polling stats
$module_start = microtime(true);
include 'includes/polling/'.$module.'.inc.php';
$module_time = microtime(true) - $module_start;
echo "Runtime for polling module '$module': $module_time\n";
+ // save per-module poller stats
$tags = array(
- 'rrd_def' => 'DS:'.$module.':GAUGE:600:0:U',
+ 'module' => $module,
+ 'rrd_def' => 'DS:poller:GAUGE:600:0:U',
+ 'rrd_name' => array('poller-perf', $module),
);
$fields = array(
- $module => $module_time,
+ 'poller' => $module_time,
);
- data_update($device, 'poller-'.$module.'-perf', $tags, $fields);
+ data_update($device, 'poller-perf', $tags, $fields);
+
+ // remove old rrd
+ $oldrrd = rrd_name($device['hostname'], array('poller', $module, 'perf'));
+ if (is_file($oldrrd)) {
+ unlink($oldrrd);
+ }
}
else if (isset($attribs['poll_'.$module]) && $attribs['poll_'.$module] == '0') {
echo "Module [ $module ] disabled on host.\n";
@@ -280,6 +288,7 @@ function poll_device($device, $options) {
if (!empty($device_time)) {
$tags = array(
'rrd_def' => 'DS:poller:GAUGE:600:0:U',
+ 'module' => 'ALL',
);
$fields = array(
'poller' => $device_time,