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__ = [
|
||||
"initialize",
|
||||
"get_engines_stats",
|
||||
"get_engines_metrics",
|
||||
"get_engine_errors",
|
||||
"histogram",
|
||||
"histogram_observe",
|
||||
|
@ -189,7 +189,36 @@ def get_reliabilities(engline_name_list, checker_results) -> Dict[str, EngineRel
|
|||
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 histogram_storage is not None
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ from searx.answerers import (
|
|||
ask,
|
||||
)
|
||||
from searx.metrics import (
|
||||
get_engines_stats,
|
||||
get_engines_metrics,
|
||||
get_engine_errors,
|
||||
get_reliabilities,
|
||||
histogram,
|
||||
|
@ -1222,7 +1222,7 @@ def stats():
|
|||
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)
|
||||
|
||||
if sort_order not in STATS_SORT_PARAMETERS:
|
||||
|
@ -1242,12 +1242,12 @@ def stats():
|
|||
reliability_order = 1 - reliability_order
|
||||
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(
|
||||
# fmt: off
|
||||
'stats.html',
|
||||
sort_order = sort_order,
|
||||
engine_stats = engine_stats,
|
||||
engine_stats = engine_metrics,
|
||||
engine_reliabilities = engine_reliabilities,
|
||||
selected_engine_name = selected_engine_name,
|
||||
searx_git_branch = GIT_BRANCH,
|
||||
|
|
Loading…
Add table
Reference in a new issue