17300 Commits

Author SHA1 Message Date
Julien
eb173f5256
Merge pull request #18594 from roidelapluie/roidelapluie/cut-rel-3.11.3
Release 3.11.3
v0.311.3 v3.11.3
2026-04-27 16:40:41 +02:00
Julien Pivotto
5ba3545753 Release 3.11.3
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-27 15:48:10 +02:00
Julien
26dae7f06b
Merge pull request #18590 from roidelapluie/roidelapluie/azadsecret
remote/azuread: use Secret type for OAuth client_secret
2026-04-27 13:42:46 +02:00
Julien
ecbde5fc10
Merge pull request #18588 from roidelapluie/roidelapluie/react-escape
ui: fix stored XSS in old UI heatmap chart tick labels
2026-04-27 13:23:07 +02:00
Julien
04055ee190
Merge pull request #18584 from roidelapluie/roidelapluie/snappylength
remote: validate snappy decoded length before allocation in read endpoint
2026-04-27 12:45:25 +02:00
Julius Volz
38f23b9075 ui: fix stored XSS in old UI heatmap chart tick labels
This fixes the stored XSS as described in:

https://github.com/prometheus/prometheus/security/advisories/GHSA-fw8g-cg8f-9j28

Signed-off-by: Julius Volz <julius.volz@gmail.com>
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-27 12:28:10 +02:00
Julien Pivotto
5ccebcdb3f remote/azuread: use Secret type for OAuth client_secret
The ClientSecret field in OAuthConfig was typed as plain string,
causing it to be exposed in plaintext via the /-/config HTTP endpoint.
Change it to config_util.Secret so Prometheus redacts it as <secret>.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-27 12:17:49 +02:00
Julien Pivotto
3273935170 remote: validate snappy decoded length before allocation in read endpoint
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-27 12:02:50 +02:00
Julien
f0f0fdd679
Merge pull request #18517 from roidelapluie/roidelapluie/cut-3.11.2
Release 3.11.2
v0.311.2 v3.11.2
2026-04-13 13:39:08 +02:00
Julien Pivotto
f08b9837f9 Release 3.11.2
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-13 13:12:35 +02:00
Julien
931b2daf6f
Merge pull request #18510 from mrvarmazyar/fix/consul-health-filter-config-fixtures
config: add consul health_filter fixture coverage
2026-04-13 10:51:00 +02:00
Mohammad Varmazyar
06b7f1f625 config: add consul health_filter fixture coverage
Signed-off-by: Mohammad Varmazyar <mrvarmazyar@gmail.com>
2026-04-10 23:36:56 +02:00
Julien
fac097b161
Merge pull request #18499 from roidelapluie/roidelapluie/consul-health-filter-3.11
discovery/consul: add health_filter for Health API filtering
2026-04-10 15:15:47 +02:00
Julien
d09ea56b38
Update docs/configuration/configuration.md
Co-authored-by: George Krajcsovits <krajorama@users.noreply.github.com>
Signed-off-by: Julien <291750+roidelapluie@users.noreply.github.com>
2026-04-10 14:50:54 +02:00
Julien
e95d2e38e3
Merge pull request #18506 from roidelapluie/roidelapluie/backport-xss-issue
UI: Fix stored XSS via unescaped metric names and labels
2026-04-10 14:17:05 +02:00
Julius Volz
fddbccf79b UI: Fix stored XSS via unescaped metric names and labels
Metric names, label names, and label values containing HTML/JavaScript were
inserted into `innerHTML` without escaping in several UI code paths, enabling
stored XSS attacks via crafted metrics. This mostly becomes exploitable in
Prometheus 3.x, since it defaults to allowing any UTF-8 characters in metric
and label names.

Apply `escapeHTML()` to all user-controlled values before innerHTML
insertion in:

* Mantine UI chart tooltip
* Old React UI chart tooltip
* Old React UI metrics explorer fuzzy search
* Old React UI heatmap tooltip

See https://github.com/prometheus/prometheus/security/advisories/GHSA-vffh-x6r8-xx99

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-04-10 11:25:03 +02:00
Julien Pivotto
4cc50803ff discovery/consul: fix catalog watch trigger and improve filter tests
When health_filter is set without explicit services, the catalog needs
to be watched to enumerate services. Add watchedFilter to the condition
that triggers catalog watching.

Improve the filter test suite:
- Replace defer with t.Cleanup for stub servers.
- Rewrite TestFilterOption to assert that the catalog receives the filter
  and the health endpoint does not.
- Rewrite TestHealthFilterOption to assert that health_filter is routed
  correctly to the health endpoint only.
