diff --git a/html/includes/graphs/device/sla_icmpjitter_iajitter.inc.php b/html/includes/graphs/device/sla_icmpjitter_iajitter.inc.php new file mode 100644 index 0000000000..0105b8dcbd --- /dev/null +++ b/html/includes/graphs/device/sla_icmpjitter_iajitter.inc.php @@ -0,0 +1,36 @@ + + * + * 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 + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$sla = dbFetchRow('SELECT `sla_nr` FROM `slas` WHERE `sla_id` = ?', array($vars['id'])); + +require 'includes/graphs/common.inc.php'; +$rrd_options .= ' -l 0 -E '; +$rrd_filename = rrd_name($device['hostname'], array('sla', $sla['sla_nr'], 'icmpjitter')); + +if (file_exists($rrd_filename)) { + $rrd_options .= " COMMENT:' Cur Min Max Avg\\n'"; + + $rrd_options .= " DEF:SD=" . $rrd_filename . ":JitterIAJOut:AVERAGE "; + $rrd_options .= " LINE1.25:SD#0000ee:'Responder (ms) ' "; + $rrd_options .= " GPRINT:SD:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:AVERAGE:'%5.2lf'\\\l "; + + $rrd_options .= " DEF:DS=" . $rrd_filename . ":JitterIAJIn:AVERAGE "; + $rrd_options .= " LINE1.25:DS#008C00:'Source (ms) ' "; + $rrd_options .= " GPRINT:DS:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:AVERAGE:'%5.2lf'\\\l "; +} diff --git a/html/includes/graphs/device/sla_icmpjitter_jitter.inc.php b/html/includes/graphs/device/sla_icmpjitter_jitter.inc.php new file mode 100644 index 0000000000..7a8a7a5e74 --- /dev/null +++ b/html/includes/graphs/device/sla_icmpjitter_jitter.inc.php @@ -0,0 +1,36 @@ + + * + * 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 + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$sla = dbFetchRow('SELECT `sla_nr` FROM `slas` WHERE `sla_id` = ?', array($vars['id'])); + +require 'includes/graphs/common.inc.php'; +$rrd_options .= ' -l 0 -E '; +$rrd_filename = rrd_name($device['hostname'], array('sla', $sla['sla_nr'], 'icmpjitter')); + +if (file_exists($rrd_filename)) { + $rrd_options .= " COMMENT:' Cur Min Max Avg\\n'"; + + $rrd_options .= " DEF:SD=" . $rrd_filename . ":JitterAvgSD:AVERAGE "; + $rrd_options .= " LINE1.25:SD#0000ee:'Src to Dst (ms) ' "; + $rrd_options .= " GPRINT:SD:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:AVERAGE:'%5.2lf'\\\l "; + + $rrd_options .= " DEF:DS=" . $rrd_filename . ":JitterAvgDS:AVERAGE "; + $rrd_options .= " LINE1.25:DS#008C00:'Dst to Src (ms) ' "; + $rrd_options .= " GPRINT:DS:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:AVERAGE:'%5.2lf'\\\l "; +} diff --git a/html/includes/graphs/device/sla_icmpjitter_latency.inc.php b/html/includes/graphs/device/sla_icmpjitter_latency.inc.php new file mode 100644 index 0000000000..93d2364a64 --- /dev/null +++ b/html/includes/graphs/device/sla_icmpjitter_latency.inc.php @@ -0,0 +1,36 @@ + + * + * 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 + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$sla = dbFetchRow('SELECT `sla_nr` FROM `slas` WHERE `sla_id` = ?', array($vars['id'])); + +require 'includes/graphs/common.inc.php'; +$rrd_options .= ' -l 0 -E '; +$rrd_filename = rrd_name($device['hostname'], array('sla', $sla['sla_nr'], 'icmpjitter')); + +if (file_exists($rrd_filename)) { + $rrd_options .= " COMMENT:' Cur Min Max Avg\\n'"; + + $rrd_options .= " DEF:SD=" . $rrd_filename . ":LatencyOWAvgSD:AVERAGE "; + $rrd_options .= " LINE1.25:SD#0000ee:'Src to Dst (ms) ' "; + $rrd_options .= " GPRINT:SD:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:AVERAGE:'%5.2lf'\\\l "; + + $rrd_options .= " DEF:DS=" . $rrd_filename . ":LatencyOWAvgDS:AVERAGE "; + $rrd_options .= " LINE1.25:DS#008C00:'Dst to Src (ms) ' "; + $rrd_options .= " GPRINT:DS:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:AVERAGE:'%5.2lf'\\\l "; +} diff --git a/html/includes/graphs/device/sla_icmpjitter_lost.inc.php b/html/includes/graphs/device/sla_icmpjitter_lost.inc.php new file mode 100644 index 0000000000..aa600d2ca7 --- /dev/null +++ b/html/includes/graphs/device/sla_icmpjitter_lost.inc.php @@ -0,0 +1,36 @@ + + * + * 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 + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$sla = dbFetchRow('SELECT `sla_nr` FROM `slas` WHERE `sla_id` = ?', array($vars['id'])); + +require 'includes/graphs/common.inc.php'; +$rrd_options .= ' -l 0 -E '; +$rrd_filename = rrd_name($device['hostname'], array('sla', $sla['sla_nr'], 'icmpjitter')); + +if (file_exists($rrd_filename)) { + $rrd_options .= " COMMENT:' Cur Min Max Avg\\n'"; + + $rrd_options .= " DEF:PL=" . $rrd_filename . ":PacketLoss:AVERAGE "; + $rrd_options .= " LINE1.25:PL#008C00:'Packets Lost ' "; + $rrd_options .= " GPRINT:PL:LAST:%3.0lf "; + $rrd_options .= " GPRINT:PL:MIN:%3.0lf "; + $rrd_options .= " GPRINT:PL:MAX:%3.0lf "; + $rrd_options .= " GPRINT:PL:AVERAGE:'%3.0lf'\\\l "; + + $rrd_options .= " DEF:PLA=" . $rrd_filename . ":PacketLateArrival:AVERAGE "; + $rrd_options .= " LINE1.25:PLA#CC0000:'Late Arrival ' "; + $rrd_options .= " GPRINT:PLA:LAST:%3.0lf "; + $rrd_options .= " GPRINT:PLA:MIN:%3.0lf "; + $rrd_options .= " GPRINT:PLA:MAX:%3.0lf "; + $rrd_options .= " GPRINT:PLA:AVERAGE:'%3.0lf'\\\l "; +} diff --git a/html/includes/graphs/device/sla_icmpjitter_oos.inc.php b/html/includes/graphs/device/sla_icmpjitter_oos.inc.php new file mode 100644 index 0000000000..9de16f377e --- /dev/null +++ b/html/includes/graphs/device/sla_icmpjitter_oos.inc.php @@ -0,0 +1,36 @@ + + * + * 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 + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +$sla = dbFetchRow('SELECT `sla_nr` FROM `slas` WHERE `sla_id` = ?', array($vars['id'])); + +require 'includes/graphs/common.inc.php'; +$rrd_options .= ' -l 0 -E '; +$rrd_filename = rrd_name($device['hostname'], array('sla', $sla['sla_nr'], 'icmpjitter')); + +if (file_exists($rrd_filename)) { + $rrd_options .= " COMMENT:' Cur Min Max Avg\\n'"; + + $rrd_options .= " DEF:SD=" . $rrd_filename . ":PacketOosSD:AVERAGE "; + $rrd_options .= " LINE1.25:SD#0000ee:'Src to Dst (ms) ' "; + $rrd_options .= " GPRINT:SD:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:SD:AVERAGE:'%5.2lf'\\\l "; + + $rrd_options .= " DEF:DS=" . $rrd_filename . ":PacketOosDS:AVERAGE "; + $rrd_options .= " LINE1.25:DS#008C00:'Dst to Src (ms) ' "; + $rrd_options .= " GPRINT:DS:LAST:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MIN:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:MAX:'%5.2lf' "; + $rrd_options .= " GPRINT:DS:AVERAGE:'%5.2lf'\\\l "; +} diff --git a/html/pages/device/sla/icmpjitter.inc.php b/html/pages/device/sla/icmpjitter.inc.php new file mode 100644 index 0000000000..6aea17461e --- /dev/null +++ b/html/pages/device/sla/icmpjitter.inc.php @@ -0,0 +1,79 @@ +
+

