From 2134703b4bb9847d0efeac3b28ceefb7d1f26271 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Sun, 26 Dec 2021 22:44:46 +0100 Subject: [enh] settings.yml: implement general.enable_metrics * allow not to record metrics (response time, etc...) * this commit doesn't change the UI. If the metrics are disabled /stats and /stats/errors will return empty response. in /preferences, the columns response time and reliability will be empty. --- searx/metrics/error_recorder.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'searx/metrics/error_recorder.py') diff --git a/searx/metrics/error_recorder.py b/searx/metrics/error_recorder.py index 76d27f64f..1d0d6e7a3 100644 --- a/searx/metrics/error_recorder.py +++ b/searx/metrics/error_recorder.py @@ -9,7 +9,7 @@ from searx.exceptions import ( SearxEngineAPIException, SearxEngineAccessDeniedException, ) -from searx import searx_parent_dir +from searx import searx_parent_dir, settings from searx.engines import engines @@ -165,6 +165,8 @@ def get_error_context(framerecords, exception_classname, log_message, log_parame def count_exception(engine_name: str, exc: Exception, secondary: bool = False) -> None: + if not settings['general']['enable_metrics']: + return framerecords = inspect.trace() try: exception_classname = get_exception_classname(exc) @@ -178,6 +180,8 @@ def count_exception(engine_name: str, exc: Exception, secondary: bool = False) - def count_error( engine_name: str, log_message: str, log_parameters: typing.Optional[typing.Tuple] = None, secondary: bool = False ) -> None: + if not settings['general']['enable_metrics']: + return framerecords = list(reversed(inspect.stack()[1:])) try: error_context = get_error_context(framerecords, None, log_message, log_parameters or (), secondary) -- cgit v1.2.3