A Micrometer `Timer` is configured with `publishPercentileHistogram()` and bucket boundaries at 50ms, 100ms and 500ms. Explain exactly what `payment_charge_seconds_bucket{le="100"}` means as a number, why it necessarily includes everything counted in `le="50"`, and what `histogram_quantile` is actually computing when it estimates a percentile from these buckets.
A Prometheus histogram bucket is cumulative: le="100" ("less than or equal to 100ms") counts every request that took 100ms or less, which by definition includes every request that already counted toward le="50", since anything at or under 50ms is also at or under 100ms. Each configured boundary gets its own time series, published as a running total rather than an exclusive range, so the count within a specific range (say, 50–100ms) is the subtraction of two adjacent cumulative counters, not a direct lookup. histogram_quantile works by finding which bucket's cumulative count first reaches the target percentile's rank, then linearly interpolating a value between that bucket's lower and upper boundary — it never sees individual durations, only how many requests landed at or under each configured boundary, so its answer is an estimate whose accuracy depends entirely on how close the nearest boundaries sit to the true value.