trustgraph/trustgraph-cli/trustgraph/cli/show_processor_state.py

65 lines
1.3 KiB
Python
Raw Normal View History

2025-05-03 10:45:42 +01:00
"""
Dump out TrustGraph processor states.
"""
import os
2025-05-03 10:45:42 +01:00
import requests
import argparse
default_metrics_url = "http://localhost:8088/api/metrics"
DEFAULT_TOKEN = os.getenv("TRUSTGRAPH_TOKEN", None)
2025-05-03 10:45:42 +01:00
def dump_status(metrics_url, token=None):
2025-05-03 10:45:42 +01:00
url = f"{metrics_url}/query?query=processor_info"
2025-05-03 10:45:42 +01:00
headers = {}
if token:
headers["Authorization"] = f"Bearer {token}"
resp = requests.get(url, headers=headers)
2025-05-03 10:45:42 +01:00
obj = resp.json()
tbl = [
[
m["metric"].get("processor", m["metric"]["job"]),
2025-05-03 10:45:42 +01:00
"\U0001f49a"
]
for m in obj["data"]["result"]
]
for row in tbl:
print(f" {row[0]:30} {row[1]}")
def main():
parser = argparse.ArgumentParser(
2025-05-06 13:43:17 +01:00
prog='tg-show-processor-state',
2025-05-03 10:45:42 +01:00
description=__doc__,
)
parser.add_argument(
'-m', '--metrics-url',
default=default_metrics_url,
help=f'Metrics URL (default: {default_metrics_url})',
)
parser.add_argument(
'-t', '--token',
default=DEFAULT_TOKEN,
help=f'Bearer token for authentication (default: TRUSTGRAPH_TOKEN env var)',
)
2025-05-03 10:45:42 +01:00
args = parser.parse_args()
try:
dump_status(args.metrics_url, args.token)
2025-05-03 10:45:42 +01:00
except Exception as e:
print("Exception:", e, flush=True)
if __name__ == "__main__":
main()