// Overview — minimal, focused on what matters at a glance const { Drawer, RequestDetailContent, Sparkline, BarChart, fmtAgo, StatusCode, RegionPill } = window.UI; function isTrafficSuccess(row) { return row.status > 0 && row.status < 400 && !row.error; } function isTrafficError(row) { return row.status === 0 || row.status >= 400 || !!row.error; } function RecentTrafficCard({ title, rows, empty, detail, onSelect }) { return (

{title}

{rows.length} in window
{rows.length === 0 ?
{empty}
: {rows.map(r => ( onSelect?.(r)} style={{cursor: onSelect ? "pointer" : "default"}}> ))}
TimeRegionPoolStatusDetail
{fmtAgo(r.ts)} ago {r.pool} {detail(r)}
}
); } function PageOverview({ state }) { const { pools, traffic, regionGroups, stats } = state; const [open, setOpen] = React.useState(null); const totalNodes = pools.flatMap(p => p.nodes || []).length; const onlineNodes = pools.flatMap(p => p.nodes || []).filter(n => n.alive && n.enabled).length; const recent = traffic.requests; const ok = recent.filter(isTrafficSuccess).length; const successRate = traffic.metrics?.requests ? (traffic.metrics.success_rate * 100).toFixed(1) : (recent.length ? (ok / recent.length * 100).toFixed(1) : "100.0"); const p95 = traffic.metrics?.p95_latency_ms || Math.round(traffic.series.slice(-10).reduce((a,b) => a + b.p95, 0) / 10); const successes = recent.filter(isTrafficSuccess).slice(0, 5); const errs = recent.filter(isTrafficError).slice(0, 5); const uptime = stats?.uptime ? stats.uptime.replace(/(\.\d+)?s$/, "s") : "—"; return (

Overview

Real-time signals from the egress fleet.

Uptime
{uptime}
since last reload
Online nodes
{onlineNodes}/ {totalNodes}
across {pools.length} pools
Success rate
{successRate}%
last 60 minutes
P95 latency
{p95}ms
all egress

Requests

last 60m

P95 latency

last 60m
s.p95)} width={500} height={120}/>

Region groups

{regionGroups.length} active
{regionGroups.map(g => (
{g.online}/{g.count}
{g.minLatency ? `${g.minLatency}ms · ` : ""}{g.templateBackup ? "tpl backup" : "no fallback"}
))}
r.url || r.node || "—"} onSelect={setOpen} /> r.error || r.url || r.node || "—"} onSelect={setOpen} /> setOpen(null)} title="Request detail">
); } window.PageOverview = PageOverview;