On Sat, Nov 21, 2020 at 4:34 PM Ben Kochie <[email protected]> wrote: > While that sounds like a good idea, it's going to produce less accurate > results for most use cases. >
Could you provide practical examples? > > On Sat, Nov 21, 2020 at 3:15 PM Aliaksandr Valialkin <[email protected]> > wrote: > >> There is an alternative solution - to use the increase() function from >> MetricsQL - it doesn't extrapolate results and it takes into account the >> previous value before the window in square brackets. So it returns exact >> expected values. See more details at >> https://victoriametrics.github.io/MetricsQL.html >> >> On Fri, Nov 20, 2020 at 2:49 PM [email protected] <[email protected]> >> wrote: >> >>> On Friday, 20 November 2020 at 02:29:12 UTC [email protected] wrote: >>> >>>> *Query*: >>>> 1. normal query: error_counter_something{job=“monitor”, device=“dev0”, >>>> serial=“xxxxxxxx”} >>>> 2. delta query: delta(error_counter_something{job=“monitor”, >>>> device=“dev0”, serial=“xxxxxxxx”}[$__interval] > 0) >>>> >>>> *Time Range*: 2020-11-19 16:16:00 ~ 2020-11-19 16:20:00 with 15sec >>>> interval >>>> >>>> *result* >>>> >>>> 16:16:15~30 raise 2 errors on device and move that error counter value >>>> from 7616 to 7618, >>>> but the delta query shows result of 3 >>>> >>>> time , delta , >>>> normal >>>> 2020-11-19 16:16:00, , 7616 >>>> 2020-11-19 16:16:15, , 7616 >>>> 2020-11-19 16:16:30, 3, 7618 >>>> 2020-11-19 16:16:45, , 7618 >>>> 2020-11-19 16:17:00, , 7618 >>>> (keep these value until end of query time range) >>>> >>>> >>> See >>> https://prometheus.io/docs/prometheus/latest/querying/functions/#delta >>> *"delta(v range-vector) calculates the difference between the first and >>> last value of each time series element in a range vector v, returning an >>> instant vector with the given deltas and equivalent labels. The delta is >>> extrapolated to cover the full time range as specified in the range vector >>> selector, so that it is possible to get a non-integer result even if the >>> sample values are all integers."* >>> >>> You haven't said what $__interval expands to in your query. It must be >>> at least 30 seconds, because otherwise you wouldn't have two values in your >>> range vector. >>> >>> So let's see what happens with 30 seconds. The window contains two >>> values: >>> >>> [...X........X...] >>> 7616 7618 >>> <--15s--> >>> >>> The difference between these is 2, and the time interval between them is >>> 15 seconds. However this increase is then extrapolated to cover the whole >>> window period of 30 seconds, so the value returned by delta() would be 4. >>> >>> What about if $__interval was 45 seconds? Then you'd have three values, >>> the difference between the first and last is 2, the time difference is 30 >>> seconds extrapolated to 45 seconds, so the result would be 2 x (45/30) = 3. >>> >>> If you want the actual difference between the metric now and the metric >>> some time ago, you can do : >>> >>> something - something offset 15s >>> >>> However, both that expression and delta() will give you nonsense values >>> if a counter resets, because it will jump back down towards zero and give >>> you a large negative value. >>> >>> Better: >>> >>> (something - something offset 15s) >= 0 >>> >>> but it won't handle counter resets as well as rate() or increase() can. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Prometheus Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/prometheus-users/f75b2007-96ed-4c66-b719-602934827cd3n%40googlegroups.com >>> <https://groups.google.com/d/msgid/prometheus-users/f75b2007-96ed-4c66-b719-602934827cd3n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> Best Regards, >> >> Aliaksandr Valialkin, CTO VictoriaMetrics >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Prometheus Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/prometheus-users/CAPbKnmAMMFA3gsTAbqVC5uz%3Dp-kymL3QT31vb9G3vOhemjWCfw%40mail.gmail.com >> <https://groups.google.com/d/msgid/prometheus-users/CAPbKnmAMMFA3gsTAbqVC5uz%3Dp-kymL3QT31vb9G3vOhemjWCfw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- Best Regards, Aliaksandr Valialkin, CTO VictoriaMetrics -- You received this message because you are subscribed to the Google Groups "Prometheus Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/CAPbKnmDqcpKzJJy53b7aifPAARHtWDJ5n_i-7_J3%2BTnNvybppw%40mail.gmail.com.

