delete es index over maxsize
Change-Id: If9b3d712cfb5e50b28c5e74cbfa0e2d5272d3d81
This commit is contained in:
parent
4d673fb1fd
commit
ea0d95bf7f
@ -73,9 +73,68 @@ class DeleteESIndexTask(object):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
LOG.error(_LE("delete es index, catch exception:%s"), str(e))
|
LOG.error(_LE("delete es index, catch exception:%s"), str(e))
|
||||||
|
|
||||||
|
def parse_index_size(self, size_str):
|
||||||
|
size_f = 0.0
|
||||||
|
if "kb" in size_str:
|
||||||
|
size_f = float(size_str.replace("kb", "").strip())
|
||||||
|
size_f = size_f * 1024
|
||||||
|
elif "mb" in size_str:
|
||||||
|
size_f = float(size_str.replace("mb", "").strip())
|
||||||
|
size_f = size_f * 1024 * 1024
|
||||||
|
elif "gb" in size_str:
|
||||||
|
size_f = float(size_str.replace("gb", "").strip())
|
||||||
|
size_f = size_f * 1024 * 1024 * 1024
|
||||||
|
elif "tb" in size_str:
|
||||||
|
size_f = float(size_str.replace("tb", "").strip())
|
||||||
|
size_f = size_f * 1024 * 1024 * 1024 * 1024
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return size_f
|
||||||
|
|
||||||
|
def delete_es_oversize_index(self):
|
||||||
|
log_max = self.config_api.get_config("log_max_gb")
|
||||||
|
if log_max is None:
|
||||||
|
LOG.error(_LE("the config of log_max_gb do not exist"))
|
||||||
|
return
|
||||||
|
|
||||||
|
LOG.info(_LI("es indexes(log) max(GB): %s"), log_max)
|
||||||
|
log_max_int = float(log_max) * 1024 * 1024 * 1024
|
||||||
|
now_log_total = 0
|
||||||
|
today = time.strftime('%Y-%m-%d')
|
||||||
|
try:
|
||||||
|
indexes_array = self.search_lib.get_all_index()
|
||||||
|
for index in indexes_array:
|
||||||
|
size_str = index["store.size"].lower()
|
||||||
|
size_f = self.parse_index_size(size_str)
|
||||||
|
now_log_total = now_log_total + size_f
|
||||||
|
|
||||||
|
while now_log_total > log_max_int:
|
||||||
|
max_diff_days = -1
|
||||||
|
todo_delete_index = None
|
||||||
|
for index in indexes_array:
|
||||||
|
index_name = index["index"]
|
||||||
|
index_d = index_name.split('-')[1]
|
||||||
|
size_str = index["store.size"].lower()
|
||||||
|
size_f = self.parse_index_size(size_str)
|
||||||
|
dt_today = datetime.datetime.strptime(today, "%Y-%m-%d")
|
||||||
|
dt_index = datetime.datetime.strptime(index_d, '%Y.%m.%d')
|
||||||
|
dt_diff = dt_today - dt_index
|
||||||
|
if dt_diff.days > max_diff_days:
|
||||||
|
max_diff_days = dt_diff.days
|
||||||
|
todo_delete_index = index_name
|
||||||
|
|
||||||
|
if todo_delete_index:
|
||||||
|
LOG.info(_LI("deleted index %s"), index_name)
|
||||||
|
self.delete_index(todo_delete_index)
|
||||||
|
now_log_total = now_log_total - size_f
|
||||||
|
except Exception as e:
|
||||||
|
LOG.error(_LE("delete es index, catch exception:%s"), str(e))
|
||||||
|
|
||||||
def start_task(self):
|
def start_task(self):
|
||||||
try:
|
try:
|
||||||
self.delete_es_outdated_index()
|
self.delete_es_outdated_index()
|
||||||
|
self.delete_es_oversize_index()
|
||||||
LOG.info(_LI("delete es index task done"))
|
LOG.info(_LI("delete es index task done"))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
LOG.error(_LE("delete es index task, catch exception:%s"), str(e))
|
LOG.error(_LE("delete es index task, catch exception:%s"), str(e))
|
||||||
|
Loading…
Reference in New Issue
Block a user