How to Use Prometheus's Native Histograms
summary
Prometheus adds a new sample type: timestamped histograms stored as one series with dynamic exponential buckets that disappear when empty, enabling affordable label partitioning and higher detail. Benchmarks show 10x resolution at half the price. Instrumentation is available for Go and Java (native bucket factor / schema, e.g. bucket growth ≈10%), OpenTelemetry compatibility via exponential histograms and proto scrape, and server support behind feature flag enable_feature_native_histograms; defaults include 160 max buckets with resets and resolution-halving when needed.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 3:15Histograms for SREs
- 8:59Classic histogram problems
- 13:17Native histograms features
- 17:29Instrumentation in Go and Java
- 21:42Setting up Prometheus for native histograms
- 23:31Querying in PromQL
- 24:56Quantiles and percentiles
- 27:47Averages and SLO fractions
- 31:14Uptime score and heat maps
- 33:19Limitations and future
- 35:49Resources and closing
related talks
25mNative Histograms in Prometheus
21mPrometheus Native Histograms in Production
05mNative Histograms With Custom Buckets
35mPrometheus Sparse High-Resolution Histograms in Action
04mLightning Talk: Prometheus Native Histograms Are Now a Stable Feature
23mImplementing Out-of-Order Native Histograms in Prometheus
26mUsing OpenTelemetry’s Exponential Histograms in Prometheus
42mPrometheus Intro and Deep Dive
