Commit Graph

351 Commits

Author SHA1 Message Date
Aliaksandr Valialkin
6eb1580158
app/vmselect/promql: add tlast_change_over_time(m[d]) function, which returns the timestamp for the last change of m on the given lookbehind window d 2022-04-27 10:58:40 +03:00
Aliaksandr Valialkin
155cd5d6e1
vendor: make vendor-update 2022-04-26 15:27:40 +03:00
Aliaksandr Valialkin
2c7f7799eb
vendor: make vendor-update 2022-04-21 16:01:19 +03:00
Aliaksandr Valialkin
a5cfe5d13e
app/vmselect/promql: add drop_common_labels() function 2022-04-21 14:20:36 +03:00
Aliaksandr Valialkin
7a622a71ea
vendor: make vendor-update 2022-04-19 11:43:02 +03:00
Aliaksandr Valialkin
b9e133678f
vendor: make vendor-update 2022-04-12 12:56:50 +03:00
Aliaksandr Valialkin
b3a3e9990f
vendor: update github.com/VictoriaMetrics/metricsql from v0.40.0 to v0.41.0
This allows using built-in function names as with template names
2022-04-11 18:32:18 +03:00
Aliaksandr Valialkin
f1c01a6fcc
vendor: make vendor-update 2022-04-07 15:28:44 +03:00
Aliaksandr Valialkin
89c550fa5d
vendor: update github.com/VictoriaMetrics/fastcache from v1.9.0 to v1.10.0 2022-04-05 20:39:43 +03:00
Aliaksandr Valialkin
a8337c7170
vendor: make vendor-update 2022-04-04 13:08:07 +03:00
Aliaksandr Valialkin
20cecf32c0
vendor: make vendor-update 2022-03-26 13:08:29 +02:00
Aliaksandr Valialkin
3ed2f67876
vendor: make vendor-update 2022-03-21 17:02:42 +02:00
Aliaksandr Valialkin
f31f097de0
vendor: make vendor-update 2022-03-16 13:55:25 +02:00
Aliaksandr Valialkin
e2eaf2a681
vendor: make vendor-update 2022-03-03 18:15:12 +02:00
Aliaksandr Valialkin
d51c838904
vendor: make vendor-update 2022-02-22 20:56:33 +02:00
Aliaksandr Valialkin
28edbd9abb
vendor: make vendor-update 2022-02-21 13:59:20 +02:00
Aliaksandr Valialkin
916989479e
vendor: make vendor-update 2022-02-12 01:14:06 +02:00
Aliaksandr Valialkin
178178bdd4
vendor: update github.com/VictoriaMetrics/fastcache from v1.8.0 to v1.9.0 2022-02-08 01:18:27 +02:00
Aliaksandr Valialkin
75c5c33694
vendor: update github.com/valyala/gozstd from v1.15.1 to v1.16.0 2022-02-07 18:31:13 +02:00
Aliaksandr Valialkin
b4b40774ec
vendor: make vendor-update 2022-02-07 15:07:43 +02:00
Aliaksandr Valialkin
021ee53ba8
app/vminsert: improve re-routing logic in order to spread rows more evenly among the available storage nodes 2022-02-06 20:20:02 +02:00
Aliaksandr Valialkin
2cc5f2940f
vendor: update github.com/VictoriaMetrics/metricsql from v0.39.0 to v0.40.0 2022-02-01 17:43:09 +02:00
Aliaksandr Valialkin
04d6596298
app/vmselect/promql: optimize queries, which join on _info metrics.
Automatically add common filters from one side of binary operation
to the other side before sending the query to storage subsystem.

See https://grafana.com/blog/2021/08/04/how-to-use-promql-joins-for-more-effective-queries-of-prometheus-metrics-at-scale/
and https://www.robustperception.io/exposing-the-software-version-to-prometheus
2022-01-31 20:25:15 +02:00
Aliaksandr Valialkin
f3250307b1
vendor: make vendor-update 2022-01-31 12:46:44 +02:00
Aliaksandr Valialkin
0ac2a51682
vendor: update github.com/VictoriaMetrics/metricsql from v0.37.0 to v0.38.0
This adds more optimization cases for https://utcc.utoronto.ca/~cks/space/blog/sysadmin/PrometheusLabelNonOptimization

For example:

* Multi-level transform functions. For example, abs(round(foo{a="b"})) + bar{x="y"}
  is now optimized to abs(round(foo{a="b",x="y"})) + bar{a="b",x="y"}
* Binary operations with `on()`, `without()`, `group_left()` and `group_right()` modifiers.
  For example, foo{a="b"} on (a) + bar is now optimized to foo{a="b"} on (a) + bar{a="b"}
* Multi-level binary operations. For example, foo{a="b"} + bar{x="y"} + baz{z="q"}
  is now optimized to foo{a="b",x="y",z="q"} + bar{a="b",x="y",z="q"} + baz{a="b",x="y",z="q"}
* Aggregate functions. For example, sum(foo{a="b"}) by (c) + bar{c="d"}
  is now optimized to sum(foo{a="b",c="d"}) by (c) + bar{c="d"}
