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:
@@ -8,7 +8,15 @@ This module provides metrics collection for:
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from prometheus_client import Counter, Gauge, Histogram, Summary, generate_latest, CollectorRegistry, CONTENT_TYPE_LATEST
|
||||
from prometheus_client import (
|
||||
CONTENT_TYPE_LATEST,
|
||||
CollectorRegistry,
|
||||
Counter,
|
||||
Gauge,
|
||||
Histogram,
|
||||
Summary,
|
||||
generate_latest,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"get_metrics_registry",
|
||||
@@ -19,6 +27,7 @@ __all__ = [
|
||||
"bans_total",
|
||||
"jails_total",
|
||||
"fail2ban_connection_errors",
|
||||
"external_logging_init_failures",
|
||||
]
|
||||
|
||||
# Global registry
|
||||
@@ -81,6 +90,12 @@ fail2ban_connection_errors = Counter(
|
||||
registry=get_metrics_registry(),
|
||||
)
|
||||
|
||||
external_logging_init_failures = Counter(
|
||||
"bangui_external_logging_init_failures_total",
|
||||
"Total number of external logging handler initialization failures",
|
||||
registry=get_metrics_registry(),
|
||||
)
|
||||
|
||||
# Application startup and health
|
||||
|
||||
app_uptime = Summary(
|
||||
|
||||
@@ -125,6 +125,7 @@ class RuntimeState:
|
||||
last_activation: ActivationRecord | None = None
|
||||
runtime_settings: Settings | None = None
|
||||
jail_service_state: JailServiceState = field(default_factory=JailServiceState)
|
||||
external_log_init_failed: bool = False
|
||||
|
||||
|
||||
class ApplicationState(State):
|
||||
|
||||
Reference in New Issue
Block a user