195 Commits

Author SHA1 Message Date
dependabot[bot]
50ccf5cfd7
Bump @types/lodash from 4.17.7 to 4.17.9 in /web/ui
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.7 to 4.17.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-01 23:19:11 +00:00
Julius Volz
b826c43987
Calculate path prefix directly in initial settings Redux value (#14981)
Without this, the page that is shown first renders once with an empty path
prefix value, since the settings update takes a render cycle to complete.
However, we only fetch certain data from the API exactly once for a given
page, and not for every re-render with changed path prefix value (and we
also wouldn't want to fetch it from the wrong location initially).

This duplicates the served endpoint list once more, but exporting them from
App.tsx would also have been dirty (hot reload only works when a file only
exports one component and nothing else, thus there'd be a linter warning).

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-30 14:22:40 +02:00
Julien
e34563bfe0 Retry SSE connection unless max clients have been reached.
This switches from the prehistoric EventSource API to the more modern
fetch-event-source package. That packages gives us full control over the
retries.

It also gives us the opportunity to close the event source when the
browser tab is hidden, saving resources.

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-27 16:18:33 +02:00
Julien
f9bbad1148 Limit the number of SSE Subscribers to 16 by default
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-27 15:51:51 +02:00
Julien
7aa4721373
Merge pull request #14946 from roidelapluie/notifications
Add notifications to the Web UI
2024-09-27 15:50:43 +02:00
Julien
6cde0096e2 Add notifications to the web UI when configuration reload fails.
This commit introduces a new `/api/v1/notifications/live` endpoint that
utilizes Server-Sent Events (SSE) to stream notifications to the web UI.
This is used to display alerts such as when a configuration reload
has failed.

I opted for SSE over WebSockets because SSE is simpler to implement and
more robust for our use case. Since we only need one-way communication
from the server to the client, SSE fits perfectly without the overhead
of establishing and maintaining a two-way WebSocket connection.

When the SSE connection fails, we go back to a classic
/api/v1/notifications API endpoint.

This commit also contains the required UI changes for the new Mantine UI.

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-27 15:28:38 +02:00
Julius Volz
fcbd18dabb Remove Query page alert close buttons that don't do anything
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-25 18:27:27 +02:00
Jesus Vazquez
cb4bc5e786
UI: Make mantime UI assets relative
Signed-off-by: Jesus Vazquez <jesusvzpg@gmail.com>
2024-09-24 15:30:54 +02:00
Julius Volz
52fe4cc4ee
Merge pull request #14944 from roidelapluie/copy
Mantine UI: removed unuse file
2024-09-20 21:28:09 +02:00
Julien
7ebda924b8 fix(web): properly format sub-millisecond durations in target status page
Previously, scrapes durations that are very short (e.g., connection refused)
could show as empty (durations under 1 millisecond).

This commit ensures that sub-millisecond durations are correctly
displayed as "0ms" or "1ms" when necessary.

- Adjusted `humanizeDuration` to round sub-millisecond durations to the
  nearest millisecond.
- Updated unit tests to verify the correct handling of sub-millisecond
  values.

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-20 12:02:17 +02:00
Julien
5096bb9f29 Mantine UI: removed unuse file
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-20 11:33:55 +02:00
Björn Rabenstein
c7fb6188b4
Merge pull request #14930 from jan--f/holt-winters-experimental
move holt_winters to the experimental functions and rename
2024-09-19 17:52:39 +02:00
Jan Fajerski
96e5a94d29 promql: rename holt_winters to double_exponential_smoothing
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
2024-09-19 15:29:01 +02:00
Julien
546f780006 UI: Disallow sub-second zoom as this cause inconsistenices in the X axis in uPlot
Fixes #9135

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-19 11:51:41 +02:00
Julius Volz
b8d1336d42
Merge pull request #14912 from roidelapluie/notready
mantine UI: Distinguish between Not Ready and Stopping
2024-09-17 19:40:13 +02:00
Julien
ac5377873f mantine UI: Distinguish between Not Ready and Stopping
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-17 16:02:16 +02:00
Julius Volz
a1908df922 Don't wrap action buttons below metric name in metrics explorer
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 19:51:35 +02:00
Julius Volz
091fc403cf Fiddle with targets table styles to try and improve things a bit
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 19:51:08 +02:00
Julius Volz
57898c7929 Refactor and fix time formatting functions, add tests
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 19:51:08 +02:00
Julius Volz
9b0dc68d0d PromQL explain view: Support set operators
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 18:03:08 +02:00
Julien
ac01dc9035 Explain, vector-to-vector: Do not compute results for set operators
Set operators are not displayed:
31ce9dacf4/web/ui/mantine-ui/src/pages/query/ExplainViews/BinaryExpr/VectorVector.tsx (L364)

Therefore, do not compute results for them.

Fixes #14889

Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-16 11:38:35 +02:00
Julius Volz
50af7d589b Fix tree line drawing by using a callback ref
In a non-dev build (no initial double-renders), the tree lines would not be
rendered correctly from the parent of a binop to its first child, because the
first child would be rendered before the parent, and the parent's ref hadn't
been set yet at that time. Switched from a normal ref to a callback-based ref
with explicit React state update to make sure that the child gets to know about
the parent's (later) rendered div element.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 08:42:20 +02:00
Julius Volz
0180cf31aa Factor out common icon and card styles
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-13 14:44:04 +02:00
Julius Volz
0757fbbecc Make sure that alert element table headers are not wrapped
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-13 14:41:24 +02:00
Julius Volz
a7c1a951df Add general Mantine overrides CSS file
...initially fixing the ellipsis overflow text cut-off in badges.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-13 14:40:29 +02:00
Julius Volz
b93ed7bd17
Merge pull request #14898 from prometheus/fix-targets-page-coloring
Fix border color for target pools with one target that is failing
2024-09-13 09:21:54 +02:00
Sandro
65743bf9bd
ui: drop template readme
Signed-off-by: Sandro <sandro.jaeckel@gmail.com>
2024-09-11 11:15:51 +02:00
Julius Volz
dfec29d8e5 Fix border color for target pools with one target that is failing
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-11 10:23:57 +02:00
Jan Fajerski
91608c002f Merge branch 'main' into release-3.0-beta.0
Conflicts:
	scrape/scrape_test.go
          Pick both changes.
2024-09-10 20:51:20 +02:00
Julius Volz
ee808cda8b Fix HTML rendering for aggregator Explain view
Follow-up to https://github.com/prometheus/prometheus/pull/14893

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-10 17:09:34 +02:00
Julien
3782da7bbc Explain: Use param scalars in aggregations description
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-10 16:40:33 +02:00
Jan Fajerski
3ce285e0a3
Merge pull request #14891 from roidelapluie/fix-lookback-delta
Mantine UI: Use actual lookback delta in explain
2024-09-10 13:18:59 +02:00
Julien
be6d443947 Mantine UI: Use actual lookback delta in explain
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-10 13:01:57 +02:00
Julius Volz
bde5092471
Merge pull request #14882 from prometheus/new-ui-help-button
Bring back documentation link in the form of an action button
2024-09-10 12:54:00 +02:00
Julien
8aab6458b8 Mantine UI: Move /discovered-alertmanagers to /alertmanager-discovery
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-10 12:12:21 +02:00
Fiona Liao
a2bf2bf4ef Change npm deps to 0.3xx
Signed-off-by: Fiona Liao <fiona.liao@grafana.com>
2024-09-10 10:16:45 +01:00
Fiona Liao
500fcac03a Update CHANGELOG for beta
Signed-off-by: Fiona Liao <fiona.liao@grafana.com>
2024-09-10 10:14:47 +01:00
Julius Volz
c1080990ac Bring back documentation link in the form of an action button
IMO this looks nicer than adding it as a normal page nav link as in
https://github.com/prometheus/prometheus/pull/14878

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 18:55:32 +02:00
Julius Volz
11f344e4d3 Move AM discovery page from "Monitoring status" -> "Server status"
Seems to at least make more sense to me like that.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 14:32:27 +02:00
Julius Volz
e2be869a7a Slightly improve navbar wrapping for long status title + narrow window
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:59:36 +02:00
Julius Volz
306d357635 Revert back to normal font for recording rule titles
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:54:41 +02:00
Julius Volz
7e0cba568e Make annotations display on /alerts page consistent with /rules
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:50:46 +02:00
Julius Volz
adf6c105a7 Show alert annotations on /rules page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:46:42 +02:00
Julius Volz
5956d482e8 Remove a few unneeded comments and component props
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:19:47 +02:00
Julius Volz
d7bacf96c7 Remove commented-out and unused allowLineBreaks settings for binop explain
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:19:02 +02:00
Julius Volz
ff41d45bae Make status page timestamps consistent and use local time
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-09 11:13:22 +02:00
Julius Volz
d23872ef30 Graph range vector selectors as instant vector selectors with notice
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-08 21:11:06 +02:00
Julius Volz
1f1ca37fd7 Select root of tree by default in tree view
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-08 20:53:59 +02:00
Julius Volz
cdcd43af5b Fix a lot of styling in tree view and binop explain view
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-08 20:53:44 +02:00
Julius Volz
52a6e32fd0 Update all CodeMirror dependencies
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-08 17:06:21 +02:00