A-Tune-Collector/fix-bug-procsched-data-collection-issue.patch
weiyaping b9aaf76c07 fix bug: procSched.report: list index out of range
Signed-off-by: weiyaping <weiyaping@xfusion.com>
(cherry picked from commit ed026d30b2ef1a9d841c6648131f915f9d581a08)
2023-12-19 16:02:56 +08:00

57 lines
2.3 KiB
Diff

From 43c7e8eb00268570abbaeacbb2689079dddec63d Mon Sep 17 00:00:00 2001
From: weiyaping <weiyaping@xfusion.com>
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