pub struct BucketedHistogramValue {
pub buckets: Vec<(BucketBound, u64)>,
pub sum: Option<f64>,
pub count: u64,
pub cumulative_count: u64,
pub created: Option<Instant>,
pub bucket_exemplars: Vec<Option<Exemplar>>,
}Expand description
OpenMetrics §5.3 (Histogram) and §5.4 (GaugeHistogram)
explicit-bucket value: cumulative observation counts at
producer-chosen le boundaries, plus optional
_sum / _count / _created siblings.
Histogram (§5.3) bucket counts are required to be
monotonically non-decreasing; GaugeHistogram (§5.4)
permits decreases. The owning [MetricFamily::r#type()]
tag distinguishes which constraint applies; the validation
helper in crate::validation::check_bucket_monotonicity
enforces it for Histogram families.
Difference from HistogramValue: that variant is the
HDR-reservoir-backed Summary (§5.5), exposing percentile
columns. This variant is the bucket-keyed form — what
OpenMetrics calls a Histogram strictly.
Fields§
§buckets: Vec<(BucketBound, u64)>Cumulative (le, count) pairs in ascending le
order. The final pair SHOULD have le = +Inf and
count == self.count per spec §5.3; producers that
omit +Inf are tolerated but exposition is
permitted to synthesize one.
sum: Option<f64>Optional sum of all observations.
count: u64Total observation count (== last bucket count) — the per-window total in a delta snapshot.
cumulative_count: u64The cumulative total observation count (monotonic,
Prometheus/VM-schematic) carried alongside the per-window
count, mirroring HistogramValue::cumulative_count and
CounterValue::cumulative. (The per-bucket le counts in
buckets are the separate OpenMetrics bucket-cumulative
thing and are unchanged.)
created: Option<Instant>Series start time per spec §5.3 / §5.4.
bucket_exemplars: Vec<Option<Exemplar>>Optional per-bucket exemplars, parallel to buckets.
Sparse: missing slot ⇒ no exemplar for that bucket.
Implementations§
Source§impl BucketedHistogramValue
impl BucketedHistogramValue
Sourcepub fn new(buckets: Vec<(BucketBound, u64)>) -> Self
pub fn new(buckets: Vec<(BucketBound, u64)>) -> Self
Construct from cumulative (le, count) pairs. count
is the final bucket’s count when present, else the
max across the supplied pairs.
Sourcepub fn with_cumulative_count(self, cumulative_count: u64) -> Self
pub fn with_cumulative_count(self, cumulative_count: u64) -> Self
Override the cumulative total observation count.