"""Prometheus scraping server""" import logging import prometheus_client import uvicorn from jarvis_tasks import const from jarvis_tasks.prometheus.stats import tasks_info logger = logging.getLogger(__name__) class StatTracker: def __init__(self, host: str = "0.0.0.0", port: int = 8878, interval: int = 5) -> None: self.host = host self.port = port self.interval = interval app = prometheus_client.make_asgi_app() config = uvicorn.Config(app=app, host=self.host, port=self.port, access_log=False) self.server = uvicorn.Server(config) async def start(self) -> None: """Start the Prometheus server.""" tasks_info.info({"version": const.__version__}) await self.server.serve()