Agent-Q3 / hq /metrics.py
madDegen's picture
consolidate: HQ Prometheus metrics endpoint
e1ddbd4 verified
"""
Agent Q3 [HQ] — Metrics
Prometheus-compatible /metrics endpoint + internal tracking.
"""
import time
from collections import defaultdict
_counters = defaultdict(int)
_latencies = defaultdict(list)
_start_time = time.time()
def track_request(target: str, latency_s: float):
_counters[f"requests_total_{target}"] += 1
_latencies[target].append(latency_s)
def get_metrics() -> dict:
uptime = time.time() - _start_time
avg_latency = {
t: round(sum(v)/len(v), 3) if v else 0
for t, v in _latencies.items()
}
return {
"uptime_seconds": round(uptime, 1),
"request_counts": dict(_counters),
"avg_latency_seconds": avg_latency,
}
def prometheus_format() -> str:
lines = [f"# Agent Q3 [HQ] Metrics\nagentq3_uptime_seconds {round(time.time()-_start_time,1)}"]
for k, v in _counters.items():
lines.append(f"agentq3_{k} {v}")
return "\n".join(lines)