Extract webserver metrics into a separate class to avoid passing it into every API call. Change the display to requests per hour rather than just last request time. Add SSE and telnet client connected count.

This commit is contained in:
Ian Renton
2026-09-11 22:32:04 +01:00
parent 4a09e46fe0
commit 7c458a8c5b
25 changed files with 161 additions and 230 deletions
+8 -13
View File
@@ -11,6 +11,7 @@ from core.constants import SOFTWARE_VERSION
from core.data_providers import DATA_PROVIDERS
from core.data_store import DATA_STORE
from core.prometheus_metrics_handler import alerts_gauge, memory_use_gauge, spots_gauge
from telnetserver.telnetserver import TELNET_SERVER
from webserver.webserver import WEB_SERVER
@@ -134,19 +135,13 @@ class StatusReporter:
else 0,
}
DATA_STORE.status.get()["webserver"] = {
"status": WEB_SERVER.web_server_metrics["status"],
"last_api_access": WEB_SERVER.web_server_metrics["last_api_access_time"]
.replace(tzinfo=pytz.UTC)
.timestamp()
if WEB_SERVER.web_server_metrics["last_api_access_time"]
else 0,
"api_access_count": WEB_SERVER.web_server_metrics["api_access_counter"],
"last_page_access": WEB_SERVER.web_server_metrics["last_page_access_time"]
.replace(tzinfo=pytz.UTC)
.timestamp()
if WEB_SERVER.web_server_metrics["last_page_access_time"]
else 0,
"page_access_count": WEB_SERVER.web_server_metrics["page_access_counter"],
"status": WEB_SERVER.web_server_metrics.status,
"api_requests_per_hour": WEB_SERVER.web_server_metrics.api_requests_per_hour(),
"page_requests_per_hour": WEB_SERVER.web_server_metrics.page_requests_per_hour(),
"sse_client_count": WEB_SERVER.sse_client_count,
}
DATA_STORE.status.get()["telnet"] = {
"client_count": TELNET_SERVER.client_count,
}
DATA_STORE.status.store()