log statistics module, fixed several errors
This commit is contained in:
parent
51ad6f8cff
commit
5a6294bdb6
@ -11,11 +11,11 @@ class ConnectionMYS extends ConnectionAbstr {
|
||||
|
||||
$this->connection = mysqli_connect($dbinfo->m_host, $dbinfo->m_user, $dbinfo->m_password, $new_link, $client_flag);
|
||||
if(!$this->connection){
|
||||
throw new \Exception('Could not connect to Database. Check ur Database Settings');}
|
||||
throw new \SYSTEM\LOG\ERROR('Could not connect to Database. Check ur Database Settings');}
|
||||
|
||||
if(!mysqli_select_db($this->connection, $dbinfo->m_database)){
|
||||
mysqli_close($this->connection);
|
||||
throw new \Exception('Could not select Database. Check ur Database Settings: '.mysqli_error($this->connection));}
|
||||
throw new \SYSTEM\LOG\ERROR('Could not select Database. Check ur Database Settings: '.mysqli_error($this->connection));}
|
||||
}
|
||||
|
||||
public function __destruct(){
|
||||
@ -24,7 +24,7 @@ class ConnectionMYS extends ConnectionAbstr {
|
||||
public function prepare($stmtName, $stmt, $values){
|
||||
$prepStmt = \mysqli_prepare($this->connection, $stmt);
|
||||
if(!$prepStmt){
|
||||
throw new \Exception('Prepared Statement prepare fail: '. \mysqli_error($this->connection));}
|
||||
throw new \SYSTEM\LOG\ERROR('Prepared Statement prepare fail: '. \mysqli_error($this->connection));}
|
||||
|
||||
$types = '';
|
||||
$binds = array($prepStmt,null);
|
||||
@ -36,7 +36,7 @@ class ConnectionMYS extends ConnectionAbstr {
|
||||
\call_user_func_array('mysqli_stmt_bind_param', $binds);
|
||||
|
||||
if(!mysqli_stmt_execute($prepStmt)){
|
||||
throw new \Exception("Could not execute prepare statement: ". \mysqli_stmt_error($prepStmt));}
|
||||
throw new \SYSTEM\LOG\ERROR("Could not execute prepare statement: ". \mysqli_stmt_error($prepStmt));}
|
||||
|
||||
return new ResultMysqliPrepare($prepStmt);
|
||||
}
|
||||
@ -47,7 +47,7 @@ class ConnectionMYS extends ConnectionAbstr {
|
||||
public function query($query){
|
||||
$result = mysqli_query($this->connection, $query);
|
||||
if(!$result){
|
||||
throw new \Exception('Could not query Database. Check ur Query Syntax or required Rights: '.mysqli_error($this->connection));}
|
||||
throw new \SYSTEM\LOG\ERROR('Could not query Database. Check ur Query Syntax or required Rights: '.mysqli_error($this->connection));}
|
||||
|
||||
if($result === TRUE){
|
||||
return TRUE;}
|
||||
|
||||
@ -32,5 +32,7 @@ INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, ve
|
||||
|
||||
INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (50, 42, 3, 3, 'filter', 'filter', 'STRING');
|
||||
INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (51, 42, 3, 3, 'error', 'error', 'INT');
|
||||
INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (52, 42, 0, 3, 'stats', 'name', null);
|
||||
INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (53, 42, 3, 52, null, 'filter', 'UINT');
|
||||
|
||||
INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (300, 42, 4, -1, NULL, '_lang', 'LANG');
|
||||
@ -19,7 +19,7 @@ function load_log_tab(action){
|
||||
return;
|
||||
case 'stats':
|
||||
$('#tab_stats').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_log&action='+action, function(){
|
||||
drawVisualization();
|
||||
register_stats();
|
||||
$('img#loader').hide();});
|
||||
return;
|
||||
case 'admin':
|
||||
@ -58,6 +58,31 @@ function register_log(){
|
||||
load_table_log($(this).attr('filter'));
|
||||
});
|
||||
}
|
||||
var filter_time = 604800;
|
||||
var last_active = "#basic_tab";
|
||||
function register_stats(){
|
||||
filter_time = 604800;
|
||||
$('#stats_tabs a').click(function (e) {
|
||||
e.preventDefault();
|
||||
$(this).tab('show');
|
||||
last_active = $(this).attr('href');
|
||||
$($(this).attr('href')+' .visualisation').each(function(){
|
||||
load_visualisation($(this).attr('id'),filter_time);
|
||||
});
|
||||
});
|
||||
$("#stats_filter a").click(function(){
|
||||
$('#stats_filter li').each(function(){
|
||||
$(this).removeClass('active');});
|
||||
$(this).parent().addClass('active');
|
||||
filter_time = $(this).attr('filter');
|
||||
$(last_active+' .visualisation').each(function(){
|
||||
load_visualisation($(this).attr('id'),filter_time);
|
||||
});
|
||||
});
|
||||
$('#basic_tab .visualisation').each(function(){
|
||||
load_visualisation($(this).attr('id'),filter_time);
|
||||
});
|
||||
}
|
||||
|
||||
function register_admin(){
|
||||
$('#truncate_table').click(function(){
|
||||
@ -76,107 +101,28 @@ function register_admin(){
|
||||
});
|
||||
}
|
||||
|
||||
function drawVisualization() {
|
||||
function load_visualisation(id, filter){
|
||||
$('img#loader').show();
|
||||
$.getJSON(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_log&action=visualization',function(json){
|
||||
if(!json || json.status != true){
|
||||
$.getJSON(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_log&action=stats&name='+id+'&filter='+filter,function(json){
|
||||
if(!json || json.status != true || !json.result){
|
||||
$('img#loader').hide();
|
||||
return;
|
||||
}
|
||||
json = json.result;
|
||||
var data1 = new google.visualization.DataTable();
|
||||
data1.addColumn('date', 'day');
|
||||
data1.addColumn('number', 'count');
|
||||
//data.addColumn('string', 'from to');
|
||||
data1.addColumn('number', 'file_unique');
|
||||
data1.addColumn('number', 'ip_unique');
|
||||
data1.addColumn('number', 'text_unique');
|
||||
data1.addColumn('number', 'class_unique');
|
||||
|
||||
var data2 = new google.visualization.DataTable();
|
||||
data2.addColumn('date', 'day');
|
||||
data2.addColumn('number', 'count');
|
||||
data2.addColumn('number', 'querytime avg');
|
||||
data2.addColumn('number', 'querytime max');
|
||||
data2.addColumn('number', 'querytime min');
|
||||
|
||||
var data3 = new google.visualization.DataTable();
|
||||
data3.addColumn('date', 'day');
|
||||
data3.addColumn('number', 'count');
|
||||
data3.addColumn('number', 'class_info');
|
||||
data3.addColumn('number', 'class_deprecated');
|
||||
data3.addColumn('number', 'class_warning');
|
||||
data3.addColumn('number', 'class_error');
|
||||
data3.addColumn('number', 'class_apperror');
|
||||
|
||||
var data4 = new google.visualization.DataTable();
|
||||
data4.addColumn('date', 'day');
|
||||
data4.addColumn('number', 'count');
|
||||
data4.addColumn('number', 'class_system_log_info');
|
||||
data4.addColumn('number', 'class_system_log_deprecated');
|
||||
data4.addColumn('number', 'class_system_log_warning');
|
||||
data4.addColumn('number', 'class_system_log_error');
|
||||
data4.addColumn('number', 'class_system_log_errorexception');
|
||||
data4.addColumn('number', 'class_system_log_shutdownexception');
|
||||
|
||||
var data5 = new google.visualization.DataTable();
|
||||
data5.addColumn('date', 'day');
|
||||
data5.addColumn('number', 'count');
|
||||
data5.addColumn('number', 'class_exception');
|
||||
data5.addColumn('number', 'class_runtimeexception');
|
||||
data5.addColumn('number', 'class_errorexception');
|
||||
data5.addColumn('number', 'class_other');
|
||||
|
||||
$.each(json, function(key, value){
|
||||
data1.addRow([ new Date(value.day),
|
||||
parseInt(value.count),
|
||||
parseInt(value.file_unique),
|
||||
parseInt(value.ip_unique),
|
||||
parseInt(value.text_unique),
|
||||
parseInt(value.class_unique)]);
|
||||
data2.addRow([ new Date(value.day),
|
||||
parseInt(value.count),
|
||||
parseFloat(value.querytime_avg),
|
||||
parseFloat(value.querytime_max),
|
||||
parseFloat(value.querytime_min)]);
|
||||
data3.addRow([ new Date(value.day),
|
||||
parseInt(value.count),
|
||||
parseInt(value.class_info)+0.5,
|
||||
parseInt(value.class_deprecated)+0.5,
|
||||
parseInt(value.class_warning)+0.5,
|
||||
parseInt(value.class_error)+0.5,
|
||||
parseInt(value.class_apperror)+0.5]);
|
||||
data4.addRow([ new Date(value.day),
|
||||
parseInt(value.count),
|
||||
parseInt(value.class_system_log_info)+0.5,
|
||||
parseInt(value.class_system_log_deprecated)+0.5,
|
||||
parseInt(value.class_system_log_warning)+0.5,
|
||||
parseInt(value.class_system_log_error)+0.5,
|
||||
parseInt(value.class_system_log_errorexception)+0.5,
|
||||
parseInt(value.class_system_log_shutdownexception)+0.5]);
|
||||
data5.addRow([ new Date(value.day),
|
||||
parseInt(value.count),
|
||||
parseInt(value.class_exception)+0.5,
|
||||
parseInt(value.class_runtimeexception)+0.5,
|
||||
parseInt(value.class_errorexception)+0.5,
|
||||
parseInt(value.count)+0.5 - parseInt(value.class_info) - parseInt(value.class_deprecated) - parseInt(value.class_warning) - parseInt(value.class_error) - parseInt(value.class_apperror) - parseInt(value.class_system_log_info) - parseInt(value.class_system_log_deprecated) - parseInt(value.class_system_log_warning) - parseInt(value.class_system_log_error) - parseInt(value.class_system_log_errorexception) - parseInt(value.class_system_log_shutdownexception) - parseInt(value.class_exception) - parseInt(value.class_runtimeexception) - parseInt(value.class_errorexception)]);
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Create and draw the visualization.
|
||||
var options = {title: 'Exception Occurrence', aggregationTarget: 'category', selectionMode: 'multiple', /*focusTarget: 'category',*/ chartArea:{left:100,top:40}, vAxis:{logScale: true}, interpolateNulls: false, width: "1400", height: "500"};
|
||||
new google.visualization.LineChart(document.getElementById('visualization1')).draw(data1, options);
|
||||
var options = {title: 'Exception Querytime', /*focusTarget: 'category',*/ chartArea:{left:100,top:40}, vAxis:{logScale: true}, interpolateNulls: false, width: "1400", height: "500"};
|
||||
new google.visualization.LineChart(document.getElementById('visualization2')).draw(data2, options);
|
||||
var options = {title: 'Exception Classes - basic', /*focusTarget: 'category',*/ chartArea:{left:100,top:40}, vAxis:{logScale: true}, interpolateNulls: false, width: "1400", height: "500"};
|
||||
new google.visualization.LineChart(document.getElementById('visualization3')).draw(data3, options);
|
||||
var options = {title: 'Exception Classes - system', /*focusTarget: 'category',*/ chartArea:{left:100,top:40}, vAxis:{logScale: true}, interpolateNulls: false, width: "1400", height: "500"};
|
||||
new google.visualization.LineChart(document.getElementById('visualization4')).draw(data4, options);
|
||||
var options = {title: 'Exception Classes - other', /*focusTarget: 'category',*/ chartArea:{left:100,top:40}, vAxis:{logScale: true}, interpolateNulls: false, width: "1400", height: "500"};
|
||||
new google.visualization.LineChart(document.getElementById('visualization5')).draw(data5, options);
|
||||
|
||||
$('img#loader').hide();
|
||||
var data = new google.visualization.DataTable();
|
||||
first = true;
|
||||
$.each(json[0], function(key, value){
|
||||
if(first){
|
||||
data.addColumn('datetime',key);
|
||||
first = false;
|
||||
} else {
|
||||
data.addColumn('number',key);
|
||||
}
|
||||
});
|
||||
$.each(json, function(key, value){first = true; data.addRow($.map(value, function(v) { if(first){first=false;return [new Date(v)];}else{return [(v == null || parseFloat(v) <= 0) ? 0.1 : parseFloat(v)];}}));});
|
||||
|
||||
var options = {title: id, aggregationTarget: 'category', selectionMode: 'multiple', /*focusTarget: 'category',*/ chartArea:{left:100,top:40}, vAxis:{logScale: true}, interpolateNulls: false, width: "1200", height: "500"};
|
||||
new google.visualization.LineChart(document.getElementById(id)).draw(data, options);
|
||||
});
|
||||
}
|
||||
@ -24,68 +24,273 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule {
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_admin.tpl'), $vars);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_visualization(){
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_class_system($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT '.\SYSTEM\DBD\system_log::FIELD_TIME.'::date as day,'
|
||||
.'min('.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_min,'
|
||||
.'max('.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_max,'
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'avg('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_avg,'
|
||||
.'max('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_max,'
|
||||
.'min('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_min,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_FILE.') as file_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_MESSAGE.') as text_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_CLASS.') as class_unique,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'INFO\' then 1 else 0 end) class_INFO,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'DEPRECATED\' then 1 else 0 end) class_DEPRECATED,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'WARNING\' then 1 else 0 end) class_WARNING,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'ERROR\' then 1 else 0 end) class_ERROR,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'AppError\' then 1 else 0 end) class_AppError,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\COUNTER\' then 1 else 0 end) class_SYSTEM_LOG_COUNTER,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\INFO\' then 1 else 0 end) class_SYSTEM_LOG_INFO,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\DEPRECATED\' then 1 else 0 end) class_SYSTEM_LOG_DEPRECATED,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\WARNING\' then 1 else 0 end) class_SYSTEM_LOG_WARNING,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\ERROR\' then 1 else 0 end) class_SYSTEM_LOG_ERROR,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\ERROR_EXCEPTION\' then 1 else 0 end) class_SYSTEM_LOG_ERROR_EXCEPTION,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\SHUTDOWN_EXCEPTION\' then 1 else 0 end) class_SYSTEM_LOG_SHUTDOWN_EXCEPTION,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\SHUTDOWN_EXCEPTION\' then 1 else 0 end) class_SYSTEM_LOG_SHUTDOWN_EXCEPTION'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_class_other($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'Exception\' then 1 else 0 end) class_Exception,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'RuntimeException\' then 1 else 0 end) class_RuntimeException,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'ErrorException\' then 1 else 0 end) class_ErrorException'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 365;');
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
$res = $con->query('SELECT DATE('.\SYSTEM\DBD\system_log::FIELD_TIME.') as day,'
|
||||
.'min('.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_min,'
|
||||
.'max('.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_max,'
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_class_basic($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'ERROR\' then 1 else 0 end) class_ERROR,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'WARNING\' then 1 else 0 end) class_WARNING,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'INFO\' then 1 else 0 end) class_INFO,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'DEPRECATED\' then 1 else 0 end) class_DEPRECATED,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'AppError\' then 1 else 0 end) class_AppError'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_basic_sucess($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'sum(case when not '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\COUNTER\' and'
|
||||
.' not '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\INFO\' and'
|
||||
.' not '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'INFO\' and'
|
||||
.' not '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\DEPRECATED\' and'
|
||||
.' not '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'EPRECATED\' '
|
||||
.'then 1 else 0 end) class_fail,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\INFO\' or '
|
||||
.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\INFO\' or '
|
||||
.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'INFO\' or '
|
||||
.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\DEPRECATED\' or '
|
||||
.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'EPRECATED\' '
|
||||
.'then 1 else 0 end) class_log,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\COUNTER\' then 1 else 0 end) class_sucess'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_basic_querytime($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'avg('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_avg,'
|
||||
.'max('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_max,'
|
||||
.'min('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_min,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_FILE.') as file_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_MESSAGE.') as text_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_CLASS.') as class_unique,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'INFO\' then 1 else 0 end) class_INFO,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'DEPRECATED\' then 1 else 0 end) class_DEPRECATED,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'WARNING\' then 1 else 0 end) class_WARNING,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'ERROR\' then 1 else 0 end) class_ERROR,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'AppError\' then 1 else 0 end) class_AppError,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\INFO\' then 1 else 0 end) class_SYSTEM_LOG_INFO,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\DEPRECATED\' then 1 else 0 end) class_SYSTEM_LOG_DEPRECATED,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\WARNING\' then 1 else 0 end) class_SYSTEM_LOG_WARNING,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\ERROR\' then 1 else 0 end) class_SYSTEM_LOG_ERROR,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\ERROR_EXCEPTION\' then 1 else 0 end) class_SYSTEM_LOG_ERROR_EXCEPTION,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'SYSTEM\LOG\SHUTDOWN_EXCEPTION\' then 1 else 0 end) class_SYSTEM_LOG_SHUTDOWN_EXCEPTION,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'Exception\' then 1 else 0 end) class_Exception,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'RuntimeException\' then 1 else 0 end) class_RuntimeException,'
|
||||
.'sum(case when '.\SYSTEM\DBD\system_log::FIELD_CLASS.' = \'ErrorException\' then 1 else 0 end) class_ErrorException'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_MYS
|
||||
.'variance('.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_var'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 365;');
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_unique_basic($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'count(distinct "'.\SYSTEM\DBD\system_log::FIELD_USER.'") as user_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_FILE.') as file_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_LINE.') as line_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TRACE.') as trace_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_MESSAGE.') as text_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_CLASS.') as class_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_NAME.') as server_name_unique'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_PORT.') as server_port_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_REQUEST_URI.') as request_uri_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_POST.') as post_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_REFERER.') as http_referer_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_USER_AGENT.') as http_user_agent_unique'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_unique_request($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
//.'count(distinct "'.\SYSTEM\DBD\system_log::FIELD_USER.'") as user_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_FILE.') as file_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_LINE.') as line_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TRACE.') as trace_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_MESSAGE.') as text_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_CLASS.') as class_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_NAME.') as server_name_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_PORT.') as server_port_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_REQUEST_URI.') as request_uri_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_POST.') as post_unique'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_REFERER.') as http_referer_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_USER_AGENT.') as http_user_agent_unique'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_unique_exception($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
//.'count(distinct "'.\SYSTEM\DBD\system_log::FIELD_USER.'") as user_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_FILE.') as file_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_LINE.') as line_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TRACE.') as trace_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_MESSAGE.') as text_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_CLASS.') as class_unique'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_NAME.') as server_name_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_PORT.') as server_port_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_REQUEST_URI.') as request_uri_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_POST.') as post_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_REFERER.') as http_referer_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_USER_AGENT.') as http_user_agent_unique'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_unique_referer($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'count(distinct "'.\SYSTEM\DBD\system_log::FIELD_USER.'") as user_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_FILE.') as file_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_LINE.') as line_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TRACE.') as trace_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_MESSAGE.') as text_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_CLASS.') as class_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_QUERYTIME.') as querytime_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_TIME.') as time_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_NAME.') as server_name_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_SERVER_PORT.') as server_port_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_REQUEST_URI.') as request_uri_unique,'
|
||||
//.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_POST.') as post_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_REFERER.') as http_referer_unique,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_HTTP_USER_AGENT.') as http_user_agent_unique'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
$result[] = $row;}
|
||||
|
||||
return \SYSTEM\LOG\JsonResult::toString($result);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_stats_name_basic_visitor($filter){
|
||||
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
|
||||
if(\SYSTEM\system::isSystemDbInfoPG()){
|
||||
$res = $con->query('SELECT to_timestamp(extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int - (extract(epoch from '.\SYSTEM\DBD\system_log::FIELD_TIME.')::int % '.$filter.')) as day,'
|
||||
.'count(*) as count,'
|
||||
.'count(distinct "'.\SYSTEM\DBD\system_log::FIELD_USER.'") as user_unique,'
|
||||
//.'variance(distinct "'.\SYSTEM\DBD\system_log::FIELD_USER.'") as user_var,'
|
||||
.'count(distinct '.\SYSTEM\DBD\system_log::FIELD_IP.') as ip_unique'
|
||||
.' FROM '.\SYSTEM\DBD\system_log::NAME_PG
|
||||
.' GROUP BY day'
|
||||
.' ORDER BY day DESC'
|
||||
.' LIMIT 30;');
|
||||
} else {
|
||||
}
|
||||
$result = array();
|
||||
while($row = $res->next()){
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<ul class="nav nav-pills" id="error_filter">
|
||||
<button id="refresh_error_table" class="btn" style="height: 32px; font-size: 13px; float: right;">Refresh</button>
|
||||
<li class="active"><a href="#" filter="">All</a></li>
|
||||
${error_filter}
|
||||
<button id="refresh_error_table" class="btn" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Refresh</button>
|
||||
</ul>
|
||||
<div id="table_log">${table}</div>
|
||||
@ -1,5 +1,40 @@
|
||||
<div id="visualization1"></div>
|
||||
<div id="visualization2"></div>
|
||||
<div id="visualization3"></div>
|
||||
<div id="visualization4"></div>
|
||||
<div id="visualization5"></div>
|
||||
<ul class="nav nav-pills" id="stats_filter" style="">
|
||||
<!--<li><a href="#" filter="31536000">365d</a></li>-->
|
||||
<li><a href="#" filter="2592000">30d</a></li>
|
||||
<li><a href="#" filter="1209600">14d</a></li>
|
||||
<li class="active"><a href="#" filter="604800">7d</a></li>
|
||||
<li><a href="#" filter="86400">1d</a></li>
|
||||
<li><a href="#" filter="43200">12h</a></li>
|
||||
<li><a href="#" filter="21600">6h</a></li>
|
||||
<li><a href="#" filter="3600">1h</a></li>
|
||||
<li><a href="#" filter="60">1m</a></li>
|
||||
<li><a href="#" filter="1">1s</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tabbable tabs-left" id="stats_tabs">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#basic_tab">Basics</a></li>
|
||||
<li><a href="#class_tab">Class</a></li>
|
||||
<li><a href="#unique_tab">Unique</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="basic_tab">
|
||||
<div class="visualisation" id="basic_visitor"></div>
|
||||
<div class="visualisation" id="basic_sucess"></div>
|
||||
<div class="visualisation" id="basic_querytime"></div>
|
||||
</br>
|
||||
</div>
|
||||
<div class="tab-pane" id="class_tab">
|
||||
<div class="visualisation" id="class_basic"></div>
|
||||
<div class="visualisation" id="class_system"></div>
|
||||
<div class="visualisation" id="class_other"></div>
|
||||
</br>
|
||||
</div>
|
||||
<div class="tab-pane" id="unique_tab">
|
||||
<div class="visualisation" id="unique_basic"></div>
|
||||
<div class="visualisation" id="unique_exception"></div>
|
||||
<div class="visualisation" id="unique_referer"></div>
|
||||
</br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
x
Reference in New Issue
Block a user