def remove(self, r, name): monitor = r.user.monitors[name] # remove data from appropriate tables by facet r.connection.execute(t_monitor_log.delete(t_monitor_log.c.monitor_id == monitor.monitor_id)) r.connection.execute(t_error_log.delete(t_error_log.c.monitor_id == monitor.monitor_id)) r.connection.execute(t_monitor_log_hist.delete(t_monitor_log_hist.c.monitor_id == monitor.monitor_id)) for alert_destination in monitor.alert_destinations: r.session.delete(alert_destination) r.session.delete(monitor) r.session.flush() r.hub.touchMonitor(monitor.monitor_id)
def hist_stats_for_monitor(session, monitor, target_datetime_ts, ts_day_start, ts_day_end): log.debug("Monitor %s", monitor.name) facets = session.query(Facet).filter_by(kind=monitor.kind).all() for facet in facets: for hfacet in facet.hist.values(): result = HIST_AGG_MAP[hfacet.agg_type](session, monitor, facet, ts_day_start, ts_day_end) t_monitor_log_hist.insert().execute(monitor_id = monitor.monitor_id, hist_facet_id = hfacet.hist_facet_id, node = 0, ts = target_datetime_ts, value = result) # delete entries older than 14 days from monitor_log and ping_log q = t_monitor_log.delete(and_(t_monitor_log.c.ts < datetime_to_ts(datetime.utcnow().date() - timedelta(days=14)), t_monitor_log.c.monitor_id == monitor.monitor_id)) session.execute(q)