diff --git a/flower/views/monitor.py b/flower/views/monitor.py index 180f0d7ca..f2724ad15 100644 --- a/flower/views/monitor.py +++ b/flower/views/monitor.py @@ -1,11 +1,22 @@ -import prometheus_client +import os + +import prometheus_client.multiprocess from ..views import BaseHandler class Metrics(BaseHandler): + def _get_registry(self): + if not ("PROMETHEUS_MULTIPROC_DIR" in os.environ + or "prometheus_multiproc_dir" in os.environ): + return prometheus_client.REGISTRY + + registry = prometheus_client.CollectorRegistry() + prometheus_client.multiprocess.MultiProcessCollector(registry) + return registry + async def get(self): - self.write(prometheus_client.generate_latest()) + self.write(prometheus_client.generate_latest(self._get_registry())) self.set_header("Content-Type", "text/plain")