Cover for counter rate estimation, with observe, decide and act steps.

Prometheus rate estimates counter growth per second

A request counter answers how many events an instrumented process has accumulated. A rate answers how quickly those events are arriving. Prometheus rate estimates average growth per second over a selected range, adjusts observed counter resets, and extrapolates toward the range boundaries. The result is useful precisely because it has a time unit, but it is not an exact reconstruction of every event between scrapes. ...

December 24, 2027 · 5 min · XB Field Notes
A bounded label set contrasted with request IDs that multiply exported histogram series.

Cardinality is a metric budget

A metric costs more than its short name suggests. Prometheus identifies a time series by its metric name and complete label set. A new observed label combination creates a different series, which must be ingested, indexed, retained, and queried. Cardinality budgeting asks which distinctions are worth paying for and whether their number stays bounded as the service grows. ...

July 21, 2027 · 4 min · XB Field Notes
Cover for Pushgateway metric lifecycle, with observe, decide and act steps.

Pushgateway retains batch metrics until their lifecycle is handled

A short-lived job can finish before Prometheus next scrapes it. Pushgateway offers an intermediary that retains pushed metrics for later scraping, but it is not the default answer for every short process. Prometheus recommends it primarily for suitable service-level batch outcomes. The retained data has a lifecycle independent of the job, so successful scraping does not prove the job recently ran or succeeded. ...

May 13, 2027 · 5 min · XB Field Notes
Cover for histogram aggregation and quantiles, with observe, decide and act steps.

Prometheus histograms retain a bucketed distribution

A latency mean can conceal a slow subset of requests. A histogram retains more distribution information by counting observations into buckets, but it still discards detail within each bucket. Prometheus can estimate quantiles from those counts without storing every observation. The estimate depends on bucket boundaries and aggregation; it is not a recovery of the complete original latency distribution. ...

January 6, 2027 · 5 min · XB Field Notes
Milliseconds converted to seconds before a correctly named metric is exported.

Put the unit in the metric name

A metric named request_duration leaves readers guessing whether 250 means seconds, milliseconds, or something else. A Prometheus-facing name such as http_request_duration_seconds carries that contract into queries, recording rules, and alerts. The contract still needs a correct implementation. Appending _seconds to measurements collected in milliseconds changes the spelling, not the magnitude, and can create a thousandfold monitoring error. ...

October 30, 2026 · 4 min · XB Field Notes
Coarse and finer latency buckets producing different percentile estimates from the same observations.

Histograms preserve the latency shape

A mean can make an uncomfortable service look fast. If ninety-five requests take 50 milliseconds and five take two seconds, the average is only 147.5 milliseconds. A latency histogram retains more information about that slow minority without storing every request. What it preserves is a bucketed approximation of the distribution, not the complete original observations or an automatically exact percentile. ...

September 20, 2026 · 5 min · XB Field Notes