Commit graph

10972 commits

Author SHA1 Message Date
Julien Pivotto b1e0b25af9
Merge pull request #12332 from roidelapluie/new-2-43-1
Cherry-pick bugfix #12322 and create v2.43.1+stringlabels
2023-05-04 22:51:47 +02:00
Bryan Boreham c4ced4a11d Cherry-pick bugfix #12322 and create v2.43.1+stringlabels
* labels: respect Set after Del in Builder (#12322)

The implementations are not symmetric between `Set()` and `Del()`, so
we must be careful. Add tests for this, both in labels and in relabel
where the issue was reported.

Also make the slice implementation consistent re `slices.Contains`.

* Create v2.43.1 with bugfix

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
Co-authored-by: Julius Volz <julius.volz@gmail.com>
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-05-04 21:50:13 +02:00
Julien Pivotto d8ec24a7c7
Merge pull request #12163 from roidelapluie/rel-2.43str
Release 2.43.0+stringlabels
2023-03-21 13:09:16 +01:00
Julien Pivotto 86eef432d0 Update CHANGELOG based on feedback
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-21 13:08:30 +01:00
Julien Pivotto 2c424d4e49 Release 2.43.0+stringlabels
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-21 11:33:58 +01:00
Julien Pivotto 76bef92e5f
Merge pull request #12158 from prometheus/fix_docker_tag
Fix docker tag sanitizer
2023-03-21 09:33:33 +01:00
SuperQ 4e5b74813b
Fix docker tag sanitizer
Use a `-` instead of `_` to make the docker tag also pass semver checks.

Signed-off-by: SuperQ <superq@gmail.com>
2023-03-20 14:14:39 +01:00
Julien Pivotto 277340e0ec
Merge pull request #12148 from roidelapluie/relrc1-stringlabels
Publish v2.43.0-rc.1+stringlabels
2023-03-16 21:45:06 +01:00
Julien Pivotto 479b562585 Publish v2.43.0-rc.1+stringlabels
This is a parallel release that will push its own docker tags to enable
users to the the experimental performance improvements.

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-16 21:13:38 +01:00
Julien Pivotto f8eb70c46d Merge branch 'release-2.43' of https://github.com/prometheus/prometheus into release-2.43 2023-03-16 21:09:16 +01:00
Julien Pivotto 71b24c25c2
Merge pull request #12147 from roidelapluie/relrc1
2.43.0-rc.1
2023-03-16 21:08:51 +01:00
Julien Pivotto 331a7dfd21 Replace '+' with '_' in docker image tag for semver compatibility
This change introduces a new variable, SANITIZED_DOCKER_IMAGE_TAG, which
replaces any '+' characters in the original DOCKER_IMAGE_TAG with '_'
characters. This ensures better compatibility with semver standards,
particularly when using metadata in version tags.

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-16 20:31:17 +01:00
Julien Pivotto 2c6168be5f Release 2.43.0-rc.1
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-16 20:21:40 +01:00
Bryan Boreham 934c520d37 labels: cope with mutating Builder during Range call
Although we had a different slice, the underlying memory was the same so
any changes meant we could skip some values.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 20:15:10 +01:00
Bryan Boreham bd23e8899d labels: add test for Builder.Range
Including mutating the Builder being Ranged over.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-16 20:15:08 +01:00
Julien Pivotto 001ee2620e
Merge pull request #12114 from roidelapluie/new-release
Release 2.43.0-rc.0
2023-03-09 16:07:30 +01:00
Julien Pivotto 031fc2dfb5 Address feedback
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-09 15:05:18 +01:00
Julien Pivotto b6d91e8bf8 Release 2.43.0-rc.0
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-09 14:30:02 +01:00
Julien Pivotto 5583c77b3a
Merge pull request #12095 from damnever/unnecessary-sort
Remove unnecessary sort
2023-03-09 13:12:02 +01:00
Bryan Boreham b96b89ef8b
Merge pull request #12048 from bboreham/faster-targets
Scraping targets are synced by creating the full set, then adding/removing any which have changed.
This PR speeds up the process of creating the full set.

I added a benchmark for `TargetsFromGroup`; it uses configuration from a typical Kubernetes SD.

The crux of the change is to do relabeling inside labels.Builder instead of converting to labels.Labels and back again for every rule. The change is broken into several commits for easier review.

This is a breaking change to `scrape.PopulateLabels()`, but `relabel.Process` is left as-is, with a new `relabel.ProcessBuilder` option.
2023-03-09 11:10:01 +00:00
Bryan Boreham d21229b27a
Merge pull request #12101 from bboreham/disable-slow-promql-tests
promql: disable some slow cases in TestConcurrentRangeQueries
2023-03-09 11:08:12 +00:00
Arve Knudsen bc9a82f5a1
remote: Improve some comments (#12102)
Improve some comments in storage/remote/queue_manager.go, wrt. general
language and a typo.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2023-03-09 11:05:24 +00:00
Julien Pivotto 479fde5bf1
Merge pull request #12106 from roidelapluie/deps243
Update go dependencies
2023-03-09 08:00:50 +01:00
Julien Pivotto 5f3a02f1e2 Update go dependencies
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 23:57:43 +01:00
Arve Knudsen 435b500de7
remote: Convert to RecoverableError using errors.As (#12103)
In storage/remote, try converting to RecoverableError using errors.As,
instead of through direct casting.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2023-03-08 13:58:09 -07:00
Julien Pivotto 9afbb23d4a
Merge pull request #12100 from prometheus/bump-otel-1-14
Bump Otel and dependencies from 1.11.2 to 1.14.0
2023-03-08 20:59:14 +01:00
Julien Pivotto f2e3c9f98c
Merge pull request #12098 from roidelapluie/update-our-deps
Update our own dependencies, support proxy from env
2023-03-08 20:58:36 +01:00
Julien Pivotto 1fd59791e1 Update tests
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 16:32:39 +01:00
Bryan Boreham be4a9c25f0 promql: disable some slow cases in TestConcurrentRangeQueries
TestConcurrentRangeQueries runs many queries, up to 4 at the same time,
to try to expose any race conditions.
This change stops four of them from running with a thousand or more steps:

  `holt_winters(a_X[1d], 0.3, 0.3)`
  `changes(a_X[1d])`
  `rate(a_X[1d])`
  `absent_over_time(a_X[1d])`

Particularly when the test runs with `-race` in CI, this reduces the
time and resources required.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-08 14:28:30 +00:00
Charles Korn 3db98d7dde
Avoid unnecessary allocations in recording rule evaluation (#11812)
Re-use the Builder each time round the loop.
2023-03-08 12:57:19 +00:00
Bryan Boreham 57d8037f2c Bump Otel and dependencies from 1.11.2 to 1.14.0
Direct imports:
	go.opentelemetry.io/otel v1.14.0
	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0
	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0
	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0
	go.opentelemetry.io/otel/sdk v1.14.0
	go.opentelemetry.io/otel/trace v1.14.0

These seem to correspond:
	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.39.0

Other direct dependencies required to update by Otel:
	github.com/stretchr/testify v1.8.2
	google.golang.org/grpc v1.53.0

Indirect dependencies required to update by Otel:
	cloud.google.com/go/compute v1.15.1
	github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b
	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0
	go.opentelemetry.io/otel/metric v0.36.0

Also the import of go.opentelemetry.io/otel/semconv had to be updated
to v1.17.0 to match 60f7d42d1e/sdk/resource/process.go (L25)

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-08 11:35:14 +00:00
Julien Pivotto 0c56e5d014 Update our own dependencies, support proxy from env
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 12:00:17 +01:00
Julien Pivotto 80cf90b080
Merge pull request #12097 from roidelapluie/shepherd
Add roidelapluie as 2.43 Release Shepherd
2023-03-08 11:55:17 +01:00
Julien Pivotto 7989bc4f55 Add roidelapluie as 2.43 Release Shepherd
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 11:26:03 +01:00
tyltr 24a9678dcc
typo 'efficcient' (#12090)
Signed-off-by: tylitianrui <tylitianrui@126.com>
2023-03-08 09:59:08 +00:00
Julien Pivotto 58d3f148bf
Merge pull request #12088 from roidelapluie/ld-per-query
Add support for lookbackdelta per query via the API
2023-03-08 09:00:13 +01:00
Xiaochao Dong (@damnever) 36fc1158b5 Remove unnecessary sort
Signed-off-by: Xiaochao Dong (@damnever) <the.xcdong@gmail.com>
2023-03-08 15:36:02 +08:00
Julien Pivotto db2d759b81 Add support for lookbackdelta per query via the API
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-08 00:30:05 +01:00
Julien Pivotto c4da9cd92f
Merge pull request #12019 from roidelapluie/scrape-config-files
Add include scrape configs
2023-03-07 22:45:38 +01:00
Bryan Boreham f4fd9b0d68 scrape: re-use memory in TargetsFromGroup
Common service discovery mechanisms such as Kubernetes can generate a
lot of target groups, so this function was allocating a lot of memory
which then immediately became garbage. Re-using the structures across
an entire Sync saves effort.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-07 17:21:37 +00:00
Bryan Boreham 5cfe759348 scrape: make TargetsFromGroup work with Builder not []Label
Save work converting to `Labels` then to `Builder`.
`PopulateLabels()` now takes as Builder as input.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-07 17:21:37 +00:00
Bryan Boreham c1dbc7b838 scrape: make PopulateLabels work with Builder not Labels
Save work converting to and fro.

Uses the recently-added relabel.ProcessBuilder variant.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-07 17:21:37 +00:00
Bryan Boreham 11d019ed5a relabel: keep intermediate results in labels.Builder
Save work converting between Builder and Labels.

Also expose ProcessBuilder, so callers can supply a Builder.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-07 17:21:37 +00:00
Bryan Boreham d740abf0c6 model/labels: add Get and Range to Builder
This lets relabelling work on a `Builder` rather than converting to and
from `Labels` on every rule.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-07 17:20:54 +00:00
Đurica Yuri Nikolić c9b85afd93
Making the number of CPUs used for WAL replay configurable (#12066)
Adds `WALReplayConcurrency` as an option on tsdb `Options` and `HeadOptions`.
If it is not set or set <=0, then `GOMAXPROCS` is used, which matches the previous behaviour.

Signed-off-by: Yuri Nikolic <durica.nikolic@grafana.com>
2023-03-07 16:41:33 +00:00
Bryan Boreham 95fc032a61 scrape: add benchmark for TargetsFromGroup
`loadConfiguration` is made more general.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-07 09:46:19 +00:00
Bryan Boreham ff993b279a
Merge pull request #12073 from bboreham/slices-sort2
labels: use slices.Sort for better performance
2023-03-07 09:31:50 +00:00
Bryan Boreham 99b3961907
Merge pull request #12072 from bboreham/stringlabels-builder-size
labels-as-strings: size buffer for added labels
2023-03-07 09:27:56 +00:00
Julien Pivotto 599b70a05d Add include scrape configs
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-06 23:35:39 +01:00
Bryan Boreham 38c6d3da9f labels: use slices.Sort for better performance
The difference is modest, but we've used `slices.Sort` in lots of other
places so why not here.

name     old time/op    new time/op    delta
Builder    1.04µs ± 3%    0.95µs ± 3%   -8.27%  (p=0.008 n=5+5)

name     old alloc/op   new alloc/op   delta
Builder      312B ± 0%      288B ± 0%   -7.69%  (p=0.008 n=5+5)

name     old allocs/op  new allocs/op  delta
Builder      2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.008 n=5+5)

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-06 18:22:49 +00:00