shaheerawan3's picture
Update utils/metrics.py
81a0c25 verified
# utils/metrics.py
from prometheus_client import Counter, CollectorRegistry
from typing import Optional
import streamlit as st
# Single global registry
_registry: Optional[CollectorRegistry] = None
_login_counter: Optional[Counter] = None
def get_metrics_registry() -> CollectorRegistry:
"""Get or create the metrics registry."""
global _registry
if _registry is None:
_registry = CollectorRegistry()
return _registry
def get_login_attempts_counter() -> Counter:
"""Get or create the login attempts counter."""
global _login_counter
if _login_counter is None:
_login_counter = Counter(
'login_attempts_total',
'Total login attempts',
registry=get_metrics_registry()
)
return _login_counter
def clear_metrics():
"""Clear all metrics and registry."""
global _registry, _login_counter
if _registry is not None:
_registry = None
if _login_counter is not None:
_login_counter = None