init
This commit is contained in:
32
src/prometheus_metrics_server.py
Normal file
32
src/prometheus_metrics_server.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import prometheus_client
|
||||
import time
|
||||
from src.metrics_source import *
|
||||
|
||||
|
||||
|
||||
class PrometheusMetricsServer:
|
||||
_metrics_sources: list[MetricsSource]
|
||||
|
||||
address: str
|
||||
port: int
|
||||
interval: int
|
||||
server_name: str
|
||||
|
||||
def __init__(self, port: int, server_name: str):
|
||||
self._metrics_sources = []
|
||||
|
||||
self.address = "0.0.0.0"
|
||||
self.port = port
|
||||
self.interval = 1
|
||||
self.server_name = server_name
|
||||
|
||||
def add_metrics_source(self, source: MetricsSource):
|
||||
self._metrics_sources.append(source)
|
||||
|
||||
def run(self):
|
||||
prometheus_client.start_http_server(self.port, addr=self.address)
|
||||
print(f"{self.server_name} is running on {self.address}:{self.port}")
|
||||
while True:
|
||||
for source in self._metrics_sources:
|
||||
source.update()
|
||||
time.sleep(self.interval)
|
||||
Reference in New Issue
Block a user