Dmytro Kozlov
b75f1854c5
vmselect/promql: add alphanumeric sort by label (sort_by_label_numeric) ( #2982 )
...
* vmselect/promql: add alphanumeric sort by label (sort_by_label_numeric)
* vmselect/promql: fix tests, add documentation
* vmselect/promql: update test
* vmselect/promql: update for alphanumeric sorting, fix tests
* vmselect/promql: remove comments
* vmselect/promql: cleanup
* vmselect/promql: avoid memory allocations, update functions descriptions
* vmselect/promql: make linter happy (remove ineffectual assigment)
* vmselect/promql: add test case, fix behavior when strings are equal
* vendor: update github.com/VictoriaMetrics/metricsql from v0.44.1 to v0.45.0
this adds support for sort_by_label_numeric and sort_by_label_numeric_desc functions
* wip
* lib/promscrape: read response body into memory in stream parsing mode before parsing it
This reduces scrape duration for targets returning big responses.
The response body was already read into memory in stream parsing mode before this change,
so this commit shouldn't increase memory usage.
* wip
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2022-09-14 17:41:09 +03:00
Aliaksandr Valialkin
523ff25077
vendor: make vendor-update
2022-09-13 16:44:44 +03:00
Aliaksandr Valialkin
7c2fa1bc48
vendor: make vendor-update
2022-09-08 18:51:49 +03:00
Aliaksandr Valialkin
9a1ede0977
vendor: make vendor-update
2022-09-02 21:42:41 +03:00
Aliaksandr Valialkin
6ba93bf2dc
vendor: make vendor-update
2022-08-30 09:45:26 +03:00
Aliaksandr Valialkin
278481f71d
vendor: make vendor-update
2022-08-21 19:06:28 +03:00
Aliaksandr Valialkin
28a7a19a94
go.mod: update github.com/VictoriaMetrics/metrics from v1.22.1 to v1.22.2
2022-08-17 21:13:06 +03:00
Aliaksandr Valialkin
308f29f674
vendor: make vendor-update
2022-08-15 00:53:41 +03:00
Aliaksandr Valialkin
1a851b14c9
vendor: update github.com/VictoriaMetrics/metrics from v1.21.0 to v1.22.1
2022-08-08 17:18:42 +03:00
Aliaksandr Valialkin
ebd59e17df
vendor: make vendor-update
2022-08-07 22:38:01 +03:00
Aliaksandr Valialkin
b5b13e48a3
vendor: update github.com/VictoriaMetrics/metrics from v1.20.1 to v1.21.0
...
This adds the following push-related metrics when -pushmetrics.url is set:
- metrics_push_interval_seconds
- metrics_push_total
- metrics_push_errors_total
- metrics_push_bytes_pushed_total
- metrics_push_duration_seconds
- metrics_push_block_size_bytes
Updates https://github.com/VictoriaMetrics/metrics/issues/35
2022-08-04 18:15:50 +03:00
Aliaksandr Valialkin
bf65709540
vendor: make vendor-update
2022-08-02 09:19:38 +03:00
Aliaksandr Valialkin
f148cffc8a
vendor: make vendor-update
2022-07-25 10:49:33 +03:00
Aliaksandr Valialkin
7afcc42454
all: push metrics to -pusmetrics.url in gzip-compressed form in order to reduce the needed network bandwidth
2022-07-25 10:42:26 +03:00
Aliaksandr Valialkin
2a78975447
vendor: make vendor-update
2022-07-21 21:10:25 +03:00
Aliaksandr Valialkin
4ce5875fa8
all: add ability to push internal metrics to remote storage system specified via -pushmetrics.url
2022-07-21 20:36:27 +03:00
Aliaksandr Valialkin
87cdb58bc3
vendor: make vendor-update
2022-07-18 11:13:54 +03:00
Aliaksandr Valialkin
5f7b6bedce
vendor: make vendor-update
2022-07-13 16:43:53 +03:00
Aliaksandr Valialkin
4b67231097
vendor: make vendor-update
2022-07-11 18:13:38 +03:00
Aliaksandr Valialkin
9cb8838b30
vendor: make vendor-update
2022-07-07 20:47:17 +03:00
Aliaksandr Valialkin
611434ce81
vendor: make vendor-update
2022-07-04 12:00:27 +03:00
Aliaksandr Valialkin
32ac6b5ed8
vendor: update github.com/VictoriaMetrics/metricsql from v0.44.0 to v0.44.1
2022-06-30 18:20:33 +03:00
Aliaksandr Valialkin
eefa1e24f8
vendor: make vendor-update
2022-06-28 14:51:45 +03:00
Aliaksandr Valialkin
d2bbbf147c
all: limit the maximum memory usage for regexp cache, which stores parsed regular expressions in MetricsQL queries
...
Previously the cache could store 10K unique regexps. When every regexp is huge (e.g. hundreds of kilobytes),
then the total cache size could grow to multiples of gigabytes. Now the cache size is limited by the total length
of all cached regexps. So huge regexps won't result in high memory usage for the cache.
2022-06-24 17:57:43 +03:00
Aliaksandr Valialkin
418f40f7fa
vendor: make vendor-update
2022-06-20 14:30:23 +03:00
Aliaksandr Valialkin
c7555ab635
vendor: make vendor-update
2022-06-13 10:02:21 +03:00
Aliaksandr Valialkin
b3b6cf345a
vendor: make vendor-update
2022-06-06 13:19:34 +03:00
Aliaksandr Valialkin
b6af13ae94
vendor: make vendor-update
2022-05-31 12:57:04 +03:00
Aliaksandr Valialkin
31c6cfe3fb
vendor: make vendor-update
2022-05-25 21:49:12 +03:00
Aliaksandr Valialkin
d87733fe1c
vendor: make vendor-update
2022-05-20 14:45:24 +03:00
dependabot[bot]
baf1ec4639
build(deps): bump github.com/influxdata/influxdb from 1.9.6 to 1.9.7 ( #2589 )
...
Bumps [github.com/influxdata/influxdb](https://github.com/influxdata/influxdb ) from 1.9.6 to 1.9.7.
- [Release notes](https://github.com/influxdata/influxdb/releases )
- [Changelog](https://github.com/influxdata/influxdb/blob/master/CHANGELOG_OLD.md )
- [Commits](https://github.com/influxdata/influxdb/commits )
---
updated-dependencies:
- dependency-name: github.com/influxdata/influxdb
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-17 13:14:30 +02:00
Dmytro Kozlov
c8af625bcc
vmctl: fix build for solaris os ( #2555 )
...
* vmctl: fix build for solaris os
* vmctl: updated dependency (using Syscall instead of Syscall6)
* vmctl: updated dependency
* vmctl: updated dependency
2022-05-09 21:36:18 +02:00
Aliaksandr Valialkin
043363750a
vendor: make vendor-update
2022-05-07 01:48:35 +03:00
Aliaksandr Valialkin
8be5c0ab16
vendor: make vendor-update
2022-05-04 23:50:38 +03:00
Aliaksandr Valialkin
67977e2b55
vendor: make vendor-update
2022-05-02 16:00:32 +03:00
Dmytro Kozlov
b2294d1cf1
vmctl/vm: added datapoints collection bar ( #2486 )
...
add progress bars to the VM importer
The new progress bars supposed to display the processing speed per each
VM importer worker. This info should help to identify if there is a bottleneck
on the VM side during the import process, without waiting for its finish.
The new progress bars can be disabled by passing `vm-disable-progress-bar` flag.
Plotting multiple progress bars requires using experimental progress bar pool
from github.com/cheggaaa/pb/v3. Switch to progress bar pool required changes
in all import modes.
The openTSDB mode wasn't changed due to its implementation, which implies individual progress
bars per each series. Because of this, using the pool wasn't possible.
Signed-off-by: dmitryk-dk <kozlovdmitriyy@gmail.com>
Co-authored-by: hagen1778 <roman@victoriametrics.com>
2022-05-02 09:06:34 +02:00
Aliaksandr Valialkin
0efeba13a7
vendor: update github.com/valyala/gozstd from v1.16.0 to v1.17.0
2022-04-29 19:30:41 +03:00
Aliaksandr Valialkin
cce1b6d7f9
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:59:03 +03:00
Aliaksandr Valialkin
e0195558c9
vendor: make vendor-update
2022-04-26 15:24:27 +03:00
Aliaksandr Valialkin
8d0fb4d69d
vendor: make vendor-update
2022-04-21 16:00:47 +03:00
Aliaksandr Valialkin
de892239a9
app/vmselect/promql: add drop_common_labels()
function
2022-04-21 14:20:20 +03:00
Aliaksandr Valialkin
ea349660cf
vendor: make vendor-update
2022-04-19 11:40:41 +03:00
Aliaksandr Valialkin
a91c2a4377
vendor: make vendor-update
2022-04-12 12:51:54 +03:00
Aliaksandr Valialkin
d7bf0a7348
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:31:44 +03:00
Aliaksandr Valialkin
a95b96979c
vendor: make vendor-update
2022-04-07 15:28:27 +03:00
Aliaksandr Valialkin
cae61c85d4
vendor: update github.com/VictoriaMetrics/fastcache from v1.9.0 to v1.10.0
2022-04-05 20:32:50 +03:00
Aliaksandr Valialkin
d4f14f4879
vendor: make vendor-update
2022-04-04 13:05:04 +03:00
Aliaksandr Valialkin
2ea540a5aa
vendor: make vendor-update
2022-03-26 13:07:56 +02:00
Aliaksandr Valialkin
e1311409db
vendor: make vendor-update
2022-03-21 17:02:12 +02:00
Aliaksandr Valialkin
f30044cd5c
vendor: make vendor-update
2022-03-16 13:55:03 +02:00
Aliaksandr Valialkin
3f8ab2e4be
vendor: make vendor-update
2022-03-03 18:14:56 +02:00
Aliaksandr Valialkin
df5b0067ca
vendor: make vendor-update
2022-02-22 20:56:49 +02:00
Aliaksandr Valialkin
e5ebdb9b1a
vendor: make vendor-update
2022-02-21 13:59:00 +02:00
Aliaksandr Valialkin
33fd30ff61
vendor: make vendor-update
2022-02-12 01:12:19 +02:00
Aliaksandr Valialkin
c3d02ee75a
vendor: update github.com/VictoriaMetrics/fastcache from v1.8.0 to v1.9.0
2022-02-07 23:41:08 +02:00
Aliaksandr Valialkin
21bd204e81
vendor: update github.com/valyala/gozstd from v1.15.1 to v1.16.0
2022-02-07 18:32:33 +02:00
Aliaksandr Valialkin
cf3a041c2f
vendor: make vendor-update
2022-02-07 15:06:15 +02:00
Aliaksandr Valialkin
d4b09896fa
vendor: update github.com/VictoriaMetrics/metricsql from v0.39.0 to v0.40.0
2022-02-01 17:31:38 +02:00
Aliaksandr Valialkin
e7f1ceeb84
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 19:32:36 +02:00
Aliaksandr Valialkin
d2ac954fe1
vendor: make vendor-update
2022-01-31 12:46:17 +02:00
Aliaksandr Valialkin
e02e0508da
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:03:54 +02:00
Aliaksandr Valialkin
ac92d471a6
vendor: make vendor-update
2022-01-27 13:16:33 +02:00
Aliaksandr Valialkin
f5f27a5fbf
vendor: make vendor-update
2022-01-23 13:13:46 +02:00
Aliaksandr Valialkin
44f4c4f9ba
go.sum: missing update to go.sum after ce602827e5
2022-01-17 15:44:21 +02:00
Aliaksandr Valialkin
1bdc71d917
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:14:59 +02:00
Aliaksandr Valialkin
f41846d002
app/vmselect/promql: add stale_samples_over_time()
function
2022-01-14 01:48:04 +02:00
Aliaksandr Valialkin
4e84c38b70
vendor: update github.com/valyala/gozstd from v1.15.0 to v1.15.1
2022-01-13 23:44:31 +02:00
Aliaksandr Valialkin
c883c15878
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:12:06 +02:00
Aliaksandr Valialkin
4e7026320a
vendor: update github.com/valyala/gozstd from v1.14.2 to v1.15.0
2022-01-12 13:23:02 +02:00
Aliaksandr Valialkin
5c321c7178
vendor: make vendor-update
2022-01-11 10:15:42 +02:00
Aliaksandr Valialkin
71fa1c8baf
vendor: make vendor-update
2022-01-07 12:39:20 +02:00
Aliaksandr Valialkin
f40b1e7e9f
vendor: make vendor-update
2021-12-22 12:36:27 +02:00
Aliaksandr Valialkin
974d9c0eee
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:19:44 +02:00
Aliaksandr Valialkin
7749b47d6a
vendor: make vendor-update
2021-12-20 12:07:22 +02:00
Aliaksandr Valialkin
5efe377a26
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:37:07 +02:00
Aliaksandr Valialkin
7d58f57a52
vendor: make vendor-update
2021-12-12 18:10:09 +02:00
Aliaksandr Valialkin
d1f8915ed1
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:04:58 +02:00
Aliaksandr Valialkin
e2d9bf3b57
vendor: make vendor-update
2021-12-06 10:19:09 +02:00
Aliaksandr Valialkin
9c66848c32
vendor: make vendor-update
2021-12-02 12:42:35 +02:00
Aliaksandr Valialkin
7275ebf91a
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:43 +02:00
Aliaksandr Valialkin
e6a0c87c7e
vendor: make vendor-update
2021-11-29 12:35:40 +02:00
Aliaksandr Valialkin
b900560b83
app/vmselect/promql: add now()
function, which returns the current timestamp as a floating-point value in seconds
2021-11-17 16:35:30 +02:00
Aliaksandr Valialkin
b3c6334fbb
go.mod: add missing update after 4b660a7fc9
2021-11-17 13:38:23 +02:00
Aliaksandr Valialkin
09b0641ccb
vendor: make vendor-update
2021-11-14 14:06:53 +02:00
Aliaksandr Valialkin
f43586c63c
app/vmselect/promql: arrange function names in the code in alphabetical order
...
This should simplify code maintenance in the future
2021-11-14 13:55:06 +02:00
Aliaksandr Valialkin
3419ac1d36
app/vmselect/promql: add duration_over_time(m[d], max_interval)
function
...
This function calculates the actual lifetime of the time series on the given lookbehdind window `d`
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1780
2021-11-08 13:14:09 +02:00
Aliaksandr Valialkin
1be4838ca0
vendor: make vendor-update
2021-11-08 12:39:57 +02:00
Aliaksandr Valialkin
27044b84d2
app/vmselect/promql: add limit_offset(limit, offset, q)
function, which can be used for paging over big number of time series
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1778
2021-11-03 16:02:27 +02:00
Aliaksandr Valialkin
43a58bd618
app/vmselect/promql: add label_graphite_group()
function for extracting groups from Graphite metric names
2021-11-03 13:19:08 +02:00
Aliaksandr Valialkin
28b6456f3b
vendor: make vendor-update
2021-11-01 15:59:38 +02:00
Aliaksandr Valialkin
cb3819d44e
vendor: update github.com/VictoriaMetrics/metrics from v1.18.0 to v1.18.1
2021-11-01 15:52:53 +02:00
Aliaksandr Valialkin
1952ab99aa
all: fix build issues and tests for Apple M1
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1653
2021-10-27 15:06:34 +03:00
Aliaksandr Valialkin
51641c0840
vendor: make vendor-update
2021-10-26 19:36:50 +03:00
Aliaksandr Valialkin
f64f626927
go.mod: remove outdated replacement
2021-10-22 19:46:54 +03:00
Aliaksandr Valialkin
8124f202a4
vendor: make vendor-update
2021-10-22 19:27:06 +03:00
Aliaksandr Valialkin
f744c1c6d9
vendor: return back the previous google.golang.org/genproto version, since the latest version leads to compile errors
...
The following errors:
vendor/cloud.google.com/go/storage/storage.go:1447:53: o.GetCustomerEncryption().GetKeySha256 undefined (type *"google.golang.org/genproto/googleapis/storage/v2".Object_CustomerEncryption has no field or method GetKeySha256)
vendor/cloud.google.com/go/storage/writer.go:439:10: q.GetCommittedSize undefined (type *"google.golang.org/genproto/googleapis/storage/v2".QueryWriteStatusResponse has no field or method GetCommittedSize)
2021-10-18 15:37:18 +03:00
Aliaksandr Valialkin
dea8521ab9
vendor: make vendor-update
2021-10-18 15:25:11 +03:00
Aliaksandr Valialkin
9761b7f3ef
vendor: update github.com/valyala/gozstd from v1.13.0 to v1.14.1
...
This should reduce memory usage in vmagent when compressing large scrape responses in stream parsing mode
2021-10-16 18:20:03 +03:00
Aliaksandr Valialkin
1eaaf8ad51
vendor: make vendor-update
2021-10-11 21:51:44 +03:00
Aliaksandr Valialkin
a5001b9c20
app/vmselect/promql: add atan2
binary operator, which is going to be added in Prometheus 2.31
...
See https://github.com/prometheus/prometheus/pull/9248
2021-10-11 21:15:53 +03:00