Average Latency One Way

+
+
+ +
+ +
+

Average Jitter

+
+
+ +
+ +
+

Packet Out of Sequence

+
+
+ +
+ +
+

Lost Packets (Loss, Skipped, Late Arrival)

+
+
+ +
+ +
+

Inter-Arrival Jitter (RFC 1889)

+
+
+ +
diff --git a/html/pages/device/slas.inc.php b/html/pages/device/slas.inc.php index 7883f417a2..1ac32f2ad3 100644 --- a/html/pages/device/slas.inc.php +++ b/html/pages/device/slas.inc.php @@ -96,8 +96,8 @@ foreach ($slas as $sla) { $name .= ' (Owner: '.$sla['owner'].')'; } - // Jitter has more graphs. Display a sub-page - if ($sla['rtt_type'] == 'jitter') { + // These Types have more graphs. Display a sub-page + if (($sla['rtt_type'] == 'jitter') || ($sla['rtt_type'] == 'icmpjitter')) { $name = ' $sla['sla_id'])).'">'.$name.''; } else { $name = htmlentities($name); diff --git a/includes/polling/cisco-sla.inc.php b/includes/polling/cisco-sla.inc.php index 4b49dd914b..4b2f750346 100644 --- a/includes/polling/cisco-sla.inc.php +++ b/includes/polling/cisco-sla.inc.php @@ -48,7 +48,7 @@ if (count($slas > 0)) { $tags = compact('sla_nr', 'rrd_name', 'rrd_def'); data_update($device, 'sla', $tags, $fields); - // Let's gather some per-type metrics. + // Let's gather some per-type fields. switch ($rtt_type) { case 'jitter': $jitter = array( @@ -80,12 +80,42 @@ if (count($slas > 0)) { ); $tags = compact('rrd_name', 'rrd_def', 'sla_nr', 'rtt_type'); data_update($device, 'sla', $tags, $jitter); - $metrics = array_merge($metrics, $jitter); + $fields = array_merge($fields, $jitter); + break; + case 'icmpjitter': + $icmpjitter = array( + 'PacketLoss' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.26'][$sla_nr], + 'PacketOosSD' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.28'][$sla_nr], + 'PacketOosDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.29'][$sla_nr], + 'PacketLateArrival' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.32'][$sla_nr], + 'JitterAvgSD' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.45'][$sla_nr], + 'JitterAvgDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.46'][$sla_nr], + 'LatencyOWAvgSD' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.47'][$sla_nr], + 'LatencyOWAvgDS' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.48'][$sla_nr], + 'JitterIAJOut' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.49'][$sla_nr], + 'JitterIAJIn' => $rttMonLatestOper['1.3.6.1.4.1.9.9.42.1.5.4.1.50'][$sla_nr], + ); + $rrd_name = array('sla', $sla_nr, $rtt_type); + $rrd_def = array( + 'DS:PacketLoss:GAUGE:600:0:U', + 'DS:PacketOosSD:GAUGE:600:0:U', + 'DS:PacketOosDS:GAUGE:600:0:U', + 'DS:PacketLateArrival:GAUGE:600:0:U', + 'DS:JitterAvgSD:GAUGE:600:0:U', + 'DS:JitterAvgDS:GAUGE:600:0:U', + 'DS:LatencyOWAvgSD:GAUGE:600:0:U', + 'DS:LatencyOWAvgDS:GAUGE:600:0:U', + 'DS:JitterIAJOut:GAUGE:600:0:U', + 'DS:JitterIAJIn:GAUGE:600:0:U', + ); + $tags = compact('rrd_name', 'rrd_def', 'sla_nr', 'rtt_type'); + data_update($device, 'sla', $tags, $icmpjitter); + $fields = array_merge($fields, $icmpjitter); break; } - d_echo("The following metrics were collected for #".$sla['sla_nr'].":\n"); - d_echo($metrics); + d_echo("The following datasources were collected for #".$sla['sla_nr'].":\n"); + d_echo($fields); // Update the DB if necessary if (count($update) > 0) {