Hi everyone,
I am new to Prometheus and I am writing a Custom Collector to get CPU and Memory values of two firewalls. I can expand them to as many devices as I want.
Now I am opening a http server in port 8000 and getting these. So now my metrics are available in http://localhost:8000
My script would look something like this
==================================================
class CustomCollector(object):
def collect():
devices =[]
for device in devices:
#collect CPU and yield#
#collect Memory and yield#
if name == 'main':
start_http_server(8000)
REGISTRY.register(CustomCollector())
while True:
time.sleep(1)
===================================================
I have one Custom Collector function to return both memory and CPU for the devices which I have stored in a list.
Now when I add about 30 devices the response would become untidy and difficult to interpret.
I want to have CPU values and Memory values in separate endpoints namely
http://localhost:8000/CPU
http://localhost:8000/Memory
So is there a way to do this?
I have two questions
1) Can we write multiple Custom Collector functions in the same script and somehow modify their endpoints with the port remaining same?
2) Can we write multiple Custom Collector functions in the same script exposing them on different ports? (Not sure if this efficient though)
Any other ideas apart from these would also help..