Artwork panels: how full, the hit rate and evictions (#198)

Kept bytes against the limit was a flat line once the cache filled. Now a
percentage of the limit beside the share served from disk, and the images each
sweep evicts. The counter shipped minutes ago as ipx_art_trimmed_total is
renamed ipx_art_evicted_total before anything came to read it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-11 20:17:56 +00:00
parent f032d50ed3
commit 8dc6dd4ce6
6 changed files with 25 additions and 11 deletions

View File

@@ -185,12 +185,17 @@ ts("Backlogs", [prom('max(ipx_deadair_backlog{job="ipx"})', legend="DeadAir to l
prom('sum(increase(ipx_events_missed_total{job="ipx"}[$__rate_interval]))', ref="D", legend="live updates missed")],
16, w=8)
y += 8
ts("DeadAir on a file", [prom('max(ipx_deadair_busy_seconds{job="ipx"})', legend="for")], 0, w=12, unit="s",
ts("DeadAir on a file", [prom('max(ipx_deadair_busy_seconds{job="ipx"})', legend="for")], 0, w=8, unit="s",
desc="How long DeadAir has been on the file it is analysing; a few seconds each.")
ts("Artwork thrown out", [prom('sum(increase(ipx_art_trimmed_total{job="ipx"}[$__rate_interval]))', legend="images")],
12, w=12, bars=True,
desc="What is kept sits at its limit (500 MiB unless changed), since each sweep trims the least recently used to fit. "
"Many thrown out at every sweep means the limit is too small and artwork is fetched again.")
ts("Artwork", [prom('max(ipx_art_cache_bytes{job="ipx"}) / max(ipx_art_cache_limit_bytes{job="ipx"})', legend="full"),
prom('sum(increase(ipx_art_requests_total{job="ipx", result="hit"}[$__rate_interval])) / '
'sum(increase(ipx_art_requests_total{job="ipx"}[$__rate_interval]))', ref="B", legend="served from disk")],
8, w=8, unit="percentunit",
desc="Full sits near 100% once the cache has filled, since each sweep trims it to fit. Served from disk is the hit rate: "
"the rest was fetched from the publisher.")
ts("Artwork evicted", [prom('sum(increase(ipx_art_evicted_total{job="ipx"}[$__rate_interval]))', legend="images")],
16, w=8, bars=True,
desc="Images each sweep threw out to stay under the limit. Many at every sweep, with a falling hit rate, means the limit is too small.")
y += 8
# ---- Traces