Export cache, eviction, upstream and transform metrics (closes #85)
check / check (push) Canceled after 0s

New pixa_ metrics, none with labels:
- source cache hits and misses, counted once per variant made or checked
- cache usage and limit gauges; usage is set each time eviction reads it
- eviction count and bytes, from the size_bytes the deleted row returns
- upstream fetch duration histogram and fetch error counter
- transform duration histogram and an in-progress gauge, both including
  the wait for a processing slot

Removing a damaged file during reconciliation is not counted as an
eviction. README lists every metric; the metrics config comment now says
the pixa_ metrics are measured whether or not /metrics is served.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-11 14:06:28 +00:00
1 parent fe5bf393b1
commit 7014d88956
9 files changed
+314 -113

No files matched your search

+23
View File
@@ -1167,10 +1167,33 @@ Each item below is one setting, named by its config key:
- the Go runtime and process metrics
- `pixa_cache_hits_total`: image requests served from the cache
- `pixa_cache_misses_total`: image requests not served from the cache
- `pixa_source_cache_hits_total`: variants made or checked whose source was
in the cache
- `pixa_source_cache_misses_total`: variants made or checked whose source
was not in the cache
- `pixa_cache_usage_bytes`: the bytes of sources and variants in the cache,
as eviction last read them; eviction runs after each store and every five
minutes
- `pixa_cache_max_bytes`: the cache size limit, `cache_max_bytes`
- `pixa_cache_evictions_total`: sources and variants removed by eviction
- `pixa_cache_evicted_bytes_total`: the bytes those evictions freed
- `pixa_upstream_fetches_total`: fetches of a source image that read any
bytes
- `pixa_upstream_fetch_bytes_total`: the bytes those fetches read
- `pixa_upstream_fetch_duration_seconds`: a histogram of how long those
fetches took, up to the last byte of the response
- `pixa_upstream_fetch_errors_total`: fetches of a source image that failed,
before or while reading the response
- `pixa_transforms_total`: images converted
- `pixa_transform_duration_seconds`: a histogram of how long those
conversions took, including the wait for a processing slot
- `pixa_transforms_in_progress`: images being converted or waiting for a
processing slot
pixa measures the `pixa_` metrics whether or not `/metrics` is served. They
have no labels, so their number never grows with the hosts and paths pixa
serves. Requests that share work (see Limits) count one source cache hit or
miss between them.
A request's `handler` label is the pattern of the route it matches, such as
`/v1/image/*`, never its path. Requests that match no route share the label