0, // total messages count 'rate' => 0, // rate per second 'last_id' => 0, // last message id (seq) 'last_unixtime' => time() // last polled time ]; } print_debug_vars($syslog_stats); $sql = 'SELECT COUNT(*) AS `count`, MAX(`seq`) AS `seq` FROM `syslog` '; $syslog_db = dbFetchRow($sql . generate_where_clause($where, '`seq` > ' . (int)$syslog_stats['last_id'])); // auto increment was reset? if (!$syslog_db['count'] && ($auto_id = dbShowNextID('syslog')) && $auto_id < $syslog_stats['last_id']) { print_debug('Auto increment of syslog table was reset.'); $syslog_db = dbFetchRow($sql . generate_where_clause($where)); } $syslog_count = int_add($syslog_stats['count'], $syslog_db['count']); $syslog_time = time(); $syslog_period = $syslog_time - $syslog_stats['last_unixtime']; $syslog_rate = float_div($syslog_db['count'], $syslog_period); //check_entity('syslog', $device, [ 'count' => $syslog_count, 'rate' => $syslog_rate ]); $alert_metrics['syslog_count_total'] = $syslog_count; $alert_metrics['syslog_count'] = $syslog_stats['count']; $alert_metrics['syslog_rate'] = $syslog_rate; rrdtool_update_ng($device, 'syslog', [ 'count' => $syslog_count, 'messages' => $syslog_count ]); $graphs['syslog_count'] = TRUE; $graphs['syslog_messages'] = TRUE; // store new stats $syslog_stats = [ 'count' => $syslog_count, // total messages count 'rate' => $syslog_rate, // rate per second 'last_id' => $syslog_db['seq'], // last message id (seq) 'last_unixtime' => $syslog_time // last polled time ]; print_debug_vars($syslog_stats, 1); set_entity_attrib('device', $device['device_id'], 'syslog_stats', safe_json_encode($syslog_stats)); // EOF