Example #1
0
 def get(self, key):
     if key not in cfg.events:
         self.send_error(404)
         return
     stamp = yield gen.Task(get, app, key)
     if not stamp:
         self.send_error(404)
         return
     now = datetime.now()
     error, warning = thresholds(stamp, now)
     elapsed = now - stamp.timestamp
     data = format(stamp, error, warning, elapsed)
     self.write(json.dumps(data, default=encoder))
     self.finish()
Example #2
0
def monitor():
    stamps = yield gen.Task(get, app)
    if not stamps:
        return

    now = datetime.now()

    if cfg.silence:
        start, end = silence_gap(now)
        if start <= now <= end:
            return

    for stamp in stamps:
        if stamp.key in cfg.events:
            error, _ = thresholds(stamp, now, start, end)
            elapsed = now - stamp.timestamp
            if elapsed >= timedelta(seconds=error) and elapsed <= alert_duration:
                alert(stamp, **cfg.alert_options)