2010-02-07 14:17:02 +00:00
< ? php
2009-05-11 13:58:05 +00:00
2015-07-13 20:10:26 +02:00
$storage = dbFetchCell ( 'select count(*) from storage WHERE device_id = ?' , array ( $device [ 'device_id' ]));
2017-03-03 08:27:33 -06:00
$diskio = get_disks ( $device [ 'device_id' ]);
2015-07-01 08:14:23 +10:00
$mempools = dbFetchCell ( 'select count(*) from mempools WHERE device_id = ?' , array ( $device [ 'device_id' ])) + count_mib_mempools ( $device );
$processor = dbFetchCell ( 'select count(*) from processors WHERE device_id = ?' , array ( $device [ 'device_id' ])) + count_mib_processors ( $device );
2010-07-07 14:34:44 +00:00
2019-10-05 11:10:34 +02:00
/*
* QFP count for cisco devices
*/
$qfp = 0 ;
if ( $device [ 'os_group' ] == 'cisco' ) {
$component = new LibreNMS\Component ();
$components = $component -> getComponents ( $device [ 'device_id' ], array ( 'type' => 'cisco-qfp' ));
$components = $components [ $device [ 'device_id' ]];
$qfp = count ( $components );
}
2019-01-20 19:24:11 +01:00
$count = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='count' AND device_id = ? " , array ( $device [ 'device_id' ]));
2018-01-18 21:50:19 +01:00
$temperatures = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='temperature' AND device_id = ? " , array ( $device [ 'device_id' ]));
$humidity = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='humidity' AND device_id = ? " , array ( $device [ 'device_id' ]));
$fans = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='fanspeed' AND device_id = ? " , array ( $device [ 'device_id' ]));
$volts = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='voltage' AND device_id = ? " , array ( $device [ 'device_id' ]));
$current = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='current' AND device_id = ? " , array ( $device [ 'device_id' ]));
$freqs = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='frequency' AND device_id = ? " , array ( $device [ 'device_id' ]));
$runtime = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='runtime' AND device_id = ? " , array ( $device [ 'device_id' ]));
$power = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='power' AND device_id = ? " , array ( $device [ 'device_id' ]));
2019-01-20 19:24:11 +01:00
$power_consumed = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='power_consumed' AND device_id = ? " , array ( $device [ 'device_id' ]));
$power_factor = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='power_factor' AND device_id = ? " , array ( $device [ 'device_id' ]));
2018-01-18 21:50:19 +01:00
$dBm = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='dBm' AND device_id = ? " , array ( $device [ 'device_id' ]));
$states = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='state' AND device_id = ? " , array ( $device [ 'device_id' ]));
2019-01-20 19:24:11 +01:00
$charge = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='charge' AND device_id = ? " , array ( $device [ 'device_id' ]));
2018-01-18 21:50:19 +01:00
$load = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='load' AND device_id = ? " , array ( $device [ 'device_id' ]));
2020-05-31 01:24:43 +02:00
$loss = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='loss' AND device_id = ? " , array ( $device [ 'device_id' ]));
2018-01-18 21:50:19 +01:00
$signal = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='signal' AND device_id = ? " , array ( $device [ 'device_id' ]));
$airflow = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='airflow' AND device_id = ? " , array ( $device [ 'device_id' ]));
$snr = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='snr' AND device_id = ? " , array ( $device [ 'device_id' ]));
$pressure = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='pressure' AND device_id = ? " , array ( $device [ 'device_id' ]));
$cooling = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='cooling' AND device_id = ? " , array ( $device [ 'device_id' ]));
$delay = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='delay' AND device_id = ? " , array ( $device [ 'device_id' ]));
$quality_factor = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='quality_factor' AND device_id = ? " , array ( $device [ 'device_id' ]));
2017-12-13 03:27:10 +01:00
$chromatic_dispersion = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='chromatic_dispersion' AND device_id = ? " , array ( $device [ 'device_id' ]));
2018-01-18 21:50:19 +01:00
$ber = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='ber' AND device_id = ? " , array ( $device [ 'device_id' ]));
$eer = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='eer' AND device_id = ? " , array ( $device [ 'device_id' ]));
$waterflow = dbFetchCell ( " select count(*) from sensors WHERE sensor_class='waterflow' AND device_id = ? " , array ( $device [ 'device_id' ]));
2011-04-20 09:59:48 +00:00
2011-04-30 22:20:11 +00:00
unset ( $datas );
2010-06-12 16:48:53 +00:00
$datas [] = 'overview' ;
2015-07-13 20:10:26 +02:00
if ( $processor ) {
$datas [] = 'processor' ;
}
2011-09-19 09:02:25 +00:00
2019-10-05 11:10:34 +02:00
if ( $qfp ) {
$datas [] = 'qfp' ;
}
2015-07-13 20:10:26 +02:00
if ( $mempools ) {
$datas [] = 'mempool' ;
}
if ( $storage ) {
$datas [] = 'storage' ;
}
2010-01-09 02:05:47 +00:00
2015-07-13 20:10:26 +02:00
if ( $diskio ) {
$datas [] = 'diskio' ;
}
2011-04-30 22:20:11 +00:00
2015-07-13 20:10:26 +02:00
if ( $charge ) {
$datas [] = 'charge' ;
}
2010-02-24 21:44:32 +00:00
2015-07-13 20:10:26 +02:00
if ( $temperatures ) {
$datas [] = 'temperature' ;
}
2010-06-12 16:48:53 +00:00
2015-07-13 20:10:26 +02:00
if ( $humidity ) {
$datas [] = 'humidity' ;
2010-01-09 02:05:47 +00:00
}
2009-08-07 16:10:52 +00:00
2015-07-13 20:10:26 +02:00
if ( $fans ) {
$datas [] = 'fanspeed' ;
}
if ( $volts ) {
$datas [] = 'voltage' ;
}
if ( $freqs ) {
$datas [] = 'frequency' ;
}
2016-09-19 10:59:20 -04:00
if ( $runtime ) {
$datas [] = 'runtime' ;
}
2015-07-13 20:10:26 +02:00
if ( $current ) {
$datas [] = 'current' ;
}
if ( $power ) {
$datas [] = 'power' ;
}
2009-05-11 13:58:05 +00:00
2019-01-20 19:24:11 +01:00
if ( $power_consumed ) {
$datas [] = 'power_consumed' ;
}
if ( $power_factor ) {
$datas [] = 'power_factor' ;
}
2015-07-13 20:10:26 +02:00
if ( $dBm ) {
$datas [] = 'dbm' ;
}
if ( $states ) {
$datas [] = 'state' ;
}
2019-01-20 19:24:11 +01:00
if ( $count ) {
$datas [] = 'count' ;
}
2015-07-13 20:10:26 +02:00
if ( $load ) {
$datas [] = 'load' ;
}
2012-04-26 16:32:34 +00:00
2016-03-22 10:37:07 -04:00
if ( $signal ) {
$datas [] = 'signal' ;
}
2017-01-07 00:09:41 +00:00
if ( $airflow ) {
$datas [] = 'airflow' ;
}
2017-05-23 16:28:45 +01:00
if ( $snr ) {
$datas [] = 'snr' ;
}
2017-09-29 21:13:27 +01:00
if ( $pressure ) {
$datas [] = 'pressure' ;
}
if ( $cooling ) {
$datas [] = 'cooling' ;
}
2017-12-13 03:27:10 +01:00
if ( $delay ) {
$datas [] = 'delay' ;
}
if ( $quality_factor ) {
$datas [] = 'quality_factor' ;
}
if ( $chromatic_dispersion ) {
$datas [] = 'chromatic_dispersion' ;
}
if ( $ber ) {
$datas [] = 'ber' ;
}
2018-01-18 21:50:19 +01:00
if ( $eer ) {
$datas [] = 'eer' ;
}
if ( $waterflow ) {
$datas [] = 'waterflow' ;
}
2020-05-31 01:24:43 +02:00
if ( $loss ) {
$datas [] = 'loss' ;
}
2018-01-18 21:50:19 +01:00
$type_text [ 'overview' ] = 'Overview' ;
$type_text [ 'charge' ] = 'Battery Charge' ;
$type_text [ 'temperature' ] = 'Temperature' ;
$type_text [ 'humidity' ] = 'Humidity' ;
$type_text [ 'mempool' ] = 'Memory' ;
$type_text [ 'storage' ] = 'Disk Usage' ;
$type_text [ 'diskio' ] = 'Disk I/O' ;
$type_text [ 'processor' ] = 'Processor' ;
$type_text [ 'voltage' ] = 'Voltage' ;
$type_text [ 'fanspeed' ] = 'Fanspeed' ;
$type_text [ 'frequency' ] = 'Frequency' ;
$type_text [ 'runtime' ] = 'Runtime remaining' ;
$type_text [ 'current' ] = 'Current' ;
$type_text [ 'power' ] = 'Power' ;
2019-01-20 19:24:11 +01:00
$type_text [ 'power_consumed' ] = 'Power Consumed' ;
$type_text [ 'power_factor' ] = 'Power Factor' ;
2018-01-18 21:50:19 +01:00
$type_text [ 'dbm' ] = 'dBm' ;
$type_text [ 'state' ] = 'State' ;
2019-01-20 19:24:11 +01:00
$type_text [ 'count' ] = 'Count' ;
2018-01-18 21:50:19 +01:00
$type_text [ 'load' ] = 'Load' ;
$type_text [ 'signal' ] = 'Signal' ;
$type_text [ 'airflow' ] = 'Airflow' ;
$type_text [ 'snr' ] = 'SNR' ;
$type_text [ 'pressure' ] = 'Pressure' ;
$type_text [ 'cooling' ] = 'Cooling' ;
$type_text [ 'delay' ] = 'Delay' ;
$type_text [ 'quality_factor' ] = 'Quality factor' ;
$type_text [ 'chromatic_dispersion' ] = 'Chromatic Dispersion' ;
$type_text [ 'ber' ] = 'Bit Error Rate' ;
$type_text [ 'eer' ] = 'Energy Efficiency Ratio' ;
$type_text [ 'waterflow' ] = 'Water Flow Rate' ;
2020-05-31 01:24:43 +02:00
$type_text [ 'loss' ] = 'Loss' ;
2019-10-05 11:10:34 +02:00
$type_text [ 'qfp' ] = 'QFP' ;
2015-07-13 20:10:26 +02:00
$link_array = array (
'page' => 'device' ,
'device' => $device [ 'device_id' ],
'tab' => 'health' ,
);
2012-04-26 16:32:34 +00:00
2015-07-13 20:10:26 +02:00
print_optionbar_start ();
echo " <span style='font-weight: bold;'>Health</span> » " ;
2012-04-06 13:56:23 +00:00
2015-07-13 20:10:26 +02:00
if ( ! $vars [ 'metric' ]) {
$vars [ 'metric' ] = 'overview' ;
}
unset ( $sep );
foreach ( $datas as $type ) {
echo $sep ;
if ( $vars [ 'metric' ] == $type ) {
echo '<span class="pagemenu-selected">' ;
}
echo generate_link ( $type_text [ $type ], $link_array , array ( 'metric' => $type ));
if ( $vars [ 'metric' ] == $type ) {
echo '</span>' ;
2010-06-12 16:48:53 +00:00
}
2015-07-13 20:10:26 +02:00
$sep = ' | ' ;
2010-02-24 21:44:32 +00:00
}
2009-05-11 13:58:05 +00:00
2015-07-13 20:10:26 +02:00
print_optionbar_end ();
2019-04-11 23:26:42 -05:00
$metric = basename ( $vars [ 'metric' ]);
if ( is_file ( " includes/html/pages/device/health/ $metric .inc.php " )) {
include " includes/html/pages/device/health/ $metric .inc.php " ;
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
foreach ( $datas as $type ) {
if ( $type != 'overview' ) {
$graph_title = $type_text [ $type ];
$graph_array [ 'type' ] = 'device_' . $type ;
2019-04-11 23:26:42 -05:00
include 'includes/html/print-device-graph.php' ;
2015-07-13 20:10:26 +02:00
}
}
}
2011-10-18 14:27:21 +00:00
2015-07-13 20:10:26 +02:00
$pagetitle [] = 'Health' ;