| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | $uptime      = snmp_get($device, 'sysUpTime.0', '-Otv'); | 
					
						
							|  |  |  | $time_offset = (time() - intval($uptime) / 100); | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | $slavals = snmp_walk($device, 'ciscoRttMonMIB.ciscoRttMonObjects.rttMonCtrl.rttMonLatestRttOperTable', '-OUsqt', '+CISCO-RTTMON-MIB'); | 
					
						
							| 
									
										
										
										
											2012-04-09 12:55:48 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | $sla_table = array(); | 
					
						
							|  |  |  | foreach (explode("\n", $slavals) as $sla) { | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $key_val = explode(' ', $sla, 2); | 
					
						
							|  |  |  |     if (count($key_val) != 2) { | 
					
						
							|  |  |  |         $key_val[] = ''; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $key   = $key_val[0]; | 
					
						
							|  |  |  |     $value = $key_val[1]; | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $prop_id = explode('.', $key); | 
					
						
							|  |  |  |     if ((count($prop_id) != 2) || !ctype_digit($prop_id[1])) { | 
					
						
							|  |  |  |         continue; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $property = str_replace('rttMonLatestRttOper', '', $prop_id[0]); | 
					
						
							|  |  |  |     $id       = intval($prop_id[1]); | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $sla_table[$id][$property] = trim($value); | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Update timestamps
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | foreach ($sla_table as &$sla) { | 
					
						
							|  |  |  |     $sla['UnixTime'] = intval(($sla['Time'] / 100 + $time_offset)); | 
					
						
							|  |  |  |     $sla['TimeStr']  = strftime('%Y-%m-%d %H:%M:%S', $sla['UnixTime']); | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | unset($sla); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  | foreach (dbFetchRows('SELECT * FROM `slas` WHERE `device_id` = ? AND `deleted` = 0 AND `status` = 1', array($device['device_id'])) as $sla) { | 
					
						
							|  |  |  |     echo 'SLA '.$sla['sla_nr'].': '.$sla['rtt_type'].' '.$sla['owner'].' '.$sla['tag'].'... '; | 
					
						
							| 
									
										
										
										
											2012-04-09 12:55:48 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     $slarrd = $config['rrd_dir'].'/'.$device['hostname'].'/'.safename('sla-'.$sla['sla_nr'].'.rrd'); | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     if (!is_file($slarrd)) { | 
					
						
							|  |  |  |         rrdtool_create( | 
					
						
							|  |  |  |             $slarrd, | 
					
						
							| 
									
										
										
										
											2015-09-28 08:24:57 +00:00
										 |  |  |             '--step 300  | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |      DS:rtt:GAUGE:600:0:300000 '.$config['rrd_rra'] | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     if (isset($sla_table[$sla['sla_nr']])) { | 
					
						
							|  |  |  |         $slaval = $sla_table[$sla['sla_nr']]; | 
					
						
							|  |  |  |         echo $slaval['CompletionTime'].'ms at '.$slaval['TimeStr']; | 
					
						
							|  |  |  |         $val = $slaval['CompletionTime']; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     else { | 
					
						
							|  |  |  |         echo 'NaN'; | 
					
						
							|  |  |  |         $val = 'U'; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2012-04-09 12:53:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 16:26:55 +00:00
										 |  |  |     $fields = array( | 
					
						
							|  |  |  |         'rtt' => $val, | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     rrdtool_update($slarrd, $fields); | 
					
						
							| 
									
										
										
										
											2015-08-19 20:58:02 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $tags = array('sla_nr' => $sla['sla_nr']); | 
					
						
							|  |  |  |     influx_update($device,'sla',$tags,$fields); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 13:36:21 +02:00
										 |  |  |     echo "\n"; | 
					
						
							|  |  |  | }//end foreach
 |