- Add TestBothFiltersOption to verify both filters are routed to their
  respective endpoints when both are configured.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-10 10:26:40 +02:00
Julien Pivotto
1e73d2fcde discovery/consul: add health_filter for Health API filtering
The filter field was documented as targeting the Catalog API but since
PR #17349 it was also passed to the Health API. This broke existing
configs using Catalog-only fields like ServiceTags, which the Health API
rejects (it uses Service.Tags instead).

Introduce a separate health_filter field that is passed exclusively to
the Health API, while filter remains catalog-only. Update the docs to
explain the two-phase discovery (Catalog for service listing, Health for
instances) and the field name differences between the two APIs.

Fixes #18479

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-09 16:03:16 +02:00
Julien
1bd2f3a9fd
Merge pull request #18473 from roidelapluie/roidelapluie/cut-3.11.1
Release 3.11.1
v0.311.1 v3.11.1
2026-04-07 16:55:05 +02:00
Julien Pivotto
9678641c33 Release 3.11.1
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-07 15:57:30 +02:00
Julien
9eaede1743
Merge pull request #18469 from roidelapluie/roidelapluie/tracing-fix-insecure-http-3.11
tracing: fix startup failure for insecure OTLP HTTP tracing
2026-04-07 14:41:22 +02:00
Julien Pivotto
027b76396d tracing: add regression test for HTTP insecure mode
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-07 12:11:59 +02:00
Jeon Insoo
b997a29e24 tracing: fix startup failure for insecure OTLP HTTP tracing
Signed-off-by: Jeon Insoo <mumberrymountain@gmail.com>
2026-04-07 12:05:30 +02:00
Julien
d7cd96cb98
Merge pull request #18429 from roidelapluie/roidelapluie/cut-3.11.0
Release 3.11.0
v3.11.0 v0.311.0
2026-04-02 12:17:59 +02:00
Julien Pivotto
9b12b3d226 Release 3.11.0
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-04-02 11:51:49 +02:00
Julien
608636c179
Merge pull request #18395 from roidelapluie/roidelapluie/cut-3.11.o-rc.0
Release 3.11.0-rc.0
2026-03-30 09:46:39 +02:00
Julien Pivotto
999a67cc04 Release 3.11.0-rc.0
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-03-27 16:08:11 +01:00
Julien
cb3382314d
Merge pull request #18374 from roidelapluie/roidelapluie/retention-percentage-float
tsdb: use float64 for retention percentage
2026-03-27 11:17:55 +01:00
Julien
3f40ca38e6
Merge pull request #18375 from roidelapluie/roidelapluie/fix-alert-state-restore-template-labels
rules: skip template labels when querying ALERTS_FOR_STATE for restore
2026-03-27 11:17:43 +01:00
Julien
5b1d22e2ce
Merge pull request #18376 from prometheus/superq/new_promci
chore: Use make target for protoc
2026-03-26 17:27:06 +01:00
Arve Knudsen
841e4a96b1
promql: add more info() test cases (#18367)
Add test cases for two edge cases in the info() function:
- Enrichment when inner series are missing one identifying label
- Conflicting labels across different info metrics should error

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-03-26 17:08:28 +01:00
SuperQ
9587b2ebc0
chore: Use make target for protoc
Migrate the CI scripting of installing protoc to a Makefile target.

Signed-off-by: SuperQ <superq@gmail.com>
2026-03-26 16:35:14 +01:00
Julien Pivotto
e5c77afc71 rules: skip template labels when querying ALERTS_FOR_STATE for restore
QueryForStateSeries built Select matchers from the raw rule labels,
which can contain Go template expressions such as
`instance_{{ $labels.instance }}`. The stored ALERTS_FOR_STATE series
carry the per-instance evaluated values (e.g. `instance_0`), so the
unevaluated template string never matched, leaving seriesByLabels empty
and silently skipping restoration for every active alert.

Fix by omitting any label whose value contains `{{` from the matcher
list. Static labels (including `__name__` and `alertname`) are never
templated and continue to scope the query to the correct rule. The
in-memory lookup against evaluated alert labels that follows is
unaffected, so the single-query-per-rule optimisation introduced in
#13980 is fully preserved.

Fixes #16883
Ref #13980
Ref #18364

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-03-26 15:06:01 +01:00
Julien
8fcd0a5d04
Merge pull request #18373 from roidelapluie/roidelapluie/npm-deps-3.11
chore: Update javascript dependencies for 3.11
2026-03-26 14:42:45 +01:00
Julien
d25e802337
Merge pull request #18372 from prometheus/superq/new_promci
chore: Update PromCI
2026-03-26 13:33:02 +01:00
Ayoub Mrini
9baa56474f
Merge pull request #18369 from machine424/cccd
release: automate CHANGELOG.md generation and improve release notes process
2026-03-26 12:58:28 +01:00
Julien Pivotto
3856195bb8 tsdb: use float64 for retention percentage
The retention.percentage config field was typed as uint, which silently
truncated fractional values. Setting percentage: 1.5 in prometheus.yml
resulted in a retention of 1%, with no warning or error.

Remove the redundant MaxPercentage > 100 clamp in main.go; the config
UnmarshalYAML already returns an error for out-of-range values before
this code is reached.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-03-26 12:39:22 +01:00
machine424
bf730369bd
adjust and simplify
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2026-03-26 12:28:56 +01:00
Julien Pivotto
08fcc26479 chore: Update javascript dependencies for 3.11
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-03-26 12:14:28 +01:00
Julien
e8e223fccb
Merge pull request #18362 from roidelapluie/roidelapluie/go-dep-3.11
chore: Go dependencies update before 3.11
2026-03-26 12:07:34 +01:00
SuperQ
4a0186dedc
chore: Update PromCI
Migrate to new PromCI actions.
* Use direct repo actions instead of the setup / run pattern.
* Migrate check_proto action to inline.

Signed-off-by: SuperQ <superq@gmail.com>
2026-03-26 11:13:26 +01:00
Julien Pivotto
bcdc7cd80e chore: Go dependencies update before 3.11
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-03-26 10:56:14 +01:00
Pierluigi Lenoci
73902efbd0
discovery/vultr: upgrade govultr from v2 to v3 (#18347)
* discovery/vultr: upgrade govultr from v2 to v3

The govultr/v2 library is no longer actively maintained. Upgrade to
govultr/v3 (v3.28.1) which receives regular updates and security
patches.

The v3 library is API-compatible with v2 for the Instance.List
method used by the Vultr SD, with the only change being an
additional *http.Response return value.

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

* discovery/vultr: check HTTP response status code

Validate that the Vultr API returns a 2xx status code after listing
instances, as the *http.Response from govultr v3 is now available.

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

* discovery/vultr: fix linter error in error string capitalization

Error strings should not be capitalized per Go conventions (ST1005).

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>

---------

Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>
2026-03-26 09:42:25 +01:00
Julius Volz
dd19e08663
Merge pull request #18336 from sakuuj/patch-1
docs: change 'standard variance' to 'variance', fix 'stdvar' description
2026-03-26 08:36:36 +00:00
Pavel Rysnik
69f6ade976 docs: update promql autocomplete
Signed-off-by: Pavel Rysnik <pavelrysnik@gmail.com>
2026-03-26 10:50:09 +03:00
machine424
31f0678cdf
release: automate CHANGELOG.md generation and improve release notes process
Adds `scripts/generate_release_notes.sh` to produce a structured CHANGELOG.md starting point using the Kubernetes release-notes tool. It handles both minor and patch releases.
`RELEASE.md` is updated to reference the script and drop the manual instructions.

Version examples are updated from 2.x to 3.x.

The `check_release_notes` CI workflow is extended to also run on `release-*` branches in order for the script to catch commits added to the release note , and the PR template wording is tightened.

Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2026-03-25 20:20:35 +01:00
Julien
729cde8953
Merge pull request #18366 from roidelapluie/roidelapluie/xorfuzz
chunkenc: Add XOR/XOR2 fuzzing
2026-03-25 17:52:42 +01:00
Julien Pivotto
d23e69322e chunkenc: Add XOR/XOR2 fuzzing
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-03-25 17:05:47 +01:00
George Krajcsovits
1ec24a3295
promqltest: use AppenderV2 in load command (#18359)
* promqltest: use AppenderV2 in load command

Switch the PromQL test framework's load command from storage.Appender
to storage.AppenderV2 in appendSample, appendCustomHistogram and
appendTill. ST is set to 0 (unknown) for now; a follow-up will add
per-sample ST specification in load statements.

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
Coded with Claude Sonnet 4.6.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>

* promqltest: fix unchecked Rollback error

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
Coded with Claude Sonnet 4.6.
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>

---------

Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
2026-03-25 11:09:41 +01:00
Julien
cfcc862182
Merge pull request #18353 from roidelapluie/roidelapluie/xor2app
tsdb/chunkenc: optimise XOR2 and varbit hot paths
2026-03-25 10:57:44 +01:00