16717 Commits

Author SHA1 Message Date
bwplotka
e2ad4a2f52 refactor(remote)[PART4c]: switch Remote Write 1.0 to AppendableV2
Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-01-12 10:06:34 +00:00
bwplotka
49ea7b05ab feat(storage)[PART4b]: add AppenderV2 to the rest of storage.Storage impl
Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-01-12 09:19:19 +00:00
bwplotka
0e2569ad33 feat(teststorage)[PART4a]: Add AppendableV2 support for mock Appendable
Signed-off-by: bwplotka <bwplotka@gmail.com>
2026-01-12 08:42:34 +00:00
Ganesh Vernekar
9cb3641ccd
Volunteer to shepherd the release v3.10 (#17822)
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-01-09 15:00:53 +00:00
Julien
f0eaf596fe
Merge pull request #17743 from RushabhMehta2005/optimization/extend-floats-prealloc
promql: preallocate slice in extendFloats optimization
2026-01-09 12:40:00 +01:00
Arve Knudsen
16703766f4
promql: fix info() returning empty when filtering by overlapping labels (#17817)
When filtering by a label that exists on both the input metric and
target_info (e.g., info(metric, {host_name="orbstack"}) where host_name
exists on both), the function incorrectly returned empty results.

The bug was in combineWithInfoVector: when no new labels were added
(because they all overlapped with base metric labels), the code entered
the "no match" filtering block even though an info series WAS matched.

The fix checks len(seenInfoMetrics) == 0 to correctly identify when no
info series matched. If an info series matched (seenInfoMetrics is
non-empty), the series is kept even if no new labels were added.

Fixes #17813

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-01-09 10:04:37 +01:00
Arthur Silva Sens
14de1eb043
Make service discoveries removable through build tags (#17736)
* Make service discoveries removable through build tags

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

* Fix cross-platform build issues

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

* Change build tags used

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

* Remove year from License header

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

* Remove plugins automation

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

* Update README

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

* Update README.md

Co-authored-by: Julien <291750+roidelapluie@users.noreply.github.com>
Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>

---------

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
Co-authored-by: Julien <291750+roidelapluie@users.noreply.github.com>
2026-01-08 10:06:33 -03:00
Vilius Pranckaitis
6a81e4441e
promql: avoid unnecessary Metric.Get() calls in functions.go (#17676)
Moved some Metric.Get() calls in PromQL functions to avoid unnecessary label extraction.
In many cases, this work was done to extract metric name, and was only used if annotations were emitted.

In the same go I also replaced labels.MetricName with model.MetricNameLabel, since the former was deprecated.

Signed-off-by: Vilius Pranckaitis <vpranckaitis@gmail.com>
2026-01-08 11:58:05 +00:00
Bryan Boreham
da254fd680
Merge pull request #17798 from prometheus/merge-3.9-into-main
Merge release-3.9 into main
2026-01-08 10:43:54 +00:00
Bryan Boreham
63b86fa851 Merge branch 'release-3.9' into merge-3.9-into-main 2026-01-08 10:22:01 +00:00
Charles Korn
a919e6d5ef
model/labels: improve performance of regex matchers like .*-.*-.* (#17707)
#14173 introduced an optimisation to better handle regex patterns like .*-.*-.*. It identifies strings the pattern cannot possibly match (because they do not contain all of the literal values) and returns false from MatchString early.

However, if the string does contain all literal values, then the Go regex engine is used to confirm that the string does match the pattern. But this is not necessary in the case where the start and end of the pattern is .* and everything in between is either a literal or .*: if the string contains all of the literals in order, then it matches the pattern, and invoking Go's regex engine to confirm this is unnecessary and quite slow.

* Add some more test cases
* Add benchmark, since existing benchmark doesn't show much impact given most of the random test strings will not match the patterns.

Signed-off-by: Charles Korn <charles.korn@grafana.com>
2026-01-08 10:20:23 +00:00
Bryan Boreham
9ec59baffb
Cut v3.9.1 (#17804)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
v3.9.1 v0.309.1
2026-01-07 16:05:27 +00:00
Bryan Boreham
da754cd240 Merge remote-tracking branch 'origin/release-3.9' into merge-3.9-into-main 2026-01-07 15:51:44 +00:00
Bryan Boreham
4caa4c0914
Merge pull request #17807 from bboreham/fix-scrape-relabel-drop
Release 3.9: Fix scrape relabel not dropping series
2026-01-07 15:43:28 +00:00
Bryan Boreham
4f337c2a41
Merge pull request #17806 from marvin-roesch/fix/scrape-relabeling-keep
[BUGFIX] Scraping: return empty label set if sample is not to be kept
2026-01-07 15:38:40 +00:00
Marvin Rösch
66c8e31956 [BUGFIX] Scraping: drop sample if relabeling config says so
Signed-off-by: Marvin Rösch <marvinroesch99@gmail.com>
2026-01-07 15:20:24 +00:00
Bryan Boreham
ae71185255 Scraping: add a test for relabel with keep and drop
Co-authored-by: Marvin Rösch <marvinroesch99@gmail.com>
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2026-01-07 15:18:53 +00:00
Marvin Rösch
fff29d330d
[BUGFIX] Scraping: drop sample if relabeling config says so
Signed-off-by: Marvin Rösch <marvinroesch99@gmail.com>
2026-01-07 16:11:22 +01:00
Bryan Boreham
f1719fa1d4
[BUGFIX] Agent: fix crash from invalid type in pool (#17802)
We have separate pools for Appender and AppenderV2 objects, and must not
put another kind of object into them.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2026-01-07 14:01:02 +00:00
Julius Hinze
22463b1e9f
tsdb: add support for OOO exemplars in CircularExemplarStorage (#17469)
* tsdb: add support for OOO exemplars in CircularExemplarStorage

Doubly linked exemplar storage resize.
Split exemplar buffer resize into shrink and grow functions.
Skip duplicate OOO exemplars, re-initialize emptied index after deleting its last exemplar.

Signed-off-by: Julius Hinze <julius.hinze@grafana.com>
2026-01-07 13:25:50 +01:00
dependabot[bot]
99c8351d0e
chore(deps): bump github.com/hetznercloud/hcloud-go/v2 from 2.32.0 to 2.33.0 (#17762)
* chore(deps): bump github.com/hetznercloud/hcloud-go/v2

Bumps [github.com/hetznercloud/hcloud-go/v2](https://github.com/hetznercloud/hcloud-go) from 2.32.0 to 2.33.0.
- [Release notes](https://github.com/hetznercloud/hcloud-go/releases)
- [Changelog](https://github.com/hetznercloud/hcloud-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hetznercloud/hcloud-go/compare/v2.32.0...v2.33.0)

---
updated-dependencies:
- dependency-name: github.com/hetznercloud/hcloud-go/v2
  dependency-version: 2.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

* Use `server.Datacenter` until next minor release - disable linting of it in the meantime

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-01-07 13:21:56 +01:00
George Krajcsovits
66bdc88013
fix(remote_read): NHCB not returned over remote read samples (#17794)
NHCB is native histograms with custom buckets.

prompb is used for both remote write 1.0 and remote read. We do not
support NHCB over remote write 1.0 , however we should absolutely
support it for remote read.

Prometheus remote write 1.0 client already refuses to send NHCB.
Prometheus remote write 1.0 server accepts NHCB, but doesn't store
custom values, corrupting the result. I'm now handling NHCB correctly,
instead of refusing or corrupting.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-01-07 08:44:57 +01:00
Rushabh Mehta
fc330642e4 promql: Preallocate slice in extendFloats
Signed-off-by: Rushabh Mehta <mehtarushabh2005@gmail.com>
2026-01-06 22:06:30 +05:30
Bryan Boreham
cd875bd8c9
Cut release 3.9.0 (#17796)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
v0.309.0 v3.9.0
2026-01-06 16:30:06 +00:00
renovate[bot]
6286e3fb55
fix(deps): update github.com/hashicorp/nomad/api digest to e8f2200 (#17780)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-06 15:53:09 +01:00
renovate[bot]
ce8bb9ee9b
chore(deps): update quay.io/prometheus/golang-builder docker tag to v1.25 (#17783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-06 13:52:10 +00:00
renovate[bot]
a588145bc1
fix(deps): update github.com/prometheus/client_golang/exp digest to 2cd067e (#17781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-06 14:46:47 +01:00
renovate[bot]
5b257abc52
chore(deps): update dependency prettier to v3.7.4 (#17782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-06 14:44:23 +01:00
Jan-Otto Kröpke
167418a5ad
fix: renovate configuration (#17793)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-01-06 13:34:29 +00:00
Patryk Prus
dcda4840a7
tsdb/index: export sentinel errors for size limit failures (#17773)
* tsdb/index: export sentinel errors for size limit failures

---------

Signed-off-by: Patryk Prus <p@trykpr.us>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-01-06 14:07:23 +01:00
Arthur Silva Sens
1e317d0098
Add configuration option to control extra-scrape-metrics (#17606) 2026-01-06 09:00:49 -03:00
Julius Volz
ffcdb2bc1f
Merge pull request #17788 from prometheus/fix-identifier-completion-end
Replace entire identifier when autocompleting inside of it
2026-01-06 11:24:52 +01:00
Julius Volz
fe76e6c297 Remove unneeded state parameter
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-06 11:00:01 +01:00
Julius Volz
3fc800410a Handle autocomplete replacement better for more node types
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-06 10:58:44 +01:00
VictorFilatov
0a2be81616
Fix link in discovery README.md (#17753)
Signed-off-by: VictorFilatov <phylactus@gmail.com>
2026-01-06 09:55:03 +01:00
Julius Volz
b532eacae8 Review fixups - also make it work for label names
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-05 20:09:12 +01:00
Arve Knudsen
57961fbedd
chore: remove dependabot configuration (#17776)
Remove Dependabot configuration, as we are now using Renovate.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-01-05 18:00:08 +01:00
Arve Knudsen
3980134b43
chore: align Renovate configuration with Dependabot (#17777)
* chore: align Renovate configuration with Dependabot

---------

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Ben Kochie <superq@gmail.com>
2026-01-05 17:59:37 +01:00
Julius Volz
dbb3fc65b6 Replace entire identifier when autocompleting inside of it
When accepting an autocompletion result within an Identifier node (could be a
metric name, function name, keyword, etc.), the inserted completion should
replace the entire Identifier node all the way to its last character, not only
to the current cursor position.

A limitation is that the correct replacement-until-end-of-identifier only works
when e.g. a function name is currently incomplete (which is likely anyway when
trying to replace it with a different one). This is because otherwise the
Identifier node gets replaced with a more specific function node type (like
`Rate`, `SumOverTime`, etc.), and handling all those adds more complexity.

https://github.com/prometheus/prometheus/issues/15839

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-05 16:10:31 +01:00
Ben Kochie
e14795bbf4
Remove copyright date from headers (#17785)
Remove copyright dates from various files as part of [PROM-50].

[PROM-50]: https://github.com/prometheus/proposals/blob/main/proposals/0050-remove-copyright-dates.md

Signed-off-by: SuperQ <superq@gmail.com>
2026-01-05 13:46:21 +01:00
Julien
5fa37b3e25
Merge pull request #17771 from roidelapluie/roidelapluie/fixdoc
docs: Update API documentation for missing features
2026-01-05 12:13:25 +01:00
Julien
8d5655f972
Merge pull request #17784 from roidelapluie/roidelapluie/license2026
Makefile.common: Add check for future copyright years
2026-01-05 12:11:28 +01:00
Julien Pivotto
a35e19e6cf Makefile.common: Add check for future copyright years
Add validation in common-check_license to detect and reject copyright
headers with years 2026 or later. This enforces the removal of copyright
dates as per https://github.com/prometheus/proposals/blob/main/proposals/0050-remove-copyright-dates.md

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-01-05 11:00:44 +01:00
Julien
8b9a7891b4
Merge pull request #17772 from roidelapluie/roidelapluie/rmsrv
Remove obsolete /classic/static route
2026-01-05 10:40:07 +01:00
dependabot[bot]
87401302f6
chore(deps): bump google.golang.org/api from 0.257.0 to 0.258.0 (#17761)
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.257.0 to 0.258.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.257.0...v0.258.0)

---
updated-dependencies:
- dependency-name: google.golang.org/api
  dependency-version: 0.258.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-04 15:47:58 +00:00
dependabot[bot]
a946d2c8ef
chore(deps): bump golangci/golangci-lint-action from 9.0.0 to 9.2.0 (#17757)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 9.0.0 to 9.2.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](0a35821d5c...1e7e51e771)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-04 15:46:03 +00:00
dependabot[bot]
79b0b86560
chore(deps): bump golangci/golangci-lint-action in /scripts (#17759)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 9.0.0 to 9.2.0.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](0a35821d5c...1e7e51e771)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-04 14:53:47 +00:00
dependabot[bot]
ff22779966
chore(deps): bump github.com/bufbuild/buf in /internal/tools (#17764)
Bumps [github.com/bufbuild/buf](https://github.com/bufbuild/buf) from 1.61.0 to 1.62.1.
- [Release notes](https://github.com/bufbuild/buf/releases)
- [Changelog](https://github.com/bufbuild/buf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bufbuild/buf/compare/v1.61.0...v1.62.1)

---
updated-dependencies:
- dependency-name: github.com/bufbuild/buf
  dependency-version: 1.62.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-04 15:50:55 +01:00
dependabot[bot]
7521fdda73
chore(deps): bump the aws group across 1 directory with 2 updates (#17760)
Bumps the aws group with 2 updates in the / directory: [github.com/aws/aws-sdk-go-v2/service/ec2](https://github.com/aws/aws-sdk-go-v2) and [github.com/aws/aws-sdk-go-v2/service/ecs](https://github.com/aws/aws-sdk-go-v2).


Updates `github.com/aws/aws-sdk-go-v2/service/ec2` from 1.277.0 to 1.279.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ec2/v1.277.0...service/ec2/v1.279.0)

Updates `github.com/aws/aws-sdk-go-v2/service/ecs` from 1.69.5 to 1.70.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.69.5...service/s3/v1.70.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/ec2
  dependency-version: 1.279.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: aws
- dependency-name: github.com/aws/aws-sdk-go-v2/service/ecs
  dependency-version: 1.70.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: aws
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-04 15:45:28 +01:00
dependabot[bot]
1b88f2a98e
chore(deps): bump google.golang.org/grpc from 1.77.0 to 1.78.0 (#17763)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.77.0 to 1.78.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.77.0...v1.78.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.78.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-04 15:44:42 +01:00