demo/grafana: pure-wire latency panel + clearer latency info tips (both boards) - #24
demo/grafana: pure-wire latency panel + clearer latency info tips (both boards)#24armcconnell wants to merge 1 commit into
Conversation
… (both boards) Adds a 'Wire latency (publisher->recv, network only)' timeseries (p50/p95/p99 of send_latency_ms) to both the Top-of-Book and Market-by-Order dashboards, so the network/transport number is separated from the venue->publisher ingest lag that dominates source->recv. Also fills in/clarifies panel descriptions, with the latency tips made explicit: send->recv = pure wire (kernel-stamped recv), source->recv = wire + block->emit ingest lag. Mirrored identically across both boards.
136a3d0 to
731d5de
Compare
|
Rebasado sobre Si tenías la rama local, hace falta |
juan-malbeclabs
left a comment
There was a problem hiding this comment.
Approving. What I could check from the repository, I did.
Both dashboards parse. The new panel is present on each, panel ids are unique within each board, and no two panels overlap in gridPos — 22 panels on topofbook, 23 on marketbyorder, zero collisions. A panel dropped on top of another is the usual cost of hand-edited dashboard JSON and it is not here.
The part that would have made the panel useless: send_latency_ms exists as a MATERIALIZED column — (toUnixTimestamp64Nano(recv_ts) - toUnixTimestamp64Nano(publisher_send_ts)) / 1e6 — on both tables the panel actually queries, topofbook.quotes and marketbyorder.events. So the query resolves against the schema in this repository rather than against a column that only exists on one deployment.
The framing is right and worth having: source→recv is dominated by venue→publisher ingest and is not a network measurement, so a board that offers only that invites an operator to read block→emit lag as transport. Isolating send→recv is the fix.
One thing a reader should know about the descriptions. The figures and the causal claim — TOB ≈ 68/69/70 ms, MBO ≈ 78/210/274, and "the p99 bump is publisher-side burst serialization at block boundaries" — come from a live run nobody else can reproduce from this repository. The interpretation may well be right; it is not something the panel's own data proves, and it is now printed in the panel description where it reads as established. Not a reason to hold a dashboard change, and worth knowing before somebody cites it back at a publisher.
Summary
Adds a Wire latency (publisher→recv, network only) timeseries panel (p50/p95/p99 of
send_latency_ms) to both dashboards, and sharpens the latency panel descriptions.Motivation:
source→recvis dominated by the venue→publisher ingest lag (block→emit), which can tail to seconds and is not network.send→recv(recv_ts − publisher_send_ts, kernel-stamped viaSO_TIMESTAMPNS) isolates pure transport. The new panel surfaces that directly.Confirmed live: TOB wire ≈ 68/69/70 ms (flat); MBO wire ≈ 78/210/274 ms (the p99 bump is publisher-side burst serialization at block boundaries) — both far below the source→recv ingest figures.
Changes
topofbookandmarketbyorderboards (identical except the source table).Docs/dashboard-only; no code or schema change.