From 4f02fe0d33a00643ce3a192490986548319f1746 Mon Sep 17 00:00:00 2001 From: zzstoatzz Date: Sat, 8 Aug 2026 02:41:51 -0500 Subject: [PATCH] stats: expected-rate statement drawn on the chart; caption to one line; drop redundant same-page link --- deploy/site/index.html | 2 +- deploy/site/stats.html | 29 +++++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/deploy/site/index.html b/deploy/site/index.html index 05713b5..86a1eed 100644 --- a/deploy/site/index.html +++ b/deploy/site/index.html @@ -37,7 +37,7 @@ footer a:hover{color:var(--hot);border-bottom-color:var(--water)} .seq{display:flex;flex-direction:column;align-items:center;gap:.25rem} #seq{font-size:2rem;font-weight:300;color:var(--hot);letter-spacing:.06em;font-variant-numeric:tabular-nums} .seqlbl{font-size:.72rem;color:var(--dim);letter-spacing:.3em;text-transform:uppercase} -.rate{color:var(--water);letter-spacing:normal;text-transform:none;margin-left:1ch;border-bottom:1px dotted var(--faint)} +.rate{color:var(--water);letter-spacing:normal;text-transform:none;margin-left:1ch} .rate:hover{color:var(--hot)} .tag{color:var(--dim);font-size:.84rem;text-align:center;max-width:52ch} .eps{display:flex;flex-direction:column;gap:.8rem;width:100%;max-width:66ch} diff --git a/deploy/site/stats.html b/deploy/site/stats.html index 5df37d6..ff01fe2 100644 --- a/deploy/site/stats.html +++ b/deploy/site/stats.html @@ -62,15 +62,9 @@ footer a:hover{color:var(--hot);border-bottom-color:var(--water)}
—blocks served
—ingest rateupstream seq advance
-
what to expect at this hour
- -

the firehose has a daily heartbeat: a 2× swing from the 08:00utc trough - to the 16:00utc plateau, stable month over month. the line is the median - events/s per utc hour over the trailing 90 days of - relay-eval - windows (recomputed continuously); bands are p25–p75 and p10–p90. the dashed - line is now; the dot is this instance's live ingest rate — above the band - means catching up, on it means current.

+
the firehose has a heartbeat
+ +

median events/s per utc hour · p25–75 and p10–90 bands · trailing 90 days via relay-eval

the machine
—memoryresident set
@@ -112,9 +106,10 @@ function noteRate(upN){ $("ingest").textContent = _rateEma === null || upN === 0n ? "—" : Math.round(_rateEma).toLocaleString() + "/s"; if (_rateEma !== null && upN !== 0n) { - const exp = expectedNow(), x = _rateEma / exp; - $("ingest-sub").innerHTML = "expected ~" + exp + "/s this hour" + - (x > 1.5 ? " · catching up at " + x.toFixed(1) + "×" : ""); + const x = _rateEma / expectedNow(); + $("ingest-sub").textContent = x > 1.5 + ? "catching up at " + x.toFixed(1) + "× the hour's typical rate" + : "upstream seq advance"; } } } @@ -242,6 +237,16 @@ function drawProfile(){ ctx.beginPath(); ctx.moveTo(X(hf),Y(0)); ctx.lineTo(X(hf),Y(ymax)); ctx.stroke(); ctx.setLineDash([]); if (_rateEma !== null){ ctx.beginPath(); ctx.arc(X(hf), Y(Math.min(_rateEma,ymax)), 5, 0, 7); ctx.fillStyle = css("--hot"); ctx.fill(); } + // the sentence lives on the chart, where the answer is + const exp = EXPECTED[now.getUTCHours()]; + ctx.font = "22px ui-monospace,Menlo,monospace"; ctx.textAlign = "left"; + ctx.fillStyle = css("--hot"); + ctx.fillText("expected ~" + exp + "/s at this hour", L + 14, T + 26); + if (_rateEma !== null){ + ctx.fillStyle = css("--water"); + ctx.fillText("live " + Math.round(_rateEma) + "/s " + (_rateEma > EXPECTED[now.getUTCHours()]*1.5 ? "· catching up" : "· current"), L + 14, T + 52); + } + ctx.textAlign = "start"; } setInterval(drawProfile, 5000); setTimeout(drawProfile, 1200); sumArchive(); -- 2.51.2