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()
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)