Commit graph

11058 commits

Author SHA1 Message Date
SuperQ 504a16d135
Update Go version
Update build/test to use Go 1.20.

Signed-off-by: SuperQ <superq@gmail.com>
2023-03-09 14:41:24 +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
Bryan Boreham a07a0be024 Add benchmark for labels.Builder
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-06 18:21:58 +00:00
Bryan Boreham 30297f0d9b stringlabels: size buffer for added labels
This makes the buffer the correct size for the common case that labels
have only been added. It will be too large for the case that labels are
changed, but the current buffer resize logic in `appendLabelTo` doubles
the buffer, so a small over-estimate is better.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-06 16:29:21 +00:00
Julien Pivotto d437f0bb6b
Merge pull request #12039 from prometheus/dependabot/go_modules/go.uber.org/goleak-1.2.1
build(deps): bump go.uber.org/goleak from 1.2.0 to 1.2.1
2023-03-06 15:33:16 +01:00
Julien Pivotto ac9b52db91
Merge pull request #12043 from prometheus/dependabot/go_modules/documentation/examples/remote_storage/github.com/stretchr/testify-1.8.2
build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 in /documentation/examples/remote_storage
2023-03-06 15:32:37 +01:00
Julien Pivotto f35ac7929d
Merge pull request #12002 from hanjm/fix/jimmiehan-fix-scrape_pool_target_limit-metric
scrape: fix prometheus_target_scrape_pool_target_limit metric not set on creating scrape pool
2023-03-06 14:41:20 +01:00
Julien Pivotto 64f07cb887
Merge pull request #12065 from roidelapluie/svg-logo-direct
Directly include SVG logo in the page.
2023-03-06 13:20:48 +01:00
Julien Pivotto 631c2e9381
Merge pull request #12057 from hdost/add-parser-documentation
promql: Add a Makefile target for goyacc
2023-03-06 11:58:41 +01:00
Harold Dost ba1918b6d3 promql: Add a Makefile target for goyacc
* Add documentation for goyacc as relevant
* Ignore the y.output since it's not needed for build process.

Signed-off-by: Harold Dost <h.dost@criteo.com>
2023-03-06 11:01:23 +01:00
Julien Pivotto d2f5fdd17e
Merge pull request #12058 from Dup4/fix-typo
chore: fix ignore file_name
2023-03-06 00:49:32 +01:00
Julien Pivotto aeb44cd15a
Merge pull request #11984 from jonatan-ivanov/exemplars-for-all-time-series
Add Exemplars support for all time series
2023-03-05 23:14:07 +01:00
Dup4 adac7bcd1e
chore: fix ignore file_name
Signed-off-by: Dup4 <lyuzhi.pan@gmail.com>
2023-03-05 23:04:28 +08:00
Jonatan Ivanov 9225d118dc
Add Exemplars support for all time series
This change removes restrictions to allow adding exemplars
to all time series. It also contains some improvements in test values
so that it is easier to track what is tested.
The advantage of doing this is having a little less error-prone tests:
"yy" is not really descriptive but "counter-test" can give people
a better idea about what is tested so it is harder to make mistakes.

Closes gh-11982

Signed-off-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
2023-03-03 17:09:17 -08:00
Julien Pivotto 8e4350dd59 Directly include SVG logo in the page.
Use HTML <svg> element to include Prometheus logo in the status page.

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2023-03-04 00:36:07 +01:00
ansalamdaniel c1c444504e
Feat: metrics for head_chunks & wal folders (#12013)
Signed-off-by: ansalamdaniel <ansalam.daniel@infracloud.io>
2023-03-02 15:25:56 +05:30
dependabot[bot] 59cc7389fa
build(deps): bump github.com/stretchr/testify
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 00:00:04 +00:00
dependabot[bot] e1a6e6faa6
build(deps): bump go.uber.org/goleak from 1.2.0 to 1.2.1
Bumps [go.uber.org/goleak](https://github.com/uber-go/goleak) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/uber-go/goleak/releases)
- [Changelog](https://github.com/uber-go/goleak/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uber-go/goleak/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: go.uber.org/goleak
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 23:58:57 +00:00