Added alarm ttl

This commit is contained in:
Tim Kuhlman 2014-03-19 10:05:34 -06:00
parent d5a16b2565
commit c025bab4c2
4 changed files with 16 additions and 4 deletions

View File

@ -119,6 +119,7 @@ def main(argv=None):
alarms,
notifications,
finished,
config['processors']['alarm']['ttl'],
config['mysql']['host'],
config['mysql']['user'],
config['mysql']['passwd'],

View File

@ -3,6 +3,7 @@ import logging
import MySQLdb
import multiprocessing
import statsd
import time
from mon_notification.processors import BaseProcessor
from mon_notification.notification import Notification
@ -13,8 +14,11 @@ log = logging.getLogger(__name__)
class AlarmProcessor(BaseProcessor):
def __init__(self, alarm_queue, notification_queue, finished_queue, mysql_host, mysql_user, mysql_passwd, dbname):
def __init__(
self, alarm_queue, notification_queue, finished_queue,
alarm_ttl, mysql_host, mysql_user, mysql_passwd, dbname):
self.alarm_queue = alarm_queue
self.alarm_ttl = alarm_ttl
self.notification_queue = notification_queue
self.finished_queue = finished_queue
@ -70,6 +74,12 @@ class AlarmProcessor(BaseProcessor):
log.debug("Read alarm from alarms sent_queue. Partition %d, Offset %d, alarm data %s"
% (partition, offset, alarm))
alarm_age = time.time() - alarm['timestamp'] # Should all be in seconds since epoch
if alarm_age/60 > self.alarm_ttl: # ttl is in minutes not seconds
self._add_to_queue(self.finished_queue, 'finished', (partition, offset))
log.warn('Received alarm older than the ttl, skipping. Alarm from %s' % time.ctime(alarm['timestamp']))
continue
try:
with db_time.time():
cur.execute("SELECT notification_method_id FROM alarm_action WHERE alarm_id = %s", alarm['alarmId'])

View File

@ -21,6 +21,7 @@ email:
processors:
alarm:
number: 2
ttl: 1440 # In minutes, Alarms older than this are not processed
notification:
number: 4

View File

@ -1,3 +1,3 @@
{"alarm-transitioned":{"tenantId":"0","alarmId":"0","alarmName":"test Alarm","oldState":"OK","newState":"ALARM","stateChangeReason":"I am alarming!","timestamp":1394641255}}
{"alarm-transitioned":{"tenantId":"0","alarmId":"1","alarmName":"test Okay","oldState":"ALARM","newState":"OK","stateChangeReason":"Okay, I am not alarming.","timestamp":1394641255}}
{"alarm-transitioned":{"tenantId":"0","alarmId":"2","alarmName":"test Undetermined","oldState":"OK","newState":"UNDETERMINED","stateChangeReason":"Well, maybe I am alarming.","timestamp":1394641255}}
{"alarm-transitioned":{"tenantId":"0","alarmId":"0","alarmName":"test Alarm","oldState":"OK","newState":"ALARM","stateChangeReason":"I am alarming!","timestamp":1395245059}}
{"alarm-transitioned":{"tenantId":"0","alarmId":"1","alarmName":"test Okay","oldState":"ALARM","newState":"OK","stateChangeReason":"Okay, I am not alarming.","timestamp":1395245059}}
{"alarm-transitioned":{"tenantId":"0","alarmId":"2","alarmName":"test Undetermined","oldState":"OK","newState":"UNDETERMINED","stateChangeReason":"Well, maybe I am alarming.","timestamp":1395245059}}