summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-01-17 16:14:16 +0100
committerAlexandre Flament <alex@al-f.net>2021-01-18 08:19:44 +0100
commitd473407ec97107022ccbdd366559001b1ec162d8 (patch)
tree8924f2d081963dc7d65b1a4beaeda7214a6874f5
parentca76f3119a4d66cb8aa74829ca5f0a0a72f0f96b (diff)
[fix] checker: fix engine statistics
Without this commit, the URL /stats/errors shows percentage above 100% after the checker has run.
-rw-r--r--searx/metrology/error_recorder.py4
-rw-r--r--searx/search/checker/impl.py3
-rw-r--r--searx/search/processors/abstract.py4
3 files changed, 7 insertions, 4 deletions
diff --git a/searx/metrology/error_recorder.py b/searx/metrology/error_recorder.py
index bd8404ad1..f533e4e8b 100644
--- a/searx/metrology/error_recorder.py
+++ b/searx/metrology/error_recorder.py
@@ -53,9 +53,9 @@ def add_error_context(engine_name: str, error_context: ErrorContext) -> None:
def get_trace(traces):
for trace in reversed(traces):
split_filename = trace.filename.split('/')
- if len(split_filename) > 3 and '/'.join(split_filename[-3:-1]) == 'searx/engines':
+ if '/'.join(split_filename[-3:-1]) == 'searx/engines':
return trace
- if len(split_filename) > 3 and '/'.join(split_filename[-4:-1]) == 'searx/search/processors':
+ if '/'.join(split_filename[-4:-1]) == 'searx/search/processors':
return trace
return traces[-1]
diff --git a/searx/search/checker/impl.py b/searx/search/checker/impl.py
index 71a941f73..244536f1b 100644
--- a/searx/search/checker/impl.py
+++ b/searx/search/checker/impl.py
@@ -4,6 +4,7 @@ import typing
import types
import functools
import itertools
+import threading
from time import time
from urllib.parse import urlparse
@@ -377,6 +378,8 @@ class Checker:
engineref_category = search_query.engineref_list[0].category
params = self.processor.get_params(search_query, engineref_category)
if params is not None:
+ with threading.RLock():
+ self.processor.engine.stats['sent_search_count'] += 1
self.processor.search(search_query.query, params, result_container, time(), 5)
return result_container
diff --git a/searx/search/processors/abstract.py b/searx/search/processors/abstract.py
index eb8d296ec..3a853d49e 100644
--- a/searx/search/processors/abstract.py
+++ b/searx/search/processors/abstract.py
@@ -1,13 +1,13 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-from abc import abstractmethod
+from abc import abstractmethod, ABC
from searx import logger
logger = logger.getChild('searx.search.processor')
-class EngineProcessor:
+class EngineProcessor(ABC):
def __init__(self, engine, engine_name):
self.engine = engine