"""Замер API панели: код, время, ключи ответа. Без секретов, только метрики.""" import json import time import urllib.parse import urllib.request BASE = "http://127.0.0.1:8078" PATHS = [ "/api/health", "/api/stats", "/api/timeline?days=30", "/api/items?limit=5", "/api/abuse?limit=3", "/api/tg/status", "/api/keys", "/api/watch", "/api/digest?days=1", "/api/suggest?q=cve", ] def main(): for p in PATHS: t0 = time.time() try: raw = urllib.request.urlopen(BASE + p, timeout=90).read().decode("utf-8", "ignore") d = json.loads(raw) keys = list(d.keys()) if isinstance(d, dict) else type(d).__name__ extra = "" if isinstance(d, dict): if "items" in d and isinstance(d["items"], list): extra = " n=%d" % len(d["items"]) if d["items"]: extra += " keys=%s" % ",".join(list(d["items"][0].keys())[:14]) if "me" in d: extra = " " + json.dumps(d, ensure_ascii=False)[:200] if "md" in d: extra = " md=%d chars" % len(d["md"]) print("%-34s %6.2fs %s%s" % (p, time.time() - t0, keys, extra)) except Exception as e: print("%-34s %6.2fs ERR %s" % (p, time.time() - t0, e)) if __name__ == "__main__": main()