diff options
| -rw-r--r-- | docs/dashboard.md | 4 | ||||
| -rw-r--r-- | src/api/dashboard/dashboard.html | 13 |
2 files changed, 11 insertions, 6 deletions
diff --git a/docs/dashboard.md b/docs/dashboard.md index 143fcc5..eeeca9b 100644 --- a/docs/dashboard.md +++ b/docs/dashboard.md @@ -219,7 +219,8 @@ reload keeps it and a link to the page can name it. ## Peers -Every peer this node knows, with: +Every peer this node knows; those that aren't its neighbours muted (it only answers +them: no HELLOs, keepalives or syncing of its own; their tooltip says so), with: | Column | Meaning | |---|---| @@ -230,7 +231,6 @@ Every peer this node knows, with: | rtt | The round trip on that path. | | hop | How long its sync and blob messages take to come, by its clock and this node's, its clock offset taken off (`hopDelay` in [`measurements.md`](measurements.md)): this minute's mean, then the last 15 minutes' means as bars, oldest first (a minute without messages blank). Good to half the round trip, but the trend exactly: bars growing mean the link, or a queue on it, gets slower. All figures in the tooltip. | | clock | How far its clock is ahead of this node's (behind: `−`), give or take (in the tooltip); in orange beyond `--clock-skew-warn`, for sure ([`measurements.md`](measurements.md), Clocks). | -| neighbour | Whether this node keeps contact with it (HELLOs, keepalives, sync); others it only answers. | | reaches | How many members besides this node it reaches, as it said ([`peers.md`](peers.md)); `(+n)`: of those, how many this node doesn't reach itself, which it is a way to. By name in the tooltip, those marked `+`. Blank until it said so in this session. | | epoch | The epoch it last said it is on, by its generation ([`remakes.md`](remakes.md)); orange where it isn't this node's (they don't sync then); its ID in the tooltip; blank while unknown. | diff --git a/src/api/dashboard/dashboard.html b/src/api/dashboard/dashboard.html index da370e9..baffcf2 100644 --- a/src/api/dashboard/dashboard.html +++ b/src/api/dashboard/dashboard.html @@ -261,6 +261,8 @@ th { color: var(--muted); font-weight: 500; position: sticky; top: 0; background: var(--panel); } #peers tr[data-peer] { cursor: pointer; } + /* Not neighbours: only answered. */ + #peers tr.answered td { opacity: .5; } #peers tr.focused td { background: var(--line); } .id { font-family: ui-monospace, monospace; font-size: 12px; } /* Where messages go: the start of the address, the rest in its tooltip. */ @@ -556,7 +558,7 @@ function renderPeers() { "this node's (its offset taken off): this minute's mean, and the last 15 minutes' as " + "a line; good to half the round trip, but the trend exactly" }; const rows = [el("tr", {}, ...["peer", "status", "seen", "via", "rtt", "hop", "clock", - "neighbour", "reaches", "epoch"] + "reaches", "epoch"] .map(h => el("th", { title: headers[h] || "" }, h)))]; // Whom this node reaches, to tell those a peer reaches and it doesn't. const ours = new Set(state.peers.localReaches || []); @@ -567,8 +569,12 @@ function renderPeers() { const via = destination ? destination.address + (destination.connection ? " (" + destination.connection + ")" : "") : ""; - const row = el("tr", { "data-peer": id, class: id === focused ? "focused" : "" }, - el("td", { title: id }, peer.alias || el("span", { class: "id" }, short(id))), + // Not a neighbour: this node only answers it (muted). + const row = el("tr", { "data-peer": id, + class: (id === focused ? "focused" : "") + (peer.neighbour ? "" : " answered") }, + el("td", { title: id + (peer.neighbour ? "" + : "\nnot a neighbour: this node only answers it, and syncs with it on its own only as a neighbour") }, + peer.alias || el("span", { class: "id" }, short(id))), // How long dormant is about how long unseen ("seen"): in the tooltip only. el("td", { class: peer.status, title: peer.status === "dormant" ? "dormant for " + age(aged("dormantForSecs", peer.dormantForSecs)) : "" }, peer.status), @@ -580,7 +586,6 @@ function renderPeers() { el("td", { class: clockOff(peer.clock) ? "clock-off" : "", title: peer.clock ? "ahead of this node's by " + peer.clock.offsetMs + " ms, give or take " + peer.clock.withinMs + " ms" : "" }, peer.clock ? seconds(peer.clock.offsetMs) : ""), - el("td", {}, peer.neighbour ? "yes" : ""), reachesCell(peer.reaches, ours, id), epochCell(peer.epoch, peer.sameEpoch)); rows.push(row); |
