VictoriaMetrics/app/vmselect/promql
Aliaksandr Valialkin 0cf56c1ba5
app/vmselect/promql: properly handle precision errors in rollup functions
changes(), increases_over_time() and resets() shouldn't take into account
value changes, which may occur because of precision errors.

The maximum guaranteed precision for raw samples stored in VictoriaMetrics is 12 decimal digits.
So do not count relative changes for values if they are smaller than 1e-12 comparing to the value.

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/767
2024-02-08 02:30:57 +02:00
..
active_queries.go Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 10:16:42 +02:00
aggr.go app/vmselect/promql: remove superflouos memory allocations at aggrPrepareSeries() 2024-01-23 02:28:31 +02:00
aggr_incremental.go app/vmselect/promql/aggr_incremental.go: eliminate unnecessary memory allocation in incrementalAggrFuncContext.updateTimeseries 2024-01-23 02:28:30 +02:00
aggr_incremental_test.go app/vmselect/promql: fix TestIncrementalAggr test on systems less than 3 CPU cores 2023-03-20 20:37:18 -07:00
aggr_test.go app/vmselect/promql: simplify the code after 388d020b7c 2024-01-16 15:06:33 +02:00
binary_op.go app/vmselect/promql: really keep metric names when keep_metric_names modifier is applied to binary operator 2024-01-31 02:32:55 +02:00
eval.go app/vmselect: set proper timestamp for cached instant responses (#5723) 2024-01-30 20:03:34 +00:00
eval_test.go app/vmselect: set proper timestamp for cached instant responses (#5723) 2024-01-30 20:03:34 +00:00
exec.go app/vmselect/promql: consistently sort results of a or b query 2024-01-16 01:30:10 +02:00
exec_test.go app/vmselect/promql: really keep metric names when keep_metric_names modifier is applied to binary operator 2024-01-31 02:32:55 +02:00
memory_limiter.go app/vmselect: return back the logic for limits the amounts of memory occupied by concurrently executed queries if -search.maxMemoryPerQuery isn't set 2022-10-10 21:45:13 +03:00
memory_limiter_test.go app/vmselect: return back the logic for limits the amounts of memory occupied by concurrently executed queries if -search.maxMemoryPerQuery isn't set 2022-10-10 21:45:13 +03:00
parser.go all: add support for or filters in series selectors 2023-07-16 00:06:33 -07:00
rollup.go app/vmselect/promql: properly handle precision errors in rollup functions 2024-02-08 02:30:57 +02:00
rollup_result_cache.go app/vmselect/promql: do not spend CPU time on verifying whether the rollup cache needs to be reset for the given metric rows when it has been already instructed to reset 2024-01-26 21:13:38 +01:00
rollup_result_cache_test.go app/vmselect/promql: properly handle duplicate series when merging cached results with the results obtained from the database 2023-11-16 16:01:40 +01:00
rollup_test.go app/vmselect/promql: properly handle possible negative results caused… (#5608) 2024-01-21 02:53:29 +02:00
rollup_timing_test.go app/vmselect: use consistent randomizer in tests 2023-01-23 19:27:25 -08:00
timeseries.go app/vmselect/promql: optimize repeated SLI-like instant queries with lookbehind windows >= 1d 2023-10-31 19:25:23 +01:00
timeseries_test.go app/vmselect/promql: add test to ensure 8-byte alignment (#3948) 2023-03-16 09:01:42 -07:00
transform.go app/vmselect/promql: add day_of_year() function (#5368) 2023-11-28 11:54:00 +01:00
transform_test.go app/vmselect/promql: follow-up for 79e1c6a6fc 2023-03-27 18:03:36 -07:00
tzdata.go all: cleanup: remove // +build ... lines, since they are no longer needed after Go1.17, and the minimum supported Go version for VictoriaMetrics source code is Go1.20 2023-11-13 19:12:51 +01:00