🌐
GitHub
github.com › prometheus › prometheus › pull › 1161 › files
promql: Remove extrapolation from rate/increase/delta. by brian-brazil · Pull Request #1161 · prometheus/prometheus
This is an improvement from both a theoretical and practical standpoint. Theory: For simplicty I'll take the example of increase(). Counters are fundamentally lossy, if there's a counter reset or instance failure between one scrape and the next ...
Author: prometheus
🌐
GitHub
github.com › prometheus › proposals › blob › main › proposals › 0052-extended-range-selectors-semantics.md
proposals/proposals/0052-extended-range-selectors-semantics.md at main · prometheus/proposals
Unlike the standard increase function, smoothed increase avoids over-extrapolation by using linear interpolation between actual data points. ... The smoothed approach accurately measures the total increase of 11 by using linear interpolation ...
Author: prometheus
🌐
Google Groups
groups.google.com › g › prometheus-users › c › _aK7im7elUs
Why does increase() return fractional results for integer-valued metrics?
Prometheus extrapolates `increase()` results - see https://github.com/prometheus/prometheus/issues/3746 for more details. There is an implementation, which returns exact results from increase() without extrapolation - https://victoriametrics.github.io/MetricsQL.html .
🌐
GitHub
github.com › prometheus › prometheus › pull › 1245
promql: Limit extrapolation of delta/rate/increase by brian-brazil · Pull Request #1245 · prometheus/prometheus
Conclusion: Let's have non-extrapolating functions (or let's say at least a delta, which might be justified just because of the huge savings in computational cost – a non-extrapolating delta is the only function where you only have to look at the first and last sample in the range) for the special case with correctly aligned start and end values. About the explanations: The naive user (presumably most of them) wants to hear "Because of the sampled nature of the Prometheus time series data, we have to extrapolate the calculated value the best we can.
Author: prometheus
🌐
Google Groups
groups.google.com › g › prometheus-users › c › qmutsg1c55g
Increase without extrapolation
We were able to prove this by manipulating the data to make sure the time range boundary was far enough away from the first and last sample to prevent the extrapolation code from running. So we are considering options to export the data from Prometheus and replicate the increase function but without the extrapolation.
🌐
GitHub
github.com › prometheus › prometheus › issues › 3806
Proposal for improving rate/increase · Issue #3806 · prometheus/prometheus
February 6, 2018 - On-the-fly query_range rate/increase calculations with each increase only included in one rate/increase point and without data loss (which is what Grafana provides support for). Currently there are 2 issues that prevent this from working: (a) one needs to be aware of the scrape interval in order to bump the range by that much; and (b) neither Grafana nor Prometheus support the kind of time arithmetic necessary to query rate(foo[1h+1m]).
Author: prometheus
🌐
GitHub
github.com › prometheus › prometheus › issues › 17824
Feature request: a query function "increase()" variant that assumes new metrics to have started at 0 before the first value · Issue #17824 · prometheus/prometheus
January 9, 2026 - an increase variant, that assumes that a metric was at 0 at the beginning of the time range, if no samples exist there ... a delta function without extrapolation, that assumes that a metric was at 0 at the beginning of the time range, if no ...
Author: prometheus
🌐
GitHub
github.com › prometheus › prometheus › issues › 15976
PromQL(histograms): Prevent extrapolation below zero · Issue #15976 · prometheus/prometheus
February 5, 2025 - tl;dr: We should prevent extrapolation below zero in rate and increase calculations, in a similar way as for simple float counters. TODOs are in the code and in the spec. By not doing it, we sometimes get different results from a NH vs. ...
Author: prometheus
Find elsewhere
🌐
GitHub
github.com › prometheus › prometheus › issues › 12967
Proposal for improving rate, increase, delta (based on xrate, xincrease) · Issue #12967 · prometheus/prometheus
October 11, 2023 - the first counter increase from the origin is counted rather than ignored; missed or late scrapes never lead to missing results; ... Here is a Design Doc with a detailed explanation including examples: Prometheus yrate (yrate, yincrease, ydelta): ...
Author: prometheus
🌐
New Releases
newreleases.io › project › github › prometheus › prometheus › release › v3.14.0
prometheus/prometheus v3.14.0 on GitHub
1 month ago - [FEATURE] PromQL: Allow rate() and increase() to use start timestamps as an alternative for rate extrapolation. Hidden behind the use-start-timestamps feature flag. #18619 · [FEATURE] TSDB: Add experimental support for encoding start timestamps ...
🌐
GitHub
github.com › prometheus › prometheus › releases › tag › v3.14.0
Release 3.14.0 / 2026-08-17 · prometheus/prometheus
[FEATURE] PromQL: Allow rate() and increase() to use start timestamps as an alternative for rate extrapolation. Hidden behind the use-start-timestamps feature flag. #18619 · [FEATURE] TSDB: Add experimental support for encoding start timestamps ...
Author: prometheus
🌐
Mail Archive
mail-archive.com › search
subject:"Re\: \[prometheus\-users\] Why does increase\(\) return fractional results for integer\-valued metrics\?"
Regards > > John > > On Mon, 22 ... is an implementation, which returns exact results from increase() > > without extrapolation - https://victoriametrics.github.io/MetricsQL.html ....
🌐
New Releases
newreleases.io › project › github › prometheus › prometheus › release › v3.14.0-rc.0
prometheus/prometheus v3.14.0-rc.0 on GitHub
August 11, 2026 - [FEATURE] PromQL: Allow rate() and increase() to use start timestamps as an alternative for rate extrapolation. Hidden behind the use-start-timestamps feature flag. #18619 · [FEATURE] TSDB: Add experimental support for encoding start timestamps ...
🌐
GitLab
gitlab.cncf.ci › prometheus › prometheus › commit › 43b5d8ead244ad7177131fc7c426f60258811018
promql: Limit extrapolation of delta/rate/increase (43b5d8ea) · Commits · Prometheus / prometheus
November 28, 2015 - If the first (last) sample in the range is more than 1.1*interval distant from the beginning (end) of the range, it is considered the first (last) sample of the series as a whole, and extrapolation is limited to half the interval (rather than ...
🌐
GitHub
github.com › prometheus › prometheus › issues › 6779
solution: accurate `increase` function · Issue #6779 · prometheus/prometheus
February 6, 2020 - There has been a frequent request for prometheus to implement an increase function that "just works" for the common situation of wanting to know the increase of a counter over time. The current implementation misses increases at the begi...
Author: prometheus
🌐
GitHub
raw.githubusercontent.com › prometheus › prometheus › main › CHANGELOG.md
https://raw.githubusercontent.com/prometheus/prome...
#19089 - [FEATURE] PromQL: Allow `rate()` and `increase()` to use start timestamps as an alternative for rate extrapolation. Hidden behind the `use-start-timestamps` feature flag. #18619 - [FEATURE] TSDB: Add experimental support for encoding start timestamps in histograms and float histograms.
🌐
DoiT
doit.com › home › blog › making peace with prometheus rate()
Making peace with Prometheus rate() | DoiT
February 17, 2023 - To get the increase over 60 seconds, we ask P8s to calculate one for 75 seconds (with that extra sample that usually falls between the buckets). Of course, Prometheus will extrapolate it to 75 seconds but we de-extrapolate it manually back to 60 and now our charts are both precise and provide us with the data one whole-minute boundaries as well.
🌐
Google Groups
groups.google.com › g › prometheus-users › c › jqEt-FkJo0o
overhead of rate vs increase
In terms of samples fetched from the DB which is a cost limiting factor in our set up, what is the overhead of rate() compared to increase(). Based on my reading so far, rate() requires all data points within the time range interval thus it will fetch all data points from storage. On the other hand, the increase() function would fetch the first and last data point + penultimate data points for interpolation/extrapolation.