|
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 | <
8000
/td> | - 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