def g_copy_history(self, endclock): lastclock = self._get_lastcopyclock() startclock = cf.clockaddminutes(endclock, -D_HISTORY_COPY_CLOCK_RANGE) if lastclock <= 0: lastclock = startclock if startclock > lastclock and lastclock > 0: endclock2 = cf.clockaddminutes(lastclock, +D_HISTORY_COPY_CLOCK_RANGE*2) endclock = min(endclock, endclock2) startclock = startclock condlist = ["itemid in (%s)" % ",".join(cf.list2strlist(self._itemids))] condlist.append("clock >= %s" % str(startclock)) condlist.append("clock <= %s" % str(endclock)) strwhere = sf.list2where(condlist) strsql = "select itemid, clock, value from history %s;" % (strwhere) if DEBUG: print strsql cf.log(strsql) g_zbx = sf.g_get_data(MYSQL_ZBX, strsql) strsql = "" for row in g_zbx: (itemid, clock, value) = row yield row strsql = "%sreplace into history (itemid, clock, value) values(%s,%s,%s);\n" \ % (strsql, itemid, clock, value) sf.exec_updsql(MYSQL_JUBATUS, strsql) self._upd_lastcopyclock(endclock)
def remove_history(self, basendclock): limitclock = basendclock - D_DATA_KEEP_PERIOD*60 condlist = ["itemid in (%s)" % ",".join(cf.list2strlist(self._itemids))] condlist.append("clock <= %s" % str(limitclock)) strwhere = sf.list2where(condlist) strsql = "delete from history %s;" % (strwhere) sf.exec_updsql(MYSQL_JUBATUS, strsql)
def g_get_history(self, endclock): itemids = self._itemids startclock = cf.clockaddminutes(endclock, -LEARN_PERIOD) condlist = ["itemid in (%s)" % ",".join(cf.list2strlist(itemids))] condlist.append("clock >= %d" % int(startclock)) condlist.append("clock <= %d" % int(endclock)) strwhere = sf.list2where(condlist) # Get history data from Zabbix strsql = "select itemid, clock, value from history %s order by clock, itemid;" % (strwhere) if DEBUG: cf.log(strsql) g_data = sf.g_get_data(MYSQL_JUBATUS, strsql) for row in g_data: (itemid, clock, value) = row yield (itemid, clock, value)