493 Commits

Author SHA1 Message Date
Jeremy Rickards
7a44a2ddc4
docs: regenerate PromQL function docs for UI
Signed-off-by: Jeremy Rickards <jeremy.rickards@sap.com>
2026-03-19 15:03:31 +01:00
Julius Volz
8b25b26a76
Merge pull request #18228 from prometheus/fix/tooltip-y-offset-drift
UI: Fix tooltip Y-offset drift for multiple graph panels
2026-03-12 20:30:08 +00:00
Julius Volz
2df86b24ad UI: Skip restacking on hover in stacked series charts
See https://github.com/leeoniya/uPlot/issues/988

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-03-04 21:53:11 +01:00
Julius Volz
2aebd269bc UI: Fix tooltip Y-offset drift for multiple graph panels
getBoundingClientRect() was cached in the setSize hook, which only fires
on chart creation/resize. The cached viewport-relative coordinates became
stale after scrolling, causing the tooltip to appear increasingly offset
on charts further down the page.

Fixed by calling getBoundingClientRect() on every setCursor invocation to
always get accurate viewport-relative coordinates.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-03-04 14:52:37 +01:00
Ganesh Vernekar
ccc3062521 Merge branch 'main' into codesome/merge-3.10
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2026-02-25 17:33:06 -08:00
Ganesh Vernekar
54e010926b
Cut v3.10.0 final release (#18184)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2026-02-25 10:54:13 -08:00
George Krajcsovits
5d3f9ee39b
Merge pull request #17904 from linasm/trim_histogram
promql: Implement </ and >/ operators for trimming native histograms
2026-02-24 17:16:24 +01:00
renovate[bot]
789f22b931
fix(deps): update module github.com/prometheus/prometheus to v0.309.1 (#18161)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 10:49:49 +01:00
Ganesh Vernekar
decde0b364 Cut v3.10.0-rc.1
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2026-02-19 15:22:03 -08:00
Linas Medžiūnas
5bd0d00f8c
PromQL: Add experimental histogram_quantiles variadic function (#17285)
Signed-off-by: Linas Medziunas <linas.medziunas@gmail.com>
Signed-off-by: Björn Rabenstein <github@rabenste.in>
Signed-off-by: beorn7 <beorn@grafana.com>
Co-authored-by: Björn Rabenstein <github@rabenste.in>
Co-authored-by: beorn7 <beorn@grafana.com>
2026-02-18 17:32:29 +01:00
Ganesh Vernekar
b494365aa7 Cut v3.10.0-rc.0
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-02-17 13:52:55 -08:00
Ganesh Vernekar
216ddb524e Rollback Go version to 1.25.0 in go.mod files
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-02-11 14:40:52 -08:00
Ganesh Vernekar
1698aada1e Update Go dependencies for v3.10 release
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-02-10 12:39:33 -08:00
Ganesh Vernekar
43eaaf55a4
Merge pull request #18025 from prometheus/codesome/3-10-npm-deps
Update npm dependencies for v3.10
2026-02-10 12:31:39 -08:00
dependabot[bot]
effa3c5c25
chore(deps): bump github.com/hashicorp/consul/api from 1.32.0 to 1.33.2 (#17449)
Bumps [github.com/hashicorp/consul/api](https://github.com/hashicorp/consul) from 1.32.0 to 1.33.2.
- [Release notes](https://github.com/hashicorp/consul/releases)
- [Changelog](https://github.com/hashicorp/consul/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/consul/compare/api/v1.32.0...api/v1.33.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/consul/api
  dependency-version: 1.33.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-02-10 08:24:26 +00:00
Ganesh Vernekar
213bc8e538 UI: Move HistoryCompleteStrategy into its own file and fix lint
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-02-05 14:48:47 -08:00
Ganesh Vernekar
7bbce150b4 Update npm dependencies for v3.10
Signed-off-by: Ganesh Vernekar <ganesh.vernekar@reddit.com>
2026-02-05 14:20:46 -08:00
Julius Volz
dbfc635a5a
Merge pull request #17611 from prometheus/default-hide-alert-annotations
Hide alert annotations by default
2026-02-03 15:23:11 +01:00
Julien
75f94903b3
Add OpenAPI 3.2 specification generation for Prometheus HTTP API (#17825)
* Add OpenAPI 3.2 specification generation for Prometheus HTTP API

This commit introduces an OpenAPI specification for the Prometheus API.
After testing multiple code-generation servers with built-in APIs, this
implementation uses an independent spec file outside of the critical path.
This spec file is tested with a framework present in this pull request.

The specification helps clients know which parameters they can use and is
served at /api/v1/openapi.yaml. The spec file will evolve with the
Prometheus API and has the same version number.

Downstream projects can tune the APIs presented in the spec file with
configuration options using the IncludePaths setting for path filtering.

In the future, there is room to generate a server from this spec file
(e.g. with interfaces), but this is out of scope for this pull request.

Architecture:
- Core OpenAPI infrastructure (openapi.go): Dynamic spec building,
  caching, and thread-safe spec generation
- Schema definitions (openapi_schemas.go): Complete type definitions
  for all API request and response types
- Path specifications (openapi_paths.go): Endpoint definitions with
  parameters, request bodies, and response schemas
- Examples (openapi_examples.go): Realistic request/response examples
- Helper functions (openapi_helpers.go): Reusable builders for common
  OpenAPI structures

Testing:
- Comprehensive test suite with golden file validation
- Test helpers package for API testing infrastructure
- OpenAPI compliance validation utilities

The golden file captures the complete specification for snapshot testing.
Update with: go test -run TestOpenAPIGolden -update-openapi-spec

REVIEWERS: The most important thing to check would be the OpenAPI golden
file (web/api/v1/testdata/openapi_golden.yaml). Test scenarios are important
as they test the actual OpenAPI spec validity.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* Add OpenAPI 3.1 support with version selection

Add support for both OpenAPI 3.1 and 3.2 specifications with version
selection via openapi_version query parameter. Defaults to 3.1 for
broader compatibility

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* Enhance OpenAPI examples and add helper functions

- Add timestampExamples helper for consistent time formatting
- Add exampleMap helper to simplify example creation
- Improve example summaries with query details
- Add matrix result example for range vector queries

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* web/api: Add AtST method to test helper iterators

Implement the AtST() method required by chunkenc.Iterator interface
for FakeSeriesIterator and FakeHistogramSeriesIterator test helpers.
The method returns 0 as these test helpers don't use start timestamps

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* OpenAPI: Add minimum coverage test

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

* OpenAPI: Improve examples handling

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>

---------

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-01-29 13:36:13 +01:00
Jeanette Tan
df31bfd59d Update docs about ignoring info metrics
Signed-off-by: Jeanette Tan <jeanette.tan@grafana.com>
2026-01-28 02:48:07 +08:00
sujal shah
e8bfcfcf1a promql: Implement </ and >/ operators for trimming native histograms.
This implements the TRIM_UPPER (</) and TRIM_LOWER (>/) operators
that allow removing observations below or above a threshold from
a histogram. The implementation zeros out buckets outside the desired
range. It also recalculates the sum, including only bucket counts within
the specified threshold range.

Fixes #14651.

Signed-off-by: sujal shah <sujalshah28092004@gmail.com>
2026-01-22 15:22:43 +02:00
Julius Volz
1d3d98ed16
Merge pull request #17644 from prometheus/binop-fill-modifier
PromQL: Add `fill*()` binop modifiers to provide default values for missing series
2026-01-19 20:05:52 +01:00
Julius Volz
ded3a8c309
UI: Fix broken Y axis after graph page reload (#17869)
* UI: Fix broken Y axis after graph page reload

The new `y_axis_min` setting was always encoded into the URL, even if its value
was `null` (in which case it would be set to an empty string parameter). On the
decoding side, this wasn't taken into account correctly, and we tried to parse
the empty string as a float, causing completely broken graphs showing nothing
after reloading the graph page with such URL parameters.

I'm doing two things now:

* For the future, only encode the Y axis min into the URL if it's set at all,
  similar as we do for the `end_input` and `moment_input` fields.
* On the decoding side, accommodate people (at least for now) who already saved
  some links with the empty `y_axis_min` parameter by treating an empty string
  as `null` instead of a number.

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Add URL state encoding/decoding tests

Signed-off-by: Julius Volz <julius.volz@gmail.com>

---------

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-16 09:50:39 +00:00
Julius Volz
ce26370eeb Add PromLens binop matching explain view tests
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-15 07:56:23 +01:00
Julius Volz
af3277f832 PromQL: Add fill*() binop modifiers to provide default values for missing series
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2026-01-15 07:56:21 +01:00
Arthur Silva Sens
c980c74f51
Update google/pprof to allow go 1.24.0 (#17843)
Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
2026-01-13 06:32:12 +00:00
Bryan Boreham
63b86fa851 Merge branch 'release-3.9' into merge-3.9-into-main 2026-01-08 10:22:01 +00:00
Bryan Boreham
9ec59baffb
Cut v3.9.1 (#17804)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
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
cd875bd8c9
Cut release 3.9.0 (#17796)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2026-01-06 16:30:06 +00: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
Bryan Boreham
bf7b83059c
Prepare release candidate 3.9-rc.0 (#17716)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2025-12-23 11:56:39 +00:00
Julien Pivotto
6613c09ad7 web/ui: Regenerate PromQL function files.
Update generated files with latest functions from Prometheus, adding
support for first_over_time, info, ts_of_first_over_time,
ts_of_last_over_time, ts_of_max_over_time, and ts_of_min_over_time.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2025-12-19 12:43:15 +01:00
Julien Pivotto
030cb5e4ee web/ui: Add make targets for PromQL function generation.
Add make targets to generate and check PromQL function signatures and
documentation for the Mantine UI. The generate-promql-functions target
runs the Go generators and automatically lints the output files. The
check-generated-promql-functions target verifies that generated files
are up to date, similar to check-generated-parser.

Fix the gen_functions_list generator to output properly formatted
TypeScript code with correct indentation and semicolons.

Add check-generated-promql-functions to the UI tests CI job to ensure
generated files stay in sync with upstream changes.

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2025-12-19 12:43:15 +01:00
Bryan Boreham
950f756e9e Merge remote-tracking branch 'origin/release-3.8' into merge-3.8.1-to-main
Tweak RW2 change for consistency with older lines.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2025-12-19 09:33:41 +00:00
Julius Volz
558b32f3ab
Merge pull request #17714 from anubhav21sharma/anubhav21sharma/feature-duplicate-query-ui
UI: Add support to duplicate query panels
2025-12-18 22:53:22 +01:00
Bryan Boreham
4c7377f543
Update Go dependencies (#17711)
By running `make update-all-go-deps`.

`hashicorp/consul/api` must be held at v1.32.1 because later versions
require Go 1.25 and we choose to ensure that Promethes builds with the
last two versions of Go.

Also: fix compilation errors in remote-write example.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2025-12-18 17:14:14 +00:00
anubhav21sharma
4f04aaccc3 UI: Add support to duplicate query panel
Signed-off-by: anubhav21sharma <anubhav21sharma@gmail.com>
2025-12-18 15:00:44 +00:00
bwplotka
7739353f5d chore: upgrade npm
Signed-off-by: bwplotka <bwplotka@gmail.com>
2025-12-15 16:41:13 +00:00
Aditya Tiwari
109f9409ed
[BugFix] UI : autocomplete metadata for OpenMetrics counter _total metrics (#17682)
* fix: autocomplete metadata for OpenMetrics counter _total metrics

Signed-off-by: ADITYATIWARI342005 <142050150+ADITYATIWARI342005@users.noreply.github.com>

* fix/lint: properly indent the test file

Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>

* fix/test: exclude expexcted block

Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>

* fix/test: refacttoor comment for relevance

Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>

* fix: add openmetrics _total metadata support to autocomplete by extending hybridcomplete’s suffix handling and adding a Jest test that covers the base-name-only metadata scenario for _total counters

Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>

* fix: break long-comment to separate line, re-trigger workflow

Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>

* fix: also strip _total when resolving metric metadata in Selector and MetricsExplorer

Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>

---------

Signed-off-by: ADITYATIWARI342005 <142050150+ADITYATIWARI342005@users.noreply.github.com>
Signed-off-by: ADITYA TIWARI <adityatiwari342005@gmail.com>
2025-12-14 18:41:19 +01:00
Jan Fajerski
ac5bdd66d7
Merge pull request #17634 from jan--f/sync-release-3.8
Sync branch release-3.8
2025-12-03 21:26:45 +01:00
Julius Volz
39e11f50b2 Fix serialization for empty ignoring() in combination with group_x()
Currently both the backend and frontend printers/formatters/serializers
incorrectly transform the following expression:

```
up * ignoring() group_left(__name__) node_boot_time_seconds
```

...into:

```
up * node_boot_time_seconds
```

...which yields a different result (including the metric name in the result
vs. no metric name).

We need to keep empty `ignoring()` modifiers if there is a grouping modifier
present.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-12-03 14:15:16 +01:00
Jan Fajerski
fae20b73ff Merge branch 'release-3.8' into sync-release-3.8
Conflicts:
	storage/remote/write_handler.go
	storage/remote/write_handler_test.go
            Pick `main`

Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2025-12-02 14:24:53 +01:00
Jan Fajerski
73b1fda131 prepare release v3.8.0
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2025-11-28 21:12:11 +01:00
Julius Volz
a1a3114a27 Hide alert annotations by default
See https://github.com/prometheus/prometheus/issues/16911

This will create a denser layout by default, enabling people to see more
information on the page without having to discover the global settings menu.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-11-25 14:44:31 +01:00
Jan Fajerski
f1b0dd2cdd prepare release v3.8.0-rc.1
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2025-11-21 16:12:02 +01:00
Julius Volz
36d054cb2e
UI: Add graph option to start the chart's Y axis at zero (#17565)
To reduce main UI clutter, I added a new settings submenu above the chart
itself for the new setting. So far it only has the one new axis setting, but it
could accommodate further settings in the future.

For now I'm only adding a boolean on/off setting to the UI to set the Y axis to
0 or not. However, the underlying stored URL field is already named
y_axis_min={number} and would support other Y axis minima, in case we want to
support custom values in the UI in the future - but then we'd probably also
want to add an axis maximum and possibly other settings.

Fixes https://github.com/prometheus/prometheus/issues/520

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-11-20 14:28:18 +01:00
Jan Fajerski
743116649b prepare release 3.8.0-rc.0
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2025-11-13 16:38:46 +01:00
Jan Fajerski
a2ba619612 ui: make update-npm-deps
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2025-11-06 20:06:56 +01:00
Julius Volz
766279791b
Merge pull request #17485 from prometheus/ui/unmount-collapsed-panel-content
UI: Speed up alerts/rules/... pages by not rendering collapsed content
2025-11-06 18:28:35 +01:00