2022-01-27 19:04:45 +02:00
Aliaksandr Valialkin
dcf20c7aa1
vendor: make vendor-update 2022-01-27 13:22:23 +02:00
Aliaksandr Valialkin
53440226d6
vendor: make vendor-update 2022-01-23 13:15:37 +02:00
Aliaksandr Valialkin
e8706ce417
vendor: make vendor-update 2022-01-17 15:45:47 +02:00
Aliaksandr Valialkin
5a1e4a140f
app/vmselect/promql: implement keep_metric_names modifier for transform and rollup functions
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/949
2022-01-14 04:15:35 +02:00
Aliaksandr Valialkin
53c9a81f2b
app/vmselect/promql: add stale_samples_over_time() function 2022-01-14 01:49:24 +02:00
Aliaksandr Valialkin
653055b924
vendor: update github.com/valyala/gozstd from v1.15.0 to v1.15.1 2022-01-13 23:44:18 +02:00
Aliaksandr Valialkin
0580a58feb
app/vmselect/promql: add support for @ modifier
Add support for `@` modifier in MetricsQL according to https://prometheus.io/docs/prometheus/latest/querying/basics/#modifier

Extend the support with the following features:
* Allow using `@` modifier everywhere in the query. For example, `sum(foo) @ end()`
* Allow using arbitrary expression as `@` modifier. For example, `foo @ (end() - 1h)`
  returns `foo` value at `end - 1 hour` timestamp on the selected time range `[start ... end]`

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1348
2022-01-13 22:15:19 +02:00
Aliaksandr Valialkin
972587e6f7
vendor: update github.com/valyala/gozstd from v1.14.2 to v1.15.0 2022-01-12 13:25:50 +02:00
Aliaksandr Valialkin
ad0c21ff26
vendor: make vendor-update 2022-01-11 10:16:01 +02:00
Aliaksandr Valialkin
f10b54a665
vendor: make vendor-update 2022-01-07 12:42:14 +02:00
Aliaksandr Valialkin
fcab2fc716
vendor: make vendor-update 2021-12-22 12:39:24 +02:00
Aliaksandr Valialkin
c018f47e81
go.mod: update minimum Go version from Go 1.16 to Go 1.17
VictoriaMetrics code uses features from Go 1.17, so the minimum Go version must be increased from Go 1.16 to Go 1.17

See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1987
2021-12-22 12:39:22 +02:00
Aliaksandr Valialkin
3396f08874
app/vmselect/promql: follow-up after 177e345d8a
* Document changes_prometheus(), increase_prometheus() and delta_prometheus() functions.
* Simplify their implementation
* Mention these functions in docs/CHANGELOG.md
2021-12-20 13:15:06 +02:00
Aliaksandr Valialkin
dfbd4ca2ab
vendor: make vendor-update 2021-12-20 12:12:14 +02:00
Aliaksandr Valialkin
c170841951
app/vmselect/promql: add timestamp_with_name(m[d]) function
This function works the same as `timestamp()`, but doesn't remove source time series names.

See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/949#issuecomment-995222388
2021-12-15 23:38:09 +02:00
Aliaksandr Valialkin
aa61a74c31
vendor: make vendor-update 2021-12-12 18:10:34 +02:00
Aliaksandr Valialkin
addae7fc6a
app/vmselect/promql: preserve the order of time series passed to limit_offset() function
Previously time series passed to `limit_offset()` were shuffled according to hash for their labels.
This was unexpected behaviour for most users.

See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1920 and https://github.com/VictoriaMetrics/VictoriaMetrics/issues/951
2021-12-12 18:07:15 +02:00
Aliaksandr Valialkin
6af4c0ca95
vendor: make vendor-update 2021-12-06 09:59:06 +02:00
Aliaksandr Valialkin
246417601c
vendor: make vendor-update 2021-12-02 12:38:38 +02:00
Aliaksandr Valialkin
ab4be24397
app/vmstorage: export vm_cache_size_max_bytes metrics for determining capacity of various caches
The vm_cache_size_max_bytes metric can be used for determining caches which reach their capacity via the following query:

   vm_cache_size_bytes / vm_cache_size_max_bytes > 0.9
2021-12-02 10:30:01 +02:00
Aliaksandr Valialkin
3d20d229d0
vendor: make vendor-update 2021-11-29 12:36:56 +02:00
Aliaksandr Valialkin
aa6d11a33f
app/vmselect/promql: add now() function, which returns the current timestamp as a floating-point value in seconds 2021-11-17 16:42:11 +02:00
Aliaksandr Valialkin
ee64a88ba3
vendor: make vendor-update 2021-11-17 13:40:36 +02:00
Aliaksandr Valialkin
c6fa2eaa3b
vendor: make vendor-update 2021-11-14 14:05:11 +02:00
Aliaksandr Valialkin
1eb756fd11
app/vmselect/promql: arrange function names in the code in alphabetical order
This should simplify code maintenance in the future
2021-11-14 13:54:43 +02:00