Commit Graph

14562 Commits (fc5b7dc5d6ed0a2d3b6950d261e7883dd13c21f3)

Author SHA1 Message Date
Oleg Zaytsev 50ef0dc954
Fix `MemPostings.Add` and `MemPostings.Get` data race (#15141)
* Tests for Mempostings.{Add,Get} data race
* Fix MemPostings.{Add,Get} data race

We can't modify the postings list that are held in MemPostings as they
might already be in use by some readers.

* Modify BenchmarkHeadStripeSeriesCreate to have common labels

If there are no common labels on the series, we don't excercise the
ordering part of MemSeries, as we're just creating slices of one element
for each label value.

---------

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-10-11 15:21:15 +02:00
Julien e6f9e2dde3
Merge pull request #15119 from roidelapluie/dochttp
docs: extract HTTP client option documentation in their own sections
2024-10-11 13:10:34 +02:00
Ayoub Mrini d9a54284f5
Merge pull request #14987 from machine424/yafix
fix(notifier): avoid dropping known alertmanagers after each ApplyConfig
2024-10-10 21:14:35 +02:00
György Krajcsovits bb70370d72 TSDB head: fix race between AppendHistogram and Commit
Move writing memSeries lastHistogramValue and lastFloatHistogramValue
after series creation under lock.

The resulting code isn't totally correct in the sense that we're setting
these values before Commit() , so they might be overwritten/rolled back
later.

Also Append of stale sample checks the values without lock, so there's
still a potential race.

The correct solution would be to set these only in Commit() which we
actually do, but then Commit() would also need to process samples in
order and not floats first, then histograms, then float histograms - which
leads to not knowing what stale marker to write for histograms.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-10 16:59:15 +02:00
György Krajcsovits 631fadc4ca Unit test for data race in head.Appender.AppendHistogram
Two Appenders race when creating a series with a native histogram
as the memSeries will be common and the lastHistogram field is written
without lock.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-10 14:10:07 +02:00
Manik Rana 032ca9ef96
[PERF] textparse: further optimzations for OM `CreatedTimestamps` (#15097)
* feat: Added more tests; some changes/optimizations when pair-programming with Bartek.

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* chore: imports

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* chore: gofumpt

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* feat: use an efficient replacement to p.Metric

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* feat: reduce mem allocs + comments

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* chore: gofumpt

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* chore: use single quotes

Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>

* refac: rename

Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>

* refac: rename to seriesHash

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* refac: switch condition order

Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>

* refac: switch condition order

Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>

* feat: stronger checking

Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>

* chore: fmt

Signed-off-by: Manik Rana <manikrana54@gmail.com>

* refac: pass pointer of buf into seriesHash()

Signed-off-by: Manik Rana <manikrana54@gmail.com>

---------

Signed-off-by: Manik Rana <manikrana54@gmail.com>
Signed-off-by: Manik Rana <Manikrana54@gmail.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
2024-10-10 12:01:13 +01:00
Björn Rabenstein 8b545bab2f
Merge pull request #15026 from huochexizhan/main
fix: fix slice init length
2024-10-10 12:55:28 +02:00
Björn Rabenstein 720a2599a6
Merge pull request #15135 from prometheus/beorn7/docs
docs: Update chunk layot for NHCB
2024-10-10 12:00:51 +02:00
huochexizhan ff16fa1827 fix: fix slice init length
Signed-off-by: huochexizhan <huochexizhan@outlook.com>
2024-10-10 16:14:40 +08:00
György Krajcsovits 9b5d7287bb Use labels hash to determine change in metric like CT
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 15:16:46 +02:00
György Krajcsovits 14f92319d9 Add basic benchmark cases for NHCB over OM
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 15:16:27 +02:00
beorn7 12c39d5421 docs: Some nitpicking in chunks.md
- `float histogram` → `floathistogram`, as it is used in the code.
- Actual link encodings to the code (to find the actual numerical values).
- `<bytes>` → `<data>` for consistency.

Signed-off-by: beorn7 <beorn@grafana.com>
2024-10-09 14:32:12 +02:00
beorn7 a4cb52ff15 docs: Update chunk layot for NHCB
Signed-off-by: beorn7 <beorn@grafana.com>
2024-10-09 14:19:20 +02:00
Björn Rabenstein 02d0de9987
Merge pull request #14997 from fionaliao/fl/update-format-docs
Update chunk format docs with native histograms and OOO
2024-10-09 13:29:01 +02:00
György Krajcsovits 530e9514b7 Fix case of keeping classic series
Make it more obvious that the code in if had side effect.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 13:08:54 +02:00
Björn Rabenstein 5e987e7c7d
Merge pull request #15092 from jan--f/clarify-storage-contract
storage: require selectors to always return matching results
2024-10-09 13:07:59 +02:00
György Krajcsovits 8dfa733596 Fix labels handling with dedupelabels tag
Use scratch builder.
Use hash compare instead of compare by label.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 12:29:59 +02:00
György Krajcsovits 6b15791ec6 Follow the follow-up
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:56:54 +02:00
György Krajcsovits 4e911a3a05 Follow-up merge from main
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:54:49 +02:00
György Krajcsovits a2805e7934 Merge branch 'main' into nhcb-scrape-impl 2024-10-09 11:53:26 +02:00
György Krajcsovits f3c8ed2947 minor fixes
Fix lint errors.
No need to pre-allocate exemplars.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:45:31 +02:00
György Krajcsovits fbbf10baad Use the proper way to iterate labels
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:24:24 +02:00
György Krajcsovits 7fccf1e6be Disable CT handling and enable exemplar handling
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-09 11:08:08 +02:00
Bryan Boreham eaf98049e5 Few more 3.0-beta.1 CHANGELOGs
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-10-08 18:15:55 +01:00
Bryan Boreham eb90f238b7 Update CHANGELOG to commit 90f7832447
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-10-08 17:31:05 +01:00
Bryan Boreham 9623681543 Prepare 3.0.0-beta.1
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-10-08 17:27:10 +01:00
Julius Volz 90f7832447
Merge pull request #15084 from hvnsweeting/patch-1
docs: Querying basics: remove what can be graphed
2024-10-08 14:59:07 +02:00
Fiona Liao 8650d25804
Add additional basic nhcb unit tests (#15086)
* Add additional basic nhcb unit tests
* Update promql/promqltest/testdata/histograms.test

Signed-off-by: Fiona Liao <fiona.liao@grafana.com>
Signed-off-by: Fiona Liao <fiona.y.liao@gmail.com>
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
2024-10-08 14:34:32 +02:00
Viet Hung Nguyen f0a9f62ce8 [DOCS] Querying basics: what can be graphed
Put a scalar to query, it can be graphed.

So the doc says "an expression that returns an instant vector is the only type which can be graphed." is not correct?

And also, a query_range, which used for graph, always return a range vector <https://promlabs.com/blog/2020/06/18/the-anatomy-of-a-promql-query/#range-queries> , so it's confusing to read the above statement.

Signed-off-by: Viet Hung Nguyen <hvn@familug.org>
2024-10-08 21:16:26 +09:00
Bryan Boreham 663a66b526
Merge pull request #11224 from dekimsey/consul-catalog-filter-support
consul: Initial implemenation of catalog filter support
2024-10-08 12:38:17 +01:00
Bryan Boreham b87b88ddc2
Merge branch 'main' into consul-catalog-filter-support
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2024-10-08 12:20:31 +01:00
Björn Rabenstein 576000a457
Merge pull request #15111 from prometheus/beorn7/doc
docs: Declare "float literals are time durations" as stable
2024-10-08 12:49:40 +02:00
Marc 2a7520a323
Add image source label to dockerfiles
To get changelogs shown with Renovate a docker container has to add the source label described in the OCI Image Format Specification.

For reference: https://github.com/renovatebot/renovate/blob/main/lib/modules/datasource/docker/readme.md

Signed-off-by: Marc <github@wuast24.de>
2024-10-08 11:53:51 +02:00
Julius Volz 7b6259b29b
Merge pull request #15127 from roidelapluie/assets
Add a note for pre-built assets
2024-10-08 11:37:20 +02:00
Julien e5f604eb9a
Merge pull request #15045 from prometheus/dependabot/go_modules/github.com/klauspost/compress-1.17.10
Bump github.com/klauspost/compress from 1.17.9 to 1.17.10
2024-10-08 11:25:58 +02:00
Julien 24caa3653d
Merge pull request #15040 from prometheus/dependabot/go_modules/github.com/digitalocean/godo-1.126.0
Bump github.com/digitalocean/godo from 1.122.0 to 1.126.0
2024-10-08 11:25:37 +02:00
Julien 8406aa9c9c Add a note for pre-built assets
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-10-08 11:23:01 +02:00
György Krajcsovits e931587bf8 Factor out label compare and store
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-08 10:12:25 +02:00
dependabot[bot] 5dc59acada
Bump github.com/klauspost/compress from 1.17.9 to 1.17.10
Bumps [github.com/klauspost/compress](https://github.com/klauspost/compress) from 1.17.9 to 1.17.10.
- [Release notes](https://github.com/klauspost/compress/releases)
- [Changelog](https://github.com/klauspost/compress/blob/master/.goreleaser.yml)
- [Commits](https://github.com/klauspost/compress/compare/v1.17.9...v1.17.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 20:27:02 +00:00
dependabot[bot] f3358f3c31
Bump github.com/digitalocean/godo from 1.122.0 to 1.126.0
Bumps [github.com/digitalocean/godo](https://github.com/digitalocean/godo) from 1.122.0 to 1.126.0.
- [Release notes](https://github.com/digitalocean/godo/releases)
- [Changelog](https://github.com/digitalocean/godo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalocean/godo/compare/v1.122.0...v1.126.0)

---
updated-dependencies:
- dependency-name: github.com/digitalocean/godo
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 20:26:35 +00:00
Ben Kochie 805954d8f8
Merge pull request #14906 from tjhop/chore/3.0-adopt-slog
chore!: adopt log/slog, remove go-kit/log
2024-10-07 22:25:16 +02:00
TJ Hoplock 6ebfbd2d54 chore!: adopt log/slog, remove go-kit/log
For: #14355

This commit updates Prometheus to adopt stdlib's log/slog package in
favor of go-kit/log. As part of converting to use slog, several other
related changes are required to get prometheus working, including:
- removed unused logging util func `RateLimit()`
- forward ported the util/logging/Deduper logging by implementing a small custom slog.Handler that does the deduping before chaining log calls to the underlying real slog.Logger
- move some of the json file logging functionality to use prom/common package functionality
- refactored some of the new json file logging for scraping
- changes to promql.QueryLogger interface to swap out logging methods for relevant slog sugar wrappers
- updated lots of tests that used/replicated custom logging functionality, attempting to keep the logical goal of the tests consistent after the transition
- added a healthy amount of `if logger == nil { $makeLogger }` type conditional checks amongst various functions where none were provided -- old code that used the go-kit/log.Logger interface had several places where there were nil references when trying to use functions like `With()` to add keyvals on the new *slog.Logger type

Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
2024-10-07 15:58:50 -04:00
György Krajcsovits 16f28be713 Fix CT handling
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 16:59:07 +02:00
Julius Volz 65f6103539
Merge pull request #15118 from roidelapluie/notificationsdoc
Document the notifications API
2024-10-07 15:50:06 +02:00
György Krajcsovits 6bebeaf41b Fix not checking all labels before deciding to store NHCB
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2024-10-07 15:41:54 +02:00
Julien 7eb73b10d8 Remove http client config from consul and digitalocean
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-10-07 15:13:00 +02:00
Julien 57e3fd0c51 Remove http options from docker and dockerswarm sd
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-10-07 15:11:15 +02:00
Julien 5f13098403 Remove http client config from EC2 and PuppetDB
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-10-07 15:09:41 +02:00
Julien 409d924381 Remove client HTTP settings from HTTP SD and Hetzner SD
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-10-07 15:07:40 +02:00
Julien 62b26ac13c Remove HTTP config docs from Kuma, Kubernetes and IONOS
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-10-07 15:05:24 +02:00