arena namespace. It is deliberately a thin read over
two real signals: whether each edge’s hostname resolves in DNS, and
whether QUIC telemetry attributed to that edge is fresh. Nothing on
the screen is synthesised. Before any sessions route through an edge,
the row is expected to read idle with — in every metric column.
The edge list itself comes from infrastructure configuration (for
example relay-us, relay-uk), not from discovery. An edge that has
never come up still appears in the table.
What the three statuses mean
Any status the screen does not recognise renders as
offline.
The KPI strip summarises the same three states:
Resolving counts both live and idle edges. An edge can be
resolving and still be carrying nothing.
How an edge is identified: DNS and SNI attribution
Each row carries two identifiers, and they are checked separately:
Telemetry is attributed to an edge by SNI. Samples of type
quic_transport_sample carry the server name the client presented on
the QUIC/TLS handshake, and the screen matches that name against the
edge’s endpoint. This is why the endpoint hostname is the identity that
matters, not the IP: if clients dial an edge under a different server
name than the one configured here, the samples do not land on this row,
and the edge reads idle even while it is passing traffic.
The liveness window and why metrics read as a dash
The liveness window is the lookback period used to decide whether telemetry counts as fresh. It is returned by the API asfreshSecs and
displayed in the KPI strip in minutes. When the response does not carry
freshSecs, the console falls back to 600 seconds (10 minutes). Always
read the window off the KPI strip rather than assuming a value — it is a
server-side setting.
The per-edge metric columns are populated from the same attributed
samples, so they are empty for exactly as long as the edge is not
live:
A
— is the absence of a sample, not a zero. Do not read — in the
Peers column as “zero peers connected”; read it as “no sample has been
attributed to this edge inside the window”.
The fleet table refreshes every 30 seconds, and the header shows the
relative age of the last successful fetch next to a manual Refresh
button. While the first fetch is in flight the panel reads
Probing edges…; if the infra list is empty it reads
No edges configured.
Attached but not flowing: what these signals do not tell you
This is the gap the screen is explicit about. DNS resolvability and telemetry freshness answer two questions:- Can a client find this edge?
- Has this edge reported a QUIC transport sample recently?
live — while no publisher
is producing and no subscriber is receiving on arena. An edge that is
attached but not flowing is indistinguishable, on this screen, from an
edge that is carrying a full session load, except by the magnitude of
the Peers and Egress columns.
Alongside the fleet query, the screen polls
observability.relayHealth for the arena namespace on a 5 second
interval. That procedure calls the relay.metrics service RPC with a
3 second timeout and returns the raw metrics text:
The short timeout is intentional: the query polls frequently, so a slow
engine must read as “No data” on a single tick rather than queue up
requests. Note also what
configured: false means — the RPC did not
complete. That is an operations problem on the path to the metrics
service, not evidence that the relay is down. The panel reports “No
data” rather than attributing the failure to the relay.
Triage: an edge that will not resolve
The edge showsoffline, and the endpoint cell shows no DNS instead
of an IP.
- Resolve the hostname in the Endpoint cell yourself. The screen is reporting a DNS answer, or the lack of one, for exactly that name.
- Confirm the endpoint recorded in infra is the name you expect. The row
is rendered from configuration; a typo in the configured URL produces
a permanent
offlinefor an edge that is running fine. - Until DNS answers, no telemetry can be attributed to this edge, so the
Last telemetry, RTT, Peers and Egress columns will stay
—regardless of what the relay process is doing.
Triage: an edge that resolves but stays idle
The edge showsidle: DNS answered, but nothing was attributed inside
the liveness window.
Work through the causes in order of how common they are:
- No traffic has been routed there yet. This is the expected
steady state for a fleet that is provisioned but not yet serving
sessions. Every edge reads
idlewith—metrics until sessions route through one. - Traffic is going to a different edge. Check the other rows. If
one edge is
liveand the rest areidle, routing is concentrating sessions rather than the fleet being broken. - SNI mismatch. Clients may be reaching the relay under a server
name that does not match the configured endpoint, so
quic_transport_samplerecords do not attribute to this row. Compare the server name clients present on the handshake with the Endpoint hostname. - The telemetry path, not the relay. If no edge in the fleet has a
Last telemetryvalue and the relay metrics panel also reports no data, suspect sample ingestion or therelay.metricsRPC rather than the edges themselves.
idle edge is not an error state and FirstByte does not treat it
as one. It means the screen has no evidence either way about whether
that edge is carrying traffic.
Related
- Telemetry — the metric and trace streams the gateway emits
- Authentication — relay tokens and the
namespace_authhook that gates publish/subscribe