예제 #1
0
파일: monitor.py 프로젝트: ak1394/monimi
 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)
예제 #2
0
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)