jarvis-tasks/jarvis_tasks/prometheus/serve.py
2022-06-10 09:54:54 -06:00

26 lines
762 B
Python

"""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()