You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 32c1ec1
Browse filesBrowse the repository at this point in the historyBrowse files
feat(plugin,console): served_wrong -- every cached copy found to differ from the origin while it was being served, by detector and field, with an upper bound on how long it was out; v0.102.0
One emit per detection, from data the detector already holds: no per-serve work and no extra reads.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: packages/plugin/METRICS.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -202,6 +202,18 @@ Notes that bite:
202
202
entity, because the observation that moved the registry also filed the new canonical; under the
203
203
adoption dry run, or past `maxPerHour`, it lasts until the new canonical renders by another path. `entity_serve_ms` (v0.102.0) is each evaluation's duration, every outcome: a
204
204
duration, so read its percentiles.
205
+
-**What was served wrong is `prerender_ops` / `served_wrong`** (v0.102.0): one emit per cached copy found
206
+
to differ from the origin while it was being served (a rendered page, a raw document, a stored 404), at the
207
+
moment a detector found it. Never per serve, so it costs the request path nothing. The value is an **upper
208
+
bound** on how long that copy was served wrong: ms since it was last known right (its render, or the last
209
+
check that agreed with that very copy; for a 404, its last confirmation). Detail = the detector: `check` /
210
+
`check-raw` (a serve-time check of a page or a raw document), `sweep` (the nightly pass; the canary is
211
+
left out, its cohort repeats every half hour), `render-check` (a render that landed disagreeing with the
212
+
origin), `negative-recheck` / `negative-fetch` (a stored 404 the origin answers 200 for, found by the
213
+
re-check or by a proxied request). Context = what disagreed: the `pageCheck` field label (`2:product.offers`,
214
+
`6:canonical`, …), `claim` (the price/availability pair) or `404`. **Read the count per field** (how many
215
+
wrong copies, of what) **and the percentiles per detector** (how long they were out). The number of serves
216
+
each made is not here: that would need a per-key serve counter, which the plugin deliberately does not keep.
205
217
-**The entity registry is `prerender_ops` / `entity_canonical` and `canonical_adopt`** (v0.101.0,
206
218
`entities.enabled`, on by default for routes with an `entityPrefix`). `entity_canonical`: one emit per observation of an entity's canonical, detail =
207
219
what it did to the registry (`new`, `moved`, `same`, `older`, `foreign` — another entity's prefix, or a
'gone_reopen, suppression_lifted, suppression_held, due_now_forward and serve_check are counters; negative_gap, probe_detection_lagand entity_serve_ms are durations (ms — read their percentiles, not their total); '+
827
+
'gone_reopen, suppression_lifted, suppression_held, due_now_forward and serve_check are counters; negative_gap, probe_detection_lag, entity_serve_ms and served_wrong are durations (ms — read their percentiles, not their total; served_wrong\u2019s count is the number of wrong copies found); '+
818
828
'config_warnings is a slow gauge (latest value); '+
819
829
'demand_fill is a per-node gauge (one worker refreshes the node\u2019s union) — never sum it, and READ ITS PEAK, NOT ITS MEAN. It is the '+
820
830
'set-bit fraction of the newest visit-filter slot, which resets to ~0 at every slice rollover '+
0 commit comments