Ł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
Goutham Veeramachaneni
bf2658bec1
Merge pull request #13627 from aknuds1/arve/sync-otlp
...
otlptranslator: Upgrade to v0.95.0
2024-02-22 22:34:18 +05:30
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
Bryan Boreham
6ed56c9f04
WAL watcher: improve comments
...
Clarify in the first comment that it is `watch()` that waits, and reduce
verbiage.
The second comment was slightly contradictory to the first and otherwise
didn't seem to add much, since `currentSegment` was incremented just a
few lines later.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-22 09:32:46 +00: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
Bryan Boreham
a975a83079
tsdb: clean up Watcher debug messages
...
Print lastSegment after it gets initialized.
Move variable declaration to first use.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-22 09:19:18 +00:00
Bryan Boreham
78f46bccca
tsdb/wlog tests: remove unnecessary sleep check
...
Sleep() is documented to return immediately on negative or zero input.
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-22 09:14:52 +00:00
Arve Knudsen
bf5ca8cf38
otlptranslator: Upgrade to v0.95.0
...
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2024-02-22 09:12:07 +01:00
arukiidou
d55fe5064d
Merge branch 'prometheus:main' into chore/bump-to-go1.21
2024-02-22 12:42:07 +09: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
Julien Pivotto
e22b564049
Always align scrapes even if tolerance is bigger than 1% of scrape interval
...
When the scrape tolerance is bigger than 1% of the scrape interval, take
1% of the scrape interval as the tolerance instead of not aligning the
scrape at all.
Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2024-02-21 15:09:21 +01:00
Bryan Boreham
14e48cd3ce
Docs: update remote-write defaults
...
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-02-21 11:39:23 +00:00
Fiona Liao
841a133514
Move histogramsAppended to be more consistent
...
Signed-off-by: Fiona Liao <fiona.liao@grafana.com>
2024-02-21 11:15:04 +00:00
Fiona Liao
52389647b2
Add type label to outOfOrderSamplesAppended metric
...
Signed-off-by: Fiona Liao <fiona.liao@grafana.com>
2024-02-19 15:24:39 +00: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
junya koyama
39e858e524
go: bump go from 1.20 to 1.21
...
Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
2024-02-19 20:40:55 +09:00
junya koyama
ebb91bc111
ci: bump Go from 1.21 to 1.22
...
Signed-off-by: junya koyama <arukiidou@yahoo.co.jp>
2024-02-19 20:40:00 +09: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
machine424
92544c00bf
discovery: kubernetes: Avoid creating unnecessary Kubernetes indexers in RoleEndpointSlice
...
This was due to a missing "return", see https://github.com/prometheus/prometheus/pull/13554#discussion_r1490965817
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2024-02-16 14:29:28 +01: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