From 43c7e8eb00268570abbaeacbb2689079dddec63d Mon Sep 17 00:00:00 2001 From: weiyaping Date: Fri, 15 Dec 2023 03:50:06 -0500 Subject: [PATCH] fix-bug-procsched-data-collection-issue --- atune_collector/plugin/monitor/process/sched.py | 27 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/atune_collector/plugin/monitor/process/sched.py b/atune_collector/plugin/monitor/process/sched.py index f184957..0fadeba 100644 --- a/atune_collector/plugin/monitor/process/sched.py +++ b/atune_collector/plugin/monitor/process/sched.py @@ -107,7 +107,7 @@ class ProcSched(Monitor): continue pattern = re.compile( - r"(\w+)\ {1,}\:\ {1,}(\d+.\d+)", + r"(\w+)\ {1,}\:\ {1,}(\d+\.?\d*)", re.I | re.UNICODE | re.MULTILINE) search_obj = pattern.findall(info) search_list = [] @@ -118,13 +118,20 @@ class ProcSched(Monitor): search_list.append(obj[0]) search_list.append(obj[1]) if len(search_obj) == 0: - err = LookupError("Fail to find data") - LOGGER.error("%s.%s: %s", self.__class__.__name__, - inspect.stack()[0][3], str(err)) - raise err + return " " + " ".join(['0'] * len(keys)) + proc_data = [] + proc_keys = 0 + proc_step = len(set(keys)) - while start <= len(self.__applications) * len(keys): - for key in keys: - ret = ret + " " + search_list[search_list.index(key, start)+1] - start = search_list.index(key, start) + 1 - return ret \ No newline at end of file + for key in keys: + if len(proc_data) >= self.__proc_flag.count(True) * proc_step: + break + proc_data.append(search_list[search_list.index(key, start) + 1]) + start = search_list.index(key, start) + 1 + for pid_flag in self.__proc_flag: + if not pid_flag: + ret = ret + " " + " ".join(['0'] * proc_step) + else: + ret = ret + " " + " ".join(proc_data[proc_keys:(proc_keys + proc_step)]) + proc_keys += proc_step + return ret -- 1.8.3.1