2015-04-12 01:10:48 +02:00
< ? php
/*
2015-07-13 20:10:26 +02:00
* LibreNMS
*
* Copyright ( c ) 2015 Søren Friis Rosiak < sorenrosiak @ gmail . com >
* 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 .
*/
2015-04-12 01:10:48 +02:00
$pagetitle [] = " Alert Stats " ;
2015-04-25 10:43:56 +00:00
$sql = " " ;
2015-04-12 01:10:48 +02:00
if ( isset ( $device [ 'device_id' ]) && $device [ 'device_id' ] > 0 ) {
$sql = " AND alert_log.device_id=? " ;
$param = array (
$device [ 'device_id' ]
);
}
if ( $_SESSION [ 'userlevel' ] >= '5' ) {
2015-04-15 12:55:34 +01:00
$query = " SELECT DATE_FORMAT(time_logged, ' " . $config [ 'alert_graph_date_format' ] . " ') Date, COUNT(alert_log.rule_id) totalCount, alert_rules.severity Severity FROM alert_log,alert_rules WHERE alert_log.rule_id=alert_rules.id AND `alert_log`.`state` != 0 $sql GROUP BY DATE_FORMAT(time_logged, ' " . $config [ 'alert_graph_date_format' ] . " '),alert_rules.severity " ;
2015-04-12 01:10:48 +02:00
}
if ( $_SESSION [ 'userlevel' ] < '5' ) {
2015-04-15 12:55:34 +01:00
$query = " SELECT DATE_FORMAT(time_logged, ' " . $config [ 'alert_graph_date_format' ] . " ') Date, COUNT(alert_log.device_id) totalCount, alert_rules.severity Severity FROM alert_log,alert_rules,devices_perms WHERE alert_log.rule_id=alert_rules.id AND `alert_log`.`state` != 0 $sql AND alert_log.device_id = devices_perms.device_id AND devices_perms.user_id = " . $_SESSION [ 'user_id' ] . " GROUP BY DATE_FORMAT(time_logged, ' " . $config [ 'alert_graph_date_format' ] . " '),alert_rules.severity " ;
2015-04-12 01:10:48 +02:00
}
?>
< script src = " js/vis.min.js " ></ script >
< div id = " visualization " ></ div >
< script type = " text/javascript " >
2015-07-13 20:10:26 +02:00
2015-04-12 01:10:48 +02:00
var container = document . getElementById ( 'visualization' );
< ? php
$groups = array ();
$max_count = 0 ;
foreach ( dbFetchRows ( $query , $param ) as $return_value ) {
$date = $return_value [ 'Date' ];
$count = $return_value [ 'totalCount' ];
if ( $count > $max_count ) {
$max_count = $count ;
}
$severity = $return_value [ 'Severity' ];
$data [] = array (
'x' => $date ,
'y' => $count ,
'group' => $severity
);
if ( ! in_array ( $severity , $groups )) {
array_push ( $groups , $severity );
}
}
$graph_data = _json_encode ( $data );
?>
var groups = new vis . DataSet ();
< ? php
foreach ( $groups as $group ) {
echo " groups.add( { id: ' $group ', content: ' $group ' }) \n " ;
}
?>
2015-07-13 20:10:26 +02:00
2015-04-12 01:10:48 +02:00
var items =
< ? php
echo $graph_data ; ?>
;
var dataset = new vis . DataSet ( items );
var options = {
style : 'bar' ,
barChart : { width : 50 , align : 'right' , handleOverlap : 'sideBySide' }, // align: left, center, right
drawPoints : false ,
legend : { left : { position : " bottom-left " }},
dataAxis : {
icons : true ,
showMajorLabels : true ,
showMinorLabels : true ,
customRange : {
left : {
min : 0 , max : < ? php
echo $max_count ; ?>
}
}
},
2015-04-15 13:01:35 +01:00
zoomMin : 86400 , //24hrs
2015-04-12 01:10:48 +02:00
zoomMax : < ? php
$first_date = reset ( $data );
$last_date = end ( $data );
$milisec_diff = abs ( strtotime ( $first_date [ x ]) - strtotime ( $last_date [ x ])) * 1000 ;
echo $milisec_diff ;
?> ,
orientation : 'top'
};
var graph2d = new vis . Graph2d ( container , items , groups , options );
2015-07-13 20:10:26 +02:00
2015-04-15 12:35:20 +01:00
</ script >