mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
WIP
This commit is contained in:
parent
efc728b4ed
commit
63cd7940bf
2 changed files with 35 additions and 6 deletions
|
@ -13,7 +13,7 @@ from .error_recorder import count_error, count_exception, errors_per_engines
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"initialize",
|
"initialize",
|
||||||
"get_engines_stats",
|
"get_engines_metrics",
|
||||||
"get_engine_errors",
|
"get_engine_errors",
|
||||||
"histogram",
|
"histogram",
|
||||||
"histogram_observe",
|
"histogram_observe",
|
||||||
|
@ -189,7 +189,36 @@ def get_reliabilities(engline_name_list, checker_results) -> Dict[str, EngineRel
|
||||||
return reliabilities
|
return reliabilities
|
||||||
|
|
||||||
|
|
||||||
def get_engines_stats(engine_name_list):
|
class EngineStat(TypedDict):
|
||||||
|
"""Metrics for one engine. To do: check the types"""
|
||||||
|
|
||||||
|
name: str
|
||||||
|
total: Optional[float]
|
||||||
|
total_p80: Optional[float]
|
||||||
|
totla_p95: Optional[float]
|
||||||
|
http: Optional[float]
|
||||||
|
http_p80: Optional[float]
|
||||||
|
http_p95: Optional[float]
|
||||||
|
processing: Optional[float]
|
||||||
|
processing_p80: Optional[float]
|
||||||
|
processing_p95: Optional[float]
|
||||||
|
score: float
|
||||||
|
score_per_result: float
|
||||||
|
result_count: int
|
||||||
|
|
||||||
|
|
||||||
|
class EngineStatResult(TypedDict):
|
||||||
|
time: List[EngineStat]
|
||||||
|
"""List of engine stat"""
|
||||||
|
|
||||||
|
max_time: float
|
||||||
|
"""Maximum response time for all the engines"""
|
||||||
|
|
||||||
|
max_result_count: int
|
||||||
|
"""Maximum number of result for all the engines"""
|
||||||
|
|
||||||
|
|
||||||
|
def get_engines_metrics(engine_name_list) -> EngineStatResult:
|
||||||
assert counter_storage is not None
|
assert counter_storage is not None
|
||||||
assert histogram_storage is not None
|
assert histogram_storage is not None
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ from searx.answerers import (
|
||||||
ask,
|
ask,
|
||||||
)
|
)
|
||||||
from searx.metrics import (
|
from searx.metrics import (
|
||||||
get_engines_stats,
|
get_engines_metrics,
|
||||||
get_engine_errors,
|
get_engine_errors,
|
||||||
get_reliabilities,
|
get_reliabilities,
|
||||||
histogram,
|
histogram,
|
||||||
|
@ -1222,7 +1222,7 @@ def stats():
|
||||||
checker_results['engines'] if checker_results['status'] == 'ok' and 'engines' in checker_results else {}
|
checker_results['engines'] if checker_results['status'] == 'ok' and 'engines' in checker_results else {}
|
||||||
)
|
)
|
||||||
|
|
||||||
engine_stats = get_engines_stats(filtered_engines)
|
engine_metrics = get_engines_metrics(filtered_engines)
|
||||||
engine_reliabilities = get_reliabilities(filtered_engines, checker_results)
|
engine_reliabilities = get_reliabilities(filtered_engines, checker_results)
|
||||||
|
|
||||||
if sort_order not in STATS_SORT_PARAMETERS:
|
if sort_order not in STATS_SORT_PARAMETERS:
|
||||||
|
@ -1242,12 +1242,12 @@ def stats():
|
||||||
reliability_order = 1 - reliability_order
|
reliability_order = 1 - reliability_order
|
||||||
return (reliability_order, key, engine_stat['name'])
|
return (reliability_order, key, engine_stat['name'])
|
||||||
|
|
||||||
engine_stats['time'] = sorted(engine_stats['time'], reverse=reverse, key=get_key)
|
engine_metrics['time'] = sorted(engine_metrics['time'], reverse=reverse, key=get_key)
|
||||||
return render(
|
return render(
|
||||||
# fmt: off
|
# fmt: off
|
||||||
'stats.html',
|
'stats.html',
|
||||||
sort_order = sort_order,
|
sort_order = sort_order,
|
||||||
engine_stats = engine_stats,
|
engine_stats = engine_metrics,
|
||||||
engine_reliabilities = engine_reliabilities,
|
engine_reliabilities = engine_reliabilities,
|
||||||
selected_engine_name = selected_engine_name,
|
selected_engine_name = selected_engine_name,
|
||||||
searx_git_branch = GIT_BRANCH,
|
searx_git_branch = GIT_BRANCH,
|
||||||
|
|
Loading…
Add table
Reference in a new issue