Spaces:
Build error
Build error
| # 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 | |