trustgraph/trustgraph-cli/scripts/tg-processor-state
cybermaggedon 14672f7f0e
Fix/processor state specify prom (#93)
* Provide mean to specify -p prometheus server
* Bump version
2024-10-01 22:14:28 +01:00

59 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
"""
Dump out TrustGraph processor states.
"""
import requests
import argparse
import tabulate
default_prometheus_url = "http://localhost:9090"
def dump_status(prom):
url = f"{prom}/api/v1/query?query=processor_state%7Bprocessor_state%3D%22running%22%7D"
resp = requests.get(url)
obj = resp.json()
tbl = [
[
m["metric"]["job"],
"running" if int(m["value"][1]) > 0 else "down"
]
for m in obj["data"]["result"]
]
print(tabulate.tabulate(
tbl, tablefmt="pretty", headers=["processor", "state"],
stralign="left"
))
def main():
parser = argparse.ArgumentParser(
prog='tg-processor-state',
description=__doc__,
)
parser.add_argument(
'-p', '--prometheus-url',
default=default_prometheus_url,
help=f'Prometheus URL (default: {default_prometheus_url})',
)
args = parser.parse_args()
try:
dump_status(args.prometheus_url)
except Exception as e:
print("Exception:", e, flush=True)
main()