Commit graph

13239 commits

Author SHA1 Message Date
Justin Lei 60ad864667 Remove hacky promql.Test native histogram thing
Signed-off-by: Justin Lei <justin.lei@grafana.com>
2023-03-09 11:05:53 -08:00
Justin Lei c16b6a0185 Handle native histograms in remote read
Signed-off-by: Justin Lei <justin.lei@grafana.com>
2023-03-09 09:13:53 -08: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
Bryan Boreham 4c640677f7 Propose Bryan Boreham as 2.44 release shepherd
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-03-09 14:02:01 +00:00
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
Charles Korn 38c1930f48
Merge branch 'main' into api-response-format-extension-point
Signed-off-by: Charles Korn <charles.korn@grafana.com>
2023-03-09 12:06:26 +11:00
Charles Korn 46a28899a0
Implement fully-featured content negotiation for API requests, and allow overriding the default API codec.
Signed-off-by: Charles Korn <charles.korn@grafana.com>
2023-03-09 12:02:45 +11: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