-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserve_metrics.py
28 lines (21 loc) · 895 Bytes
/
serve_metrics.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env python3
import http.server
import socketserver
# Define the IP address and port
IP_ADDRESS = "10.0.0.1"
PORT = 9101
class MetricsHandler(http.server.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_header('Content-Type', 'text/plain; version=0.0.4')
self.send_header('Access-Control-Allow-Origin', f'http://{IP_ADDRESS}') # Allow access from the specified IP
http.server.SimpleHTTPRequestHandler.end_headers(self)
def do_GET(self):
# Handle GET request, serve metrics from METRICS_FILE
with open('/tmp/metrics.txt', 'r') as f:
self.send_response(200)
self.end_headers()
self.wfile.write(f.read().encode())
Handler = MetricsHandler
httpd = socketserver.TCPServer((IP_ADDRESS, PORT), Handler)
print(f"Serving metrics at http://{IP_ADDRESS}:{PORT}/metrics")
httpd.serve_forever()