!114 optimize log printing

From: @boluo56 
Reviewed-by: @hubin95 
Signed-off-by: @hubin95
This commit is contained in:
openeuler-ci-bot 2024-10-16 09:31:27 +00:00 committed by Gitee
commit 63cc5a210e
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 279 additions and 1 deletions

53
fix-word-error.patch Normal file
View File

@ -0,0 +1,53 @@
From 5be0d121c6fde185d323dc4bcf3026e2c3ee8757 Mon Sep 17 00:00:00 2001
From: jinsaihang <jinsaihang@h-partners.com>
Date: Mon, 14 Oct 2024 11:30:58 +0800
Subject: [PATCH] fix word error
Signed-off-by: jinsaihang <jinsaihang@h-partners.com>
---
sysSentry-1.0.2/src/python/syssentry/alarm.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/python/syssentry/alarm.py b/src/python/syssentry/alarm.py
index d012901..bff527c 100644
--- a/src/python/syssentry/alarm.py
+++ b/src/python/syssentry/alarm.py
@@ -49,7 +49,7 @@ MAX_ALARM_ID = (MIN_ALARM_ID + MAX_NUM_OF_ALARM_ID - 1)
def update_alarm_list(alarm_info: Xalarm):
alarm_id = xalarm_getid(alarm_info)
if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID:
- logging.warnning(f"Invalid alarm_id {alarm_id}")
+ logging.warning(f"Invalid alarm_id {alarm_id}")
return
timestamp = xalarm_gettime(alarm_info)
if not timestamp:
@@ -97,14 +97,14 @@ def alarm_register():
task = TasksMap.tasks_dict[task_type][task_name]
alarm_id = task.alarm_id
if not check_alarm_id_if_number(alarm_id):
- logging.warnning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
+ logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
continue
if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID:
- logging.warnning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
+ logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
continue
alarm_clear_time = task.alarm_clear_time
if not check_alarm_clear_time_if_positive_integer(alarm_clear_time):
- logging.warnning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
+ logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
continue
try:
alarm_clear_time = int(alarm_clear_time)
@@ -113,7 +113,7 @@ def alarm_register():
if alarm_clear_time > sys.maxsize:
raise ValueError("Exceeds maximum value for int")
except (ValueError, OverflowError, TypeError) as e:
- logging.warnning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
+ logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
continue
alarm_list_dict[alarm_id] = []
task_alarm_id_dict[task_name] = alarm_id
--
2.27.0

125
optimize-log-printing.patch Normal file
View File

@ -0,0 +1,125 @@
From 91c37cec1639c79b2b5ddcd6b173b4d7aa0ce9db Mon Sep 17 00:00:00 2001
From: jinsaihang <jinsaihang@h-partners.com>
Date: Wed, 16 Oct 2024 14:51:24 +0800
Subject: [PATCH] optimize log printing
Signed-off-by: jinsaihang <jinsaihang@h-partners.com>
---
src/python/syssentry/alarm.py | 53 ++++++++++++++++---------------
src/python/syssentry/load_mods.py | 15 +++++----
2 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/src/python/syssentry/alarm.py b/src/python/syssentry/alarm.py
index bff527c..c3f2ee1 100644
--- a/src/python/syssentry/alarm.py
+++ b/src/python/syssentry/alarm.py
@@ -76,16 +76,26 @@ def update_alarm_list(alarm_info: Xalarm):
finally:
alarm_list_lock.release()
-def check_alarm_id_if_number(alarm_id):
- if isinstance(alarm_id, int):
- return True
- else:
+def validate_alarm_id(alarm_id):
+ if alarm_id is None:
+ return False
+ try:
+ alarm_id = int(alarm_id)
+ if MIN_ALARM_ID <= alarm_id <= MAX_ALARM_ID:
+ return True
+ else:
+ return False
+ except ValueError:
return False
-def check_alarm_clear_time_if_positive_integer(alarm_clear_time):
- if isinstance(alarm_clear_time, int) and alarm_clear_time > 0:
- return True
- else:
+def validate_alarm_clear_time(alarm_clear_time):
+ try:
+ alarm_clear_time = int(alarm_clear_time)
+ if alarm_clear_time > 0 and alarm_clear_time <= sys.maxsize:
+ return True
+ else:
+ return False
+ except ValueError:
return False
def alarm_register():
@@ -93,34 +103,25 @@ def alarm_register():
# 初始化告警ID映射字典、告警老化时间字典
for task_type in TasksMap.tasks_dict:
for task_name in TasksMap.tasks_dict[task_type]:
- logging.info(f"alarm_register: {task_name} is registered")
task = TasksMap.tasks_dict[task_type][task_name]
- alarm_id = task.alarm_id
- if not check_alarm_id_if_number(alarm_id):
- logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
+ if not validate_alarm_id(task.alarm_id):
+ logging.warning(f"Invalid alarm_id {task.alarm_id}: ignore {task_name} alarm")
continue
- if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID:
- logging.warning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
+ if not validate_alarm_clear_time(task.alarm_clear_time):
+ logging.warning(f"Invalid alarm_clear_time {task.alarm_clear_time}: ignore {task_name} alarm")
continue
+ task.alarm_id = int(task.alarm_id)
+ task.alarm_clear_time = int(task.alarm_clear_time)
+ alarm_id = task.alarm_id
alarm_clear_time = task.alarm_clear_time
- if not check_alarm_clear_time_if_positive_integer(alarm_clear_time):
- logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
- continue
- try:
- alarm_clear_time = int(alarm_clear_time)
- if alarm_clear_time <= 0:
- raise ValueError("Not a positive integer")
- if alarm_clear_time > sys.maxsize:
- raise ValueError("Exceeds maximum value for int")
- except (ValueError, OverflowError, TypeError) as e:
- logging.warning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
- continue
+
alarm_list_dict[alarm_id] = []
task_alarm_id_dict[task_name] = alarm_id
if alarm_id not in alarm_id_clear_time_dict:
alarm_id_clear_time_dict[alarm_id] = alarm_clear_time
else:
alarm_id_clear_time_dict[alarm_id] = max(alarm_clear_time, alarm_id_clear_time_dict[alarm_id])
+ logging.info(f"alarm_register: {task_name} is registered")
# 注册告警回调
id_filter = [True] * 128
clientId = xalarm_register(update_alarm_list, id_filter)
diff --git a/src/python/syssentry/load_mods.py b/src/python/syssentry/load_mods.py
index f74f165..78db446 100644
--- a/src/python/syssentry/load_mods.py
+++ b/src/python/syssentry/load_mods.py
@@ -198,15 +198,16 @@ def parse_mod_conf(mod_name, mod_conf):
task.load_enabled = is_enabled
try:
- task.alarm_id = int(mod_conf.get(CONF_TASK, CONF_ALARM_ID))
- task.alarm_clear_time = int(mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME))
- if not (MIN_ALARM_ID <= task.alarm_id <= MAX_ALARM_ID):
- raise ValueError("Invalid alarm_id")
- except ValueError:
task.alarm_id = mod_conf.get(CONF_TASK, CONF_ALARM_ID)
- task.alarm_clear_time = mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME)
except configparser.NoOptionError:
- logging.warning("Unset alarm_clear_time, use 15s as default")
+ task.alarm_id = None
+ logging.warning(f"{mod_name} alarm_id not set, alarm_id is None")
+
+ if task.alarm_id is not None:
+ try:
+ task.alarm_clear_time = mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME)
+ except configparser.NoOptionError:
+ logging.warning(f"{mod_name} not set alarm_clear_time, use 15s as default")
if CONF_ONSTART in mod_conf.options(CONF_TASK):
is_onstart = (mod_conf.get(CONF_TASK, CONF_ONSTART) == 'yes')
--
2.27.0

View File

@ -0,0 +1,91 @@
From 7fa9e80531bb3d4fa587e5fb7a99e3af59feda7e Mon Sep 17 00:00:00 2001
From: jinsaihang <jinsaihang@h-partners.com>
Date: Sat, 12 Oct 2024 16:51:37 +0800
Subject: [PATCH] precise alarm query time
Signed-off-by: jinsaihang <jinsaihang@h-partners.com>
---
sysSentry-1.0.2/src/python/syssentry/alarm.py | 25 +++++++++++++++++--
.../src/python/syssentry/load_mods.py | 3 ++-
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/src/python/syssentry/alarm.py b/src/python/syssentry/alarm.py
index 43c1065..d012901 100644
--- a/src/python/syssentry/alarm.py
+++ b/src/python/syssentry/alarm.py
@@ -76,6 +76,18 @@ def update_alarm_list(alarm_info: Xalarm):
finally:
alarm_list_lock.release()
+def check_alarm_id_if_number(alarm_id):
+ if isinstance(alarm_id, int):
+ return True
+ else:
+ return False
+
+def check_alarm_clear_time_if_positive_integer(alarm_clear_time):
+ if isinstance(alarm_clear_time, int) and alarm_clear_time > 0:
+ return True
+ else:
+ return False
+
def alarm_register():
logging.debug(f"alarm_register: enter")
# 初始化告警ID映射字典、告警老化时间字典
@@ -84,10 +96,16 @@ def alarm_register():
logging.info(f"alarm_register: {task_name} is registered")
task = TasksMap.tasks_dict[task_type][task_name]
alarm_id = task.alarm_id
+ if not check_alarm_id_if_number(alarm_id):
+ logging.warnning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
+ continue
if alarm_id < MIN_ALARM_ID or alarm_id > MAX_ALARM_ID:
logging.warnning(f"Invalid alarm_id {alarm_id}: ignore {task_name} alarm")
continue
alarm_clear_time = task.alarm_clear_time
+ if not check_alarm_clear_time_if_positive_integer(alarm_clear_time):
+ logging.warnning(f"Invalid alarm_clear_time {alarm_clear_time}: ignore {task_name} alarm")
+ continue
try:
alarm_clear_time = int(alarm_clear_time)
if alarm_clear_time <= 0:
@@ -119,6 +137,9 @@ def get_alarm_result(task_name: str, time_range: int, detailed: bool) -> List[Di
logging.debug("task_name does not exist")
return []
alarm_id = task_alarm_id_dict[task_name]
+ clear_time = alarm_id_clear_time_dict[alarm_id]
+ if clear_time < int(time_range):
+ return []
if alarm_id not in alarm_list_dict:
logging.debug("alarm_id does not exist")
return []
@@ -126,10 +147,10 @@ def get_alarm_result(task_name: str, time_range: int, detailed: bool) -> List[Di
logging.debug(f"get_alarm_result: alarm_list of {alarm_id} has {len(alarm_list)} elements")
# clear alarm_info older than clear time threshold
stop_index = -1
- timestamp = int(datetime.now().timestamp())
+ timestamp = datetime.now().timestamp()
for i in range(len(alarm_list)):
logging.debug(f"timestamp, alarm_list[{i}].timestamp: {timestamp}, {xalarm_gettime(alarm_list[i])}")
- if timestamp - (xalarm_gettime(alarm_list[i])) / MILLISECONDS_UNIT_SECONDS > int(time_range):
+ if timestamp - (xalarm_gettime(alarm_list[i])) / MILLISECONDS_UNIT_SECONDS > time_range:
stop_index = i
break
if stop_index >= 0:
diff --git a/src/python/syssentry/load_mods.py b/src/python/syssentry/load_mods.py
index 7daf17d..f74f165 100644
--- a/src/python/syssentry/load_mods.py
+++ b/src/python/syssentry/load_mods.py
@@ -203,7 +203,8 @@ def parse_mod_conf(mod_name, mod_conf):
if not (MIN_ALARM_ID <= task.alarm_id <= MAX_ALARM_ID):
raise ValueError("Invalid alarm_id")
except ValueError:
- logging.warning("Invalid alarm_id")
+ task.alarm_id = mod_conf.get(CONF_TASK, CONF_ALARM_ID)
+ task.alarm_clear_time = mod_conf.get(CONF_TASK, CONF_ALARM_CLEAR_TIME)
except configparser.NoOptionError:
logging.warning("Unset alarm_clear_time, use 15s as default")
--
2.27.0

View File

@ -4,7 +4,7 @@
Summary: System Inspection Framework Summary: System Inspection Framework
Name: sysSentry Name: sysSentry
Version: 1.0.2 Version: 1.0.2
Release: 41 Release: 42
License: Mulan PSL v2 License: Mulan PSL v2
Group: System Environment/Daemons Group: System Environment/Daemons
Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz
@ -60,6 +60,9 @@ Patch47: refactor-config.py-and-bugfix-uncorrect-slow-io-repo.patch
Patch48: get_io_data-failed-wont-stop-avg_block_io-and-del-di.patch Patch48: get_io_data-failed-wont-stop-avg_block_io-and-del-di.patch
Patch49: fix-ai_block_io-root-cause-bug.patch Patch49: fix-ai_block_io-root-cause-bug.patch
Patch50: listen-thread-of-collect-module-exits-occasionally.patch Patch50: listen-thread-of-collect-module-exits-occasionally.patch
Patch51: precise-alarm-query-time.patch
Patch52: fix-word-error.patch
Patch53: optimize-log-printing.patch
BuildRequires: cmake gcc-c++ BuildRequires: cmake gcc-c++
BuildRequires: python3 python3-setuptools BuildRequires: python3 python3-setuptools
@ -322,6 +325,12 @@ rm -rf %{buildroot}
%attr(0550,root,root) %{python3_sitelib}/sentryCollector/__pycache__/collect_plugin* %attr(0550,root,root) %{python3_sitelib}/sentryCollector/__pycache__/collect_plugin*
%changelog %changelog
* Wed Oct 16 2024 jinsaihang <jinsaihang@h-partners.com> - 1.0.2-42
- Type:bugfix
- CVE:NA
- SUG:NA
- DESC:optimize log printing
* Wed Oct 16 2024 zhuofeng <zhuofeng2@huawei.com> - 1.0.2-41 * Wed Oct 16 2024 zhuofeng <zhuofeng2@huawei.com> - 1.0.2-41
- Type:bugfix - Type:bugfix
- CVE:NA - CVE:NA