Łukasz Mierzwa
5597020a60
Use github.com/klauspost/compress for gzip and zlib
...
klauspost/compress is a high quality drop-in replacement for common Go
compression libraries. Since Prometheus sends out a lot of HTTP requests
that often return compressed output having improved compression
libraries helps to save cpu & memory resources.
On a test Prometheus server I was able to see cpu reduction from 31 to
30 cores.
Benchmark results:
name old time/op new time/op delta
TargetScraperGzip/metrics=1-8 69.4µs ± 4% 69.2µs ± 3% ~ (p=0.122 n=50+50)
TargetScraperGzip/metrics=100-8 84.3µs ± 2% 80.9µs ± 2% -4.02% (p=0.000 n=48+46)
TargetScraperGzip/metrics=1000-8 296µs ± 1% 274µs ±14% -7.35% (p=0.000 n=47+45)
TargetScraperGzip/metrics=10000-8 2.06ms ± 1% 1.66ms ± 2% -19.34% (p=0.000 n=47+45)
TargetScraperGzip/metrics=100000-8 20.9ms ± 2% 17.5ms ± 3% -16.50% (p=0.000 n=49+50)
name old alloc/op new alloc/op delta
TargetScraperGzip/metrics=1-8 6.06kB ± 0% 6.07kB ± 0% +0.24% (p=0.000 n=48+48)
TargetScraperGzip/metrics=100-8 7.04kB ± 0% 6.89kB ± 0% -2.17% (p=0.000 n=49+50)
TargetScraperGzip/metrics=1000-8 9.02kB ± 0% 8.35kB ± 1% -7.49% (p=0.000 n=50+50)
TargetScraperGzip/metrics=10000-8 18.1kB ± 1% 16.1kB ± 2% -10.87% (p=0.000 n=47+47)
TargetScraperGzip/metrics=100000-8 1.21MB ± 0% 1.01MB ± 2% -16.69% (p=0.000 n=36+50)
name old allocs/op new allocs/op delta
TargetScraperGzip/metrics=1-8 71.0 ± 0% 72.0 ± 0% +1.41% (p=0.000 n=50+50)
TargetScraperGzip/metrics=100-8 81.0 ± 0% 76.0 ± 0% -6.17% (p=0.000 n=50+50)
TargetScraperGzip/metrics=1000-8 92.0 ± 0% 83.0 ± 0% -9.78% (p=0.000 n=50+50)
TargetScraperGzip/metrics=10000-8 93.0 ± 0% 91.0 ± 0% -2.15% (p=0.000 n=50+50)
TargetScraperGzip/metrics=100000-8 111 ± 0% 135 ± 1% +21.89% (p=0.000 n=40+50)
Signed-off-by: Łukasz Mierzwa <l.mierzwa@gmail.com>
2024-02-22 17:08:15 +00:00
Łukasz Mierzwa
92e381b8a3
Add a scrape benchmark with gzipped responses
...
Signed-off-by: Łukasz Mierzwa <l.mierzwa@gmail.com>
2024-02-22 17:07:22 +00:00
Augustin Husson
9738e48a7d
Merge pull request #13629 from prometheus/release-2.50
...
merge back release 2.50
2024-02-22 11:07:52 +01:00
Augustin Husson
545c28d923
update v2.51 release date ( #13606 )
...
* update v2.51 release date
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
* add Bryan as a next release shepherd
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
---------
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2024-02-22 10:23:26 +01:00
Augustin Husson
814b920e8a
Cut v2.50.0 ( #13612 )
...
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2024-02-22 10:21:59 +01:00
Callum Styan
0c71230784
fix bug that would cause us to endlessly fall behind ( #13583 )
...
* fix bug that would cause us to only read from the WAL on the 15s
fallback timer if remote write had fallen behind and is no longer
reading from the WAL segment that is currently being written to
Signed-off-by: Callum Styan <callumstyan@gmail.com>
* remove unintended logging, fix lint, plus allow test to take slightly
longer because cloud CI
Signed-off-by: Callum Styan <callumstyan@gmail.com>
* address review feedback
Signed-off-by: Callum Styan <callumstyan@gmail.com>
* fix watcher sleeps in test, flu brain is smooth
Signed-off-by: Callum Styan <callumstyan@gmail.com>
* increase timeout, unfortunately cloud CI can require a longer timeout
Signed-off-by: Callum Styan <callumstyan@gmail.com>
---------
Signed-off-by: Callum Styan <callumstyan@gmail.com>
2024-02-21 17:09:07 -08:00
Augustin Husson
93591ec5cc
Cut v2.50.0-rc.1 ( #13602 )
...
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2024-02-19 14:15:03 +01:00
Bryan Boreham
aba0071480
Merge pull request #13589 from bboreham/trace_id
...
Standardise exemplar label as "trace_id"
2024-02-19 09:34:04 +00:00
Björn Rabenstein
ac10cd4d99
Merge pull request #13271 from ywwg/owilliams/utf8
...
UTF-8: Add partial support for parsing UTF-8 metric and label names
2024-02-16 11:42:55 +01:00
Owen Williams
a28d7865ad
UTF-8: Add support for parsing UTF8 metric and label names
...
This adds support for the new grammar of `{"metric_name", "l1"="val"}` to promql and some of the exposition formats.
This grammar will also be valid for non-UTF-8 names.
UTF-8 names will not be considered valid unless model.NameValidationScheme is changed.
This does not update the go expfmt parser in text_parse.go, which will be addressed by https://github.com/prometheus/common/issues/554/ .
Part of https://github.com/prometheus/prometheus/issues/13095
Signed-off-by: Owen Williams <owen.williams@grafana.com>
2024-02-15 14:34:37 -05:00
Bryan Boreham
c0e36e6bb3
Standardise exemplar label as "trace_id"
...
This is consistent with the OpenTelemetry standard, and an example in OpenMetrics.
https://github.com/open-telemetry/opentelemetry-specification/blob/89aa01348139/specification/metrics/data-model.md#exemplars
https://github.com/OpenObservability/OpenMetrics/blob/138654493130/specification/OpenMetrics.md#exemplars-1
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-15 14:20:08 +00:00
Bryan Boreham
d595f5a9b1
Merge pull request #13585 from prometheus/metalmatze-bufbuild
...
Update `go get buf.build` in README.md
2024-02-15 14:08:18 +00:00
Matthias Loibl
0b38a5b774
Update go get buf.build in README.md
...
The old import path stopped working.
```
go get go.buf.build/protocolbuffers/go/prometheus/prometheus
go: unrecognized import path "go.buf.build/protocolbuffers/go/prometheus/prometheus": https fetch: Get "https://go.buf.build/protocolbuffers/go/prometheus/prometheus?go-get=1 ": dial tcp: lookup go.buf.build on 192.168.2.1:53: no such host
```
We should instead tell users to use the new import paths.
Signed-off-by: Matthias Loibl <mail@matthiasloibl.com>
2024-02-15 12:12:36 +01:00
Darshan Chaudhary
0e8a2e44a4
Azure SD: check for nil before accessing and dereferencing ( #13578 )
...
Signed-off-by: darshanime <deathbullet@gmail.com>
2024-02-14 17:59:01 +01:00
Ziqi Zhao
a93859a52f
Prometheus support parse exemplars from native histogram ( #13488 )
...
scrape: support parsing exemplars from native histogram
---------
Signed-off-by: Ziqi Zhao <zhaoziqi9146@gmail.com>
Signed-off-by: Björn Rabenstein <github@rabenste.in>
Co-authored-by: Björn Rabenstein <github@rabenste.in>
2024-02-14 17:24:40 +01:00
Augustin Husson
452f4c96b7
Cut v2.50.0-rc.0 ( #13465 )
...
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2024-02-13 10:21:23 +01:00
Bryan Boreham
ff6c83269c
Merge pull request #13452 from bboreham/go-cmp
...
Tests: Use DeepEqual replacement using go-cmp, which is more flexible
2024-02-12 15:40:08 +01:00
Björn Rabenstein
1efca80956
Merge pull request #13559 from prometheus/beorn7/promql
...
promql: Fix wrongly scoped range vectors
2024-02-12 14:34:33 +01:00
pschou
b66b0a5288
docs: improve "Querying Prometheus" readability ( #8492 )
...
Signed-off-by: schou <pschou@users.noreply.github.com>
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Co-authored-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-09 17:37:14 +00:00
Bryan Boreham
12cac5bd5c
tsdb tests: use go-cmp instead of DeepEquals
...
Also one simpler call checking nil.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-08 19:32:33 +00:00
Bryan Boreham
17f48f2b3b
Tests: use replacement DeepEquals in more places
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-08 19:32:33 +00:00
Bryan Boreham
d0dee51aac
scrape tests: check NaN values directly
...
Normally, a NaN value is never equal to any other value. Compare sample
values via `Float64bits` so that NaN values which are exactly the same
will compare equal.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-08 19:30:20 +00:00
Bryan Boreham
5a6c8f9c15
promtool: use go-cmp instead of DeepEqual
...
go-cmp allows more control over unexported fields and implementation
details.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-08 19:30:20 +00:00
Bryan Boreham
39af788dbd
Tests: use replacement DeepEquals using go-cmp
...
Use DeepEqual replacement using go-cmp, which is more flexible.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-08 19:30:20 +00:00
Bryan Boreham
d77c30102e
utils: add DeepEqual replacement using go-cmp
...
go-cmp allows control over how unexported fields and implementation
details are handled.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-08 19:30:20 +00:00
beorn7
553d92affd
model/labels: Fix new lint warning in test
...
Signed-off-by: beorn7 <beorn@grafana.com>
2024-02-07 18:12:26 +01:00
beorn7
86d7618d84
promql: Fix wrongly scoped range vectors
...
Fixes #11708 .
If a range vector is fixen in time with the @ modifier, it gets still
moved around for different steps in a range query. Since no additional
points are retrieved from the TSDB, this leads to steadily emptying
the range, leading to the weird behavior described in isse #11708 .
This only happens for functions listed in `AtModifierUnsafeFunctions`,
and the only of those that takes a range vector is `predict_linear`,
which is the reason why we see it only for this particular function.
Signed-off-by: beorn7 <beorn@grafana.com>
2024-02-07 18:07:51 +01:00
beorn7
384ab025e0
promql: Expose issue #11708
...
The shorter range in the test makes early points drop out of the range
in range queries, exposing the issue.
Signed-off-by: beorn7 <beorn@grafana.com>
2024-02-07 18:06:05 +01:00
Bryan Boreham
8655fe5401
Merge pull request #13491 from bboreham/faster-store-series
...
storage/remote: speed up StoreSeries by re-using labels.Builder
2024-02-06 17:16:32 +01:00
Bryan Boreham
3ce816fa3b
Merge pull request #13492 from bboreham/no-labelstrings-intern
...
labels: make InternStrings a no-op for stringlabels version
2024-02-06 17:15:10 +01:00
Arve Knudsen
0853e52f4e
util/runtime: Ignore nolintlint failure on OSX ( #13546 )
...
util/runtime: Make nolintlint ignore unconvert linter directive
---------
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2024-02-06 13:53:37 +01:00
Björn Rabenstein
0a3fd8d958
Merge pull request #13543 from aknuds1/arve/portable-genproto
...
scripts/genproto.sh: Support OSX sed
2024-02-06 13:53:01 +01:00
Bryan Boreham
87e4284c99
Merge pull request #13545 from aknuds1/arve/golangci-lint-arm64
...
Makefile: enable golangci-lint on ARM64
2024-02-06 11:26:48 +01:00
Arve Knudsen
7d7787f250
Makefile: Support golangci-lint on ARM64
...
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2024-02-06 13:51:16 +04:00
Arve Knudsen
e43a1d546a
scripts/genproto.sh: Support OSX sed
...
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2024-02-06 12:34:03 +04:00
Bryan Boreham
6005ac6f9d
Merge pull request #9311 from Creatone/creatone/use-testify-3
...
tests: Move from t.Errorf and others. (Part 3)
2024-02-05 18:48:59 +01:00
Peter Štibraný
e2b9cfeeeb
Enforce chunks ordering when writing index. ( #8085 )
...
Document conditions on chunks. Add check on chunk time ordering.
Signed-off-by: Peter Štibraný <peter.stibrany@grafana.com>
2024-02-04 16:31:49 +01:00
Bryan Boreham
98c4889029
Merge pull request #9298 from Creatone/creatone/use-testify
...
tests: Move from t.Errorf and others.
2024-02-04 16:27:57 +01:00
Bryan Boreham
857138d3ce
review feedback
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-04 15:52:50 +01:00
Bryan Boreham
41f3eeb048
Merge pull request #13497 from captncraig/cmp_signedheaders
...
storage/remote: apply custom headers before sigv4 transport
2024-02-04 14:46:14 +01:00
Matthias Loibl
805d51f6d3
Merge pull request #13505 from wbollock/fix/PrometheusNotIngestingSamples_label_matching
...
mixin: PrometheusNotIngestingSamples label matching
2024-02-03 11:53:18 +00:00
gotjosh
aa845f7c12
Merge pull request #13527 from pracucci/decouple-rule-concurrency-and-dependency-controller
...
Decouple ruler dependency controller from concurrency controller
2024-02-02 17:40:02 +01:00
Marco Pracucci
5ee3fbe825
Decouple ruler dependency controller from concurrency controller
...
Signed-off-by: Marco Pracucci <marco@pracucci.com>
2024-02-02 10:06:37 +01:00
Mikhail Fesenko
419dd265cc
Fix strange code, add messages to code brought in #8106 ( #13509 )
...
Signed-off-by: Mikhail Fesenko <proggga@gmail.com>
2024-02-02 10:00:38 +01:00
Faustas Butkus
6feffeb92e
promql: add histogram_avg function ( #13467 )
...
Add histogram_avg function
---------
Signed-off-by: Faustas Butkus <faustas.butkus@gmail.com>
Signed-off-by: Björn Rabenstein <github@rabenste.in>
Co-authored-by: Björn Rabenstein <github@rabenste.in>
2024-02-01 18:28:42 +01:00
Alan Protasio
c006c57efc
Proposal to improve FPointSlice and HPointSlice allocation. ( #13448 )
...
* Reusing points slice from previous series when the slice is under utilized
* Adding comments on the bench test
Signed-off-by: Alan Protasio <alanprot@gmail.com>
2024-02-01 16:22:38 +00:00
Bryan Boreham
b17f88b7fb
consul sd tests: don't call FailNow from a background goroutine
...
This is not allowed by the Go test framework.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-01 15:15:48 +00:00
Bryan Boreham
46008fdecd
lint
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-01 14:57:11 +00:00
Bryan Boreham
16e68c01e4
tests: remove err from message when testify prints it already
...
For instance `require.NoError` will print the unexpected error; we don't
need to include it in the message.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-01 14:18:01 +00:00
Paweł Szulik
1a47c7d59b
Refactor lexer tests to use testify.
...
Signed-off-by: Paweł Szulik <paul.szulik@gmail.com>
2024-02-01 13:51:31 +00:00