|
12 | 12 |
|
13 | 13 | from . import core |
14 | 14 | try: |
15 | | - from BaseHTTPServer import BaseHTTPRequestHandler |
16 | | - from BaseHTTPServer import HTTPServer |
| 15 | + from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer |
| 16 | + from SocketServer import ThreadingMixIn |
17 | 17 | from urllib2 import build_opener, Request, HTTPHandler |
18 | 18 | from urllib import quote_plus |
19 | 19 | from urlparse import parse_qs, urlparse |
20 | 20 | except ImportError: |
21 | 21 | # Python 3 |
22 | 22 | unicode = str |
23 | | - from http.server import BaseHTTPRequestHandler |
24 | | - from http.server import HTTPServer |
| 23 | + from http.server import BaseHTTPRequestHandler, HTTPServer |
| 24 | + from socketserver import ThreadingMixIn |
25 | 25 | from urllib.request import build_opener, Request, HTTPHandler |
26 | 26 | from urllib.parse import quote_plus, parse_qs, urlparse |
27 | 27 |
|
@@ -97,10 +97,12 @@ def log_message(self, format, *args): |
97 | 97 |
|
98 | 98 |
|
99 | 99 | def start_http_server(port, addr=''): |
100 | | - """Starts a HTTP server for prometheus metrics as a daemon thread.""" |
| 100 | + """Starts an HTTP server for prometheus metrics as a daemon thread""" |
| 101 | + class ThreadingSimpleServer(ThreadingMixIn, HTTPServer): |
| 102 | + pass |
101 | 103 | class PrometheusMetricsServer(threading.Thread): |
102 | 104 | def run(self): |
103 | | - httpd = HTTPServer((addr, port), MetricsHandler) |
| 105 | + httpd = ThreadingSimpleServer((addr, port), MetricsHandler) |
104 | 106 | httpd.serve_forever() |
105 | 107 | t = PrometheusMetricsServer() |
106 | 108 | t.daemon = True |
|
0 commit comments