Documentation
¶
Overview ¶
Package metricslog is the Prometheus observer on the lifecycle spine. It owns no metrics of its own — it reads the per-request lifecycle Context + outcome and forwards them to the one-liner emitters in pkg/metrics. Registering it is the entire wiring for the request-flow metrics (Q1–Q2, Q5 in docs/metrics.md); no runner (pipeline/proxy/ws/ batch) changes, because every runner already feeds the lifecycle spine.
It registers on three phases: pre-flight (inflight gauge up), the post-flight Hook (request-flow histograms), and a Collector (inflight gauge down — Collect runs on every Finalize, unlike Fill which a pre-send stream fill can mark done).
Out of scope: the data-loss and provider-key-health metrics (Q3/Q4) are emitted at their sources (the emitters, keypool) — they don't pass through here.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Hook ¶
type Hook struct{}
Hook reads request outcome + timing and emits the request-flow metrics. It is a pure lifecycle.Hook: it produces no stored result (returns nil) and never mutates the Context post-flight. Emitting a Prometheus sample is a cheap, non-blocking atomic op, so it satisfies the "Fill must be cheap" rule.
func (*Hook) Collect ¶ added in v0.3.0
Collect lowers the inflight gauge for a finalized request. It is a Collector, not part of Fill, because Fill is skipped when a stream session pre-filled the request — Collect runs on every Finalize.