diff --git a/prometheus_client/exposition.py b/prometheus_client/exposition.py index 7e51ecec..18a47abb 100644 --- a/prometheus_client/exposition.py +++ b/prometheus_client/exposition.py @@ -82,10 +82,15 @@ def log_message(self, format, *args): def start_http_server(port, addr=''): """Starts a HTTP server for prometheus metrics as a daemon thread.""" class PrometheusMetricsServer(threading.Thread): + def __init__(self, httpd): + self.httpd = httpd + super(PrometheusMetricsServer, self).__init__() + def run(self): - httpd = HTTPServer((addr, port), MetricsHandler) - httpd.serve_forever() - t = PrometheusMetricsServer() + self.httpd.serve_forever() + + httpd = HTTPServer((addr, port), MetricsHandler) + t = PrometheusMetricsServer(httpd) t.daemon = True t.start()