"""Harness Dashboard.""" import os, json, time, queue, threading import requests from flask import Flask, request, render_template_string, Response, stream_with_context ROUTER_METRICS = os.environ.get("ROUTER_METRICS_URL", "http://router:9000/metrics") app = Flask(__name__) sse_subscribers = [] sse_lock = threading.Lock() def fetch_state(): try: r = requests.get(ROUTER_METRICS, timeout=5) if r.status_code == 200: return r.json() except Exception: pass return {"gpus":[],"route_counts":{},"agent_counts":{},"recent":[],"timestamp":time.time()} def broadcast_loop(): while True: time.sleep(3) data = fetch_state() payload = json.dumps(data) with sse_lock: dead = [] for q in sse_subscribers: try: q.put(payload) except Exception: dead.append(q) for q in dead: sse_subscribers.remove(q) threading.Thread(target=broadcast_loop, daemon=True).start() DASHBOARD_HTML = r""" SyslogAI Harness - Syslog Solution LLC

SyslogAI Harness

connecting... 0 requests
GPU Health
Loading...
Model Distribution
-
Usage Over Time
Loading...
Agent Activity
-
Live Request Stream
TimeAgentModelReasonTier
Waiting for data...
""" @app.route("/") def dashboard(): return render_template_string(DASHBOARD_HTML) @app.route("/api/state") def api_state(): return fetch_state() @app.route("/api/timeseries") def api_timeseries(): period = request.args.get("period", "day") try: r = requests.get("http://router:9000/metrics/timeseries?period=" + period, timeout=5) if r.status_code == 200: return r.json() except Exception: pass return {"models": {}, "labels": []} @app.route("/api/stream") def api_stream(): def event_stream(): q = queue.Queue() with sse_lock: sse_subscribers.append(q) try: data = fetch_state() yield "data: " + json.dumps(data) + "\n\n" while True: try: msg = q.get(timeout=3); yield "data: " + msg + "\n\n" except queue.Empty: data = fetch_state() yield "data: " + json.dumps(data) + "\n\n" except GeneratorExit: pass finally: with sse_lock: if q in sse_subscribers: sse_subscribers.remove(q) return Response(stream_with_context(event_stream()), mimetype="text/event-stream", headers={"Cache-Control":"no-cache","X-Accel-Buffering":"no","Access-Control-Allow-Origin":"*"}) @app.route("/health") def health(): return {"status":"healthy","service":"harness-dashboard"} if __name__ == "__main__": app.run(host="0.0.0.0", port=3000, debug=False)