| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  | <?php | 
					
						
							|  |  |  | /* | 
					
						
							| 
									
										
										
										
											2016-08-12 17:21:55 +10:00
										 |  |  |  * LibreNMS module to display captured NTP statistics | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Copyright (c) 2016 Aaron Daniels <aaron@daniels.id.au> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-21 08:07:14 -05:00
										 |  |  | $component = new LibreNMS\Component(); | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  | $options = array(); | 
					
						
							| 
									
										
										
										
											2016-08-12 17:21:55 +10:00
										 |  |  | $options['filter']['type'] = array('=','ntp'); | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  | $components = $component->getComponents($device['device_id'], $options); | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  | // We only care about our device id.
 | 
					
						
							|  |  |  | $components = $components[$device['device_id']]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-11 23:26:42 -05:00
										 |  |  | include "includes/html/graphs/common.inc.php"; | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  | $rrd_options .= " -l 0 -E "; | 
					
						
							| 
									
										
										
										
											2018-05-09 13:37:06 +12:00
										 |  |  | $rrd_options .= " --vertical-label='Seconds'"; | 
					
						
							|  |  |  | $rrd_options .= " COMMENT:'Delay (s)              Now      Min      Max\\n'"; | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  | $rrd_additions = ""; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $count = 0; | 
					
						
							|  |  |  | foreach ($components as $id => $array) { | 
					
						
							| 
									
										
										
										
											2016-08-12 16:53:20 +10:00
										 |  |  |     $rrd_filename = rrd_name($device['hostname'], array('ntp', $array['peer'])); | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-05 14:49:04 -07:00
										 |  |  |     if (rrdtool_check_rrd_exists($rrd_filename)) { | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  |         // Grab a color from the array.
 | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |         if (isset($config['graph_colours']['mixed'][$count])) { | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  |             $color = $config['graph_colours']['mixed'][$count]; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $color = $config['graph_colours']['oranges'][$count-7]; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $rrd_additions .= " DEF:DS" . $count . "=" . $rrd_filename . ":delay:AVERAGE "; | 
					
						
							| 
									
										
										
										
											2018-05-09 13:37:06 +12:00
										 |  |  |         $rrd_additions .= " LINE1.25:DS" . $count . "#" . $color . ":'" . str_pad(substr($array['peer'], 0, 15), 15) . "'" . $stack; | 
					
						
							|  |  |  |         $rrd_additions .= " GPRINT:DS" . $count . ":LAST:%7.2lf "; | 
					
						
							|  |  |  |         $rrd_additions .= " GPRINT:DS" . $count .    ":MIN:%7.2lf "; | 
					
						
							|  |  |  |         $rrd_additions .= " GPRINT:DS" . $count . ":MAX:%7.2lf\\l "; | 
					
						
							| 
									
										
										
										
											2016-08-09 07:14:25 +10:00
										 |  |  |         $count++; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ($rrd_additions == "") { | 
					
						
							|  |  |  |     // We didn't add any data points.
 | 
					
						
							|  |  |  | } else { | 
					
						
							|  |  |  |     $rrd_options .= $rrd_additions; | 
					
						
							|  |  |  | } |