240 Commits

Author SHA1 Message Date
ADITYATIWARI342005
3ef9f4e18a ui: rename ScrapeDetails→ScrapeTimingDetails; refine labels per review
Rename component for clarity (timing-only focus)
Chevron title: “Show/Hide additional timing info”
Duration pill tooltip: “Duration of last target scrape”
Update imports/usages; keep DOM-conditional expanded content

Signed-off-by: ADITYATIWARI342005 <142050150+ADITYATIWARI342005@users.noreply.github.com>
2025-09-29 20:45:52 +05:30
ADITYATIWARI342005
8eb8758925 ui: Add expandable scrape interval and timeout to targets page
Implements expand/collapse functionality for displaying final scrape
configuration (interval + timeout) in the targets page timing column.
- Add ScrapeDetails component with expand/collapse chevron
- Keep existing "Last Scrape" and "Scrape Duration" badges always visible
- Display "Scrape interval: every \<interval\>" and "Scrape timeout: after \<timeout\>" when expanded
- Use IconRepeat for interval and IconPlugConnectedX for timeout
- Follow TargetLabels.tsx pattern for consistency
- Implement performance optimization with conditional DOM rendering
- Maintain existing hover tooltip functionality

Signed-off-by: ADITYATIWARI342005 <142050150+ADITYATIWARI342005@users.noreply.github.com>
2025-09-28 01:18:26 +05:30
Ayoub Mrini
6a5abd6b4b
Merge pull request #17080 from Duciwuci/bump-go-ci
chore: Bump Go min version to 1.24
2025-09-09 14:31:18 +02:00
Arve Knudsen
913cc8f72b
Replace gopkg.in/yaml.v2 with go.yaml.in/yaml/v2 (#17151)
* Replace gopkg.in/yaml.v2 with go.yaml.in/yaml/v2
* Upgrade to client_golang@v1.23.2

---------

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2025-09-06 13:04:24 +02:00
Duciwuci
070ffd7edb bump go version across all stages
Signed-off-by: Duciwuci <duciwuci@gmail.com>
2025-09-02 10:02:39 +02:00
Julius Volz
13b55ffc81
UI: More inclusive metadata handling for _count/_sum/_bucket suffixes (#16910)
Although these suffixes always need to be removed before querying metadata for
metrics that follow the Prometheus naming best practices, there can also be
metrics that don't follow these naming practices and have these suffixes
without being part of either a histogram or a summary metric.

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

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-07-24 13:54:58 +02:00
Julius Volz
1354bb90be Make query warning/info notice display configurable
Fixes https://github.com/prometheus/prometheus/issues/16888

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-07-21 13:03:46 +02:00
Julien Pivotto
7f2946ccdd mantine-ui: add query info warnings display to graph view
Followup of https://github.com/prometheus/prometheus/pull/16753

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2025-06-20 13:47:15 +02:00
Julien Pivotto
8dcb0ba24a mantine-ui: add query warnings display to graph view
Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2025-06-19 12:17:25 +02:00
Julius Volz
4eeeb6ee88
Fetch and display full query stats in hover tooltip in table query tab (#16723)
Fixes https://github.com/prometheus/prometheus/issues/5857

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-06-12 14:16:41 +00:00
Aman
f8508ccafa
mantine-ui: fix /alerts accordian theme colors (#16043)
* fix-alerts-accordion-theme

Signed-off-by: amanycodes <amanycodes@gmail.com>

* fixes

Signed-off-by: amanycodes <amanycodes@gmail.com>

* added changes to /rules page

Signed-off-by: amanycodes <amanycodes@gmail.com>

* more fixes

Signed-off-by: amanycodes <amanycodes@gmail.com>

---------

Signed-off-by: amanycodes <amanycodes@gmail.com>
Signed-off-by: Aman <95525722+amanycodes@users.noreply.github.com>
2025-06-12 08:23:04 +00:00
Julius Volz
ef430074f3
Merge pull request #16567 from ryanwuer/optimize-target-pool-search-experience
UI: optimize pool searching in /targets page
2025-05-31 16:53:58 +02:00
Julius Volz
69ed0a5794 Add health & text filtering on the /rules page
Addresses part of https://github.com/prometheus/prometheus/issues/16515

For now, I'm adding very similar filtering to the /rules page as we have on
the /alerts page, with the difference being:

* The state filter filters by rule health (ok/warn/unknown) instead of
  alert state (firing/pending/inactive)
* We don't collect & show detailed stats on the different state counts as
  we do on the /alerts page

There is a lot of copied / very similar code between those two pages (and
also some others) around filtering and pagination, so maybe there is an
opportunity for more code sharing in the future here.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-05-16 17:50:46 +02:00
Julius Volz
5f1c6226e2 SD UI: Better total target count display when using keep_dropped_targets option
Fixes https://github.com/prometheus/prometheus/issues/16586

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-05-16 11:07:55 +02:00
Julius Volz
dbf5d01a62
Fix full-page re-rendering when opening status nav menu (#16590)
When opening the status pages menu while already viewing one of the
status pages, the whole page would be re-rendered because the menu target's
default action of following the current page's URL was not prevented. Also,
we don't need to use a NavLink component for the menu target when we are
not viewing a status page, because then the component won't need to be
highlighted anyways.

Discovered + fixed with the help of react-scan.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-05-12 12:17:18 +02:00
Julius Volz
5c06804df8
Optimize memoization and search debouncing on /targets page (#16589)
Moving the debouncing of the search field to the parent component and then
memoizing the ScrapePoolsList component prevents a lot of superfluous
re-renders of the entire scrape pools list that previously got triggered
immediately when you typed in the search box or even just collapsed a pool.
(While the computation of what data to show was already memoized in the
ScrapePoolList component, the component itself still had to re-render a lot
with the same data.)

Discovered this problem + verified fix using react-scan.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-05-12 10:39:58 +02:00
Ryan Wu
a810e59990 UI: optimize pool searching in /target page
Signed-off-by: Ryan Wu <rongjun0821@gmail.com>
2025-05-07 21:32:34 +08:00
amanycodes
ad8464249c removed comments
Signed-off-by: amanycodes <amanycodes@gmail.com>
2025-04-24 20:09:05 +05:30
amanycodes
25d2746e35 stable and unique key for /rules page and key fixes
Signed-off-by: amanycodes <amanycodes@gmail.com>
2025-04-24 20:09:03 +05:30
amanycodes
de5b5c56e2 fix-ci-errors
Signed-off-by: amanycodes <amanycodes@gmail.com>
2025-04-24 20:08:16 +05:30
amanycodes
3dc9cbc8c0 stable and definitely unique card UI key in /alerts
Signed-off-by: amanycodes <amanycodes@gmail.com>
2025-04-24 20:08:16 +05:30
Aman
26bddcf068
promql: histogram_stddev and histogram_stdvar should use arithmetic mean for custom buckets
Signed-off-by: amanycodes <amanycodes@gmail.com>
2025-04-24 14:48:58 +02:00
Ryan Wu
831f79261c Change IconCopy to IconCheck after clicking copy icon in metrics explore modal
Signed-off-by: Ryan Wu <rongjun0821@gmail.com>
2025-04-02 23:03:00 +08:00
Julius Volz
6bfaaa0fee
Fix persisting alert groups per page setting to localStorage (#16388)
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-04-02 09:44:47 +01:00
Julius Volz
26857cf500
Fix width for custom label badges in stacked layouts (#16362)
In stacked / flex layouts like on the service discovery page, elements get a
100% width unless you tell them to only be as wide as their contents.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-31 18:20:28 +01:00
Julius Volz
b1f03f83cf
Improve rule state filter placeholder wording (#16361)
Technically, we are not filtering by the state of a single rule, but by the
whole rule group state (if even a single alert is firing within a group,
filtering for "Pending" won't show the group, even if it has pending
alerts).

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-31 18:19:46 +01:00
Julius Volz
ad3e200e9a
Tighter spacing for /alerts and /rules pages (#16359)
As discussed in https://github.com/prometheus/prometheus/issues/15717, this
should help show more information on one screen, to be more similar to the
old UI in this regard.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-31 18:19:03 +01:00
Julius Volz
4f58629a10
Implement simpler custom badges for label displays (#16343)
* Implement simpler custom badges for label displays

Should help a little bit with https://github.com/prometheus/prometheus/issues/16308

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

* Don't wrap text inside custom labels

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

---------

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-28 18:51:05 +01:00
Julius Volz
a4728fd030
Hide empty target pools and alert groups by default (#16341)
Also change the SD page setting for this to be in localStorage, as on the
other pages.

Should help a tiny bit with https://github.com/prometheus/prometheus/issues/16308

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-28 17:55:37 +01:00
Julius Volz
e7b1584b6a
Remove raw target labels from DOM when collapsed (#16342)
Should help a bit with https://github.com/prometheus/prometheus/issues/16308

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-28 17:49:05 +01:00
pudongair
308c8c48c1
chore: fix some comments (#16237)
Signed-off-by: pudongair <744355276@qq.com>
2025-03-19 16:28:34 +01:00
Mustafain Ali Khan
92c9f71082 Fix rules UI to display correct value for 'keepFiringFor'
Signed-off-by: Mustafain Ali Khan <mustalik@amazon.com>
2025-03-13 16:18:24 -07:00
Arve Knudsen
709ccc7048 Synchronize go.mod files
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2025-03-07 12:13:02 +01:00
Julius Volz
7a2be11436 Change "Cmd" to "⌘"
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-05 11:24:35 +01:00
Julius Volz
8e79631f86 Invert graph legend series show/hide behavior
Also conditionally display instructions for "Cmd" vs. "Ctrl" depending on the user agent.

See https://github.com/prometheus/prometheus/issues/16162#issuecomment-2699315258

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-05 10:33:03 +01:00
Julius Volz
9e5d59b777
Merge pull request #16163 from prometheus/readd-vertical-grid
Bring back vertical grid lines
2025-03-05 10:22:54 +01:00
Julius Volz
70aea5dd8d
Only copy matchers on double click and add error handling (#16165)
The useClipboard hook also just uses navigator.clipboard.writeText() under
the hood, but the timeout and state handling that the hook provides were
just not a good fit for showing a one-shot notification with error
detectionm, so doing the copying manually.

Addresses part of https://github.com/prometheus/prometheus/issues/16162

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-05 10:18:09 +01:00
Julius Volz
631890b38e
Add graph legend series toggling instructions again (#16164)
Addresses part of https://github.com/prometheus/prometheus/issues/16162

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-05 10:17:15 +01:00
Julius Volz
4ae1effb62 Bring back vertical grid lines
Addressing part of https://github.com/prometheus/prometheus/issues/16162

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-03-04 23:38:25 +01:00
Julius Volz
4be2243f06 Include scrape pool name for dropped targets in /api/v1/targets
This is needed so we can display dropped targets in the right scrape pool
in the web interface even if they have a non-default job name.

See also https://github.com/prometheus/prometheus/pull/16078

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

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-02-27 15:17:22 +01:00
Julius Volz
b636046672 Fix health color for target pools with single target that is down
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-02-22 21:32:56 +01:00
Aman
509b978f0d
single-button-theme-toggle-and-responsive-logo (#16021)
Signed-off-by: amanycodes <amanycodes@gmail.com>
2025-02-12 17:14:05 +00:00
Julius Volz
a944fa1e7a
Make theme switcher a single three-state toggle button (#16000)
This should help a bit with the header icon overflow on narrow screens and
also overall make things look less cluttered.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-02-12 15:56:00 +01:00
Julius Volz
402fa38e84
Improve tick rendering (#15999)
Move to 24h-based time formatting and unambiguous date formats. Also add
more details to the default formatting of each tick instead of only showing
e.g. minutes/seconds at rollover ticks for the shorter breakpoints.

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

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-02-10 13:19:56 +01:00
Julius Volz
32d306854b
Merge pull request #15807 from leonnicolas/hide-empty-rules-persitence
Make "hide empty rules" persistent
2025-01-20 15:26:13 +01:00
dependabot[bot]
2f42bf2376
chore(deps): bump react-dom and @types/react-dom in /web/ui (#15661)
* chore(deps): bump react, react-dom and @types/react in /web/ui

Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react), [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). These dependencies needed to be updated together.

Updates `react` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react)

Updates `react-dom` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom)

Updates `@types/react` from 18.3.5 to 19.0.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: react
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: react-dom
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* chore(deps): bump react-dom and @types/react-dom in /web/ui

Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom). These dependencies needed to be updated together.

Updates `react-dom` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom)

Updates `@types/react-dom` from 18.3.0 to 19.0.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react-dom
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix up

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

---------

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>
2025-01-17 18:57:39 +00:00
dependabot[bot]
5e2b75ee5e
chore(deps-dev): bump @typescript-eslint/parser from 6.21.0 to 8.20.0 in /web/ui (#15821)
* chore(deps-dev): bump @typescript-eslint/parser in /web/ui

Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.21.0 to 8.20.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.20.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix lint errors/warnings

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

---------

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>
2025-01-17 18:16:30 +00:00
leonnicolas
fccd78d3cd
Update storage keys
Signed-off-by: leonnicolas <leonloechner@gmx.de>
2025-01-13 21:46:45 +01:00
leonnicolas
36520fd8b2
Remove settings from setting menu
Signed-off-by: leonnicolas <leonloechner@gmx.de>
2025-01-13 17:56:11 +01:00
Julius Volz
60b71108e5 Merge two accidental "Alerts page settings" sections into one
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2025-01-13 16:25:26 +01:00