diff --git a/optimize-log-printing.patch b/optimize-log-printing.patch new file mode 100644 index 0000000000000000000000000000000000000000..591ae9f69f513c712d6822c1cb6cb3577477bc9e --- /dev/null +++ b/optimize-log-printing.patch @@ -0,0 +1,125 @@ +From 91c37cec1639c79b2b5ddcd6b173b4d7aa0ce9db Mon Sep 17 00:00:00 2001 +From: jinsaihang +Date: Wed, 16 Oct 2024 14:51:24 +0800 +Subject: [PATCH] optimize log printing + +Signed-off-by: jinsaihang +--- + 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 + diff --git a/sysSentry.spec b/sysSentry.spec index cb06392b8310af8283f771911e3122531db41412..d259378e79c381122ca415f6f4d056245cc9b30a 100644 --- a/sysSentry.spec +++ b/sysSentry.spec @@ -4,7 +4,7 @@ Summary: System Inspection Framework Name: sysSentry Version: 1.0.2 -Release: 48 +Release: 49 License: Mulan PSL v2 Group: System Environment/Daemons Source0: https://gitee.com/openeuler/sysSentry/releases/download/v%{version}/%{name}-%{version}.tar.gz @@ -65,6 +65,7 @@ Patch52: get_io_data-failed-wont-stop-avg_block_io-and-del-di.patch Patch53: listen-thread-of-collect-module-exits-occasionally.patch Patch54: fix-ai_block_io-root-cause-bug.patch Patch55: ebpf-fix-kyqin-miss-rq_driver-data.patch +Patch56: optimize-log-printing.patch BuildRequires: cmake gcc-c++ BuildRequires: python3 python3-setuptools @@ -337,6 +338,12 @@ rm -rf %{buildroot} %attr(0550,root,root) %{python3_sitelib}/sentryCollector/__pycache__/collect_plugin* %changelog +* Wed Oct 16 2024 jinsaihang - 1.0.2-49 +- Type:bugfix +- CVE:NA +- SUG:NA +- DES:optimize log printing + * Wed Oct 16 2024 zhangnan - 1.0.2-48 - Type:bugfix - CVE:NA