refactor(backend): external logging metrics, required mode, health checks
- Add external_logging_init_failures counter - Add external_log_required flag, raise if init fails and required - Health endpoint: add external_logging status check - Blocklist service: enrich with metadata fields, update import logic - Health check task: add runtime_state dependency, fix return typing - Metrics: add Histogram for request latencies - Frontend: align BlocklistImportLogSection props - Docs: update deployment guide, remove stale tasks Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -128,6 +128,26 @@ async def health_check(
|
||||
ComponentHealth(name="fail2ban", healthy=False, message="Socket not reachable"),
|
||||
)
|
||||
|
||||
# --- External logging check ---
|
||||
external_log_state: Literal["ok", "error", "disabled", "unknown"] = "unknown"
|
||||
effective_settings: Settings = (
|
||||
app_state.runtime_settings if app_state.runtime_settings is not None else app_state.settings
|
||||
)
|
||||
try:
|
||||
ext_log_failed = getattr(app_state.runtime_state, "external_log_init_failed", False)
|
||||
if effective_settings.external_logging_enabled and effective_settings.external_logging_provider:
|
||||
if ext_log_failed:
|
||||
external_log_state = "error"
|
||||
components.append(
|
||||
ComponentHealth(name="external_logging", healthy=False, message="Handler initialization failed"),
|
||||
)
|
||||
else:
|
||||
external_log_state = "ok"
|
||||
else:
|
||||
external_log_state = "disabled"
|
||||
except AttributeError: # pragma: no cover - defensive
|
||||
external_log_state = "unknown"
|
||||
|
||||
# --- Overall status ---
|
||||
overall_status: Literal["ok", "degraded", "unavailable"]
|
||||
if not fail2ban_online:
|
||||
@@ -148,6 +168,7 @@ async def health_check(
|
||||
database="ok" if db_healthy else "error",
|
||||
scheduler=scheduler_state,
|
||||
cache=cache_state,
|
||||
external_logging=external_log_state,
|
||||
components=components,
|
||||
).model_dump(),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user