Merge pull request #3138 from f0o/minor-alerting-addons

Minor alerting addons
This commit is contained in:
Neil Lathwood
2016-03-08 21:00:37 +00:00
3 changed files with 29 additions and 11 deletions
+27 -9
View File
@@ -195,10 +195,12 @@ function RunFollowUp() {
if ($n > $o) { if ($n > $o) {
$ret .= ' Worsens'; $ret .= ' Worsens';
$state = 3; $state = 3;
$alert['details']['diff'] = array_diff($chk,$alert['details']['rule']);
} }
else if ($n < $o) { elseif ($n < $o) {
$ret .= ' Betters'; $ret .= ' Betters';
$state = 4; $state = 4;
$alert['details']['diff'] = array_diff($alert['details']['rule'],$chk);
} }
if ($state > 0 && $n > 0) { if ($state > 0 && $n > 0) {
@@ -370,15 +372,15 @@ function FormatAlertTpl($obj) {
$s = strlen($msg); $s = strlen($msg);
$x = $pos = -1; $x = $pos = -1;
$buff = ''; $buff = '';
$if = $for = false; $if = $for = $calc = false;
while (++$x < $s) { while (++$x < $s) {
if ($msg[$x] == '{' && $buff == '') { if ($msg[$x] == '{' && $buff == '') {
$buff .= $msg[$x]; $buff .= $msg[$x];
} }
else if ($buff == '{ ') { elseif ($buff == '{ ') {
$buff = ''; $buff = '';
} }
else if ($buff != '') { elseif ($buff != '') {
$buff .= $msg[$x]; $buff .= $msg[$x];
} }
@@ -386,10 +388,14 @@ function FormatAlertTpl($obj) {
$pos = $x; $pos = $x;
$if = true; $if = true;
} }
else if ($buff == '{foreach') { elseif ($buff == '{foreach') {
$pos = $x; $pos = $x;
$for = true; $for = true;
} }
elseif ($buff == '{calc') {
$pos = $x;
$calc = true;
}
if ($pos != -1 && $msg[$x] == '}') { if ($pos != -1 && $msg[$x] == '}') {
$orig = $buff; $orig = $buff;
@@ -403,7 +409,7 @@ function FormatAlertTpl($obj) {
' ) { $ret .= "', ' ) { $ret .= "',
); );
} }
else if ($for) { elseif ($for) {
$for = false; $for = false;
$o = 8; $o = 8;
$native = array( $native = array(
@@ -411,6 +417,14 @@ function FormatAlertTpl($obj) {
' as $key=>$value) { $ret .= "', ' as $key=>$value) { $ret .= "',
); );
} }
elseif ($calc) {
$calc = false;
$o = 5;
$native = array(
'"; $ret .= (float) (0+(',
')); $ret .= "',
);
}
else { else {
continue; continue;
} }
@@ -457,10 +471,10 @@ function DescribeAlert($alert) {
if ($alert['state'] == 2) { if ($alert['state'] == 2) {
$obj['title'] .= ' got acknowledged'; $obj['title'] .= ' got acknowledged';
} }
else if ($alert['state'] == 3) { elseif ($alert['state'] == 3) {
$obj['title'] .= ' got worse'; $obj['title'] .= ' got worse';
} }
else if ($alert['state'] == 4) { elseif ($alert['state'] == 4) {
$obj['title'] .= ' got better'; $obj['title'] .= ' got better';
} }
@@ -473,8 +487,12 @@ function DescribeAlert($alert) {
} }
} }
} }
$obj['elapsed'] = TimeFormat(time() - strtotime($alert['time_logged']));
if( !empty($extra['diff']) ) {
$obj['diff'] = $extra['diff'];
}
} }
else if ($alert['state'] == 0) { elseif ($alert['state'] == 0) {
$id = dbFetchRow('SELECT alert_log.id,alert_log.time_logged,alert_log.details FROM alert_log WHERE alert_log.state != 2 && alert_log.state != 0 && alert_log.rule_id = ? && alert_log.device_id = ? && alert_log.id < ? ORDER BY id DESC LIMIT 1', array($alert['rule_id'], $alert['device_id'], $alert['id'])); $id = dbFetchRow('SELECT alert_log.id,alert_log.time_logged,alert_log.details FROM alert_log WHERE alert_log.state != 2 && alert_log.state != 0 && alert_log.rule_id = ? && alert_log.device_id = ? && alert_log.id < ? ORDER BY id DESC LIMIT 1', array($alert['rule_id'], $alert['device_id'], $alert['id']));
if (empty($id['id'])) { if (empty($id['id'])) {
return false; return false;
+1 -1
View File
@@ -37,7 +37,7 @@ function GenSQL($rule) {
return false; return false;
} }
//Pretty-print rule to dissect easier //Pretty-print rule to dissect easier
$pretty = array('*' => ' * ', '(' => ' ( ', ')' => ' ) ', '/' => ' / ', '&&' => ' && ', '||' => ' || ', 'DATE_SUB ( NOW ( )' => 'DATE_SUB( NOW()'); $pretty = array('*' => '*', '(' => ' ( ', ')' => ' ) ', '/' => '/', '&&' => ' && ', '||' => ' || ', 'DATE_SUB ( NOW ( )' => 'DATE_SUB( NOW()');
$rule = str_replace(array_keys($pretty),$pretty,$rule); $rule = str_replace(array_keys($pretty),$pretty,$rule);
$tmp = explode(" ",$rule); $tmp = explode(" ",$rule);
$tables = array(); $tables = array();
+1 -1
View File
@@ -21,4 +21,4 @@
* @subpackage Alerts * @subpackage Alerts
*/ */
return send_mail($obj['contacts'], $obj['title'], $obj['msg']); return send_mail($obj['contacts'], $obj['title'], $obj['msg'], $opts['html'] ? true : false );