Commit graph

25 commits

Author SHA1 Message Date
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 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
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 0180cf31aa Factor out common icon and card styles
Some checks failed
CI / Go tests (push) Has been cancelled
CI / More Go tests (push) Has been cancelled
CI / Go tests with previous Go version (push) Has been cancelled
CI / UI tests (push) Has been cancelled
CI / Go tests on Windows (push) Has been cancelled
CI / Mixins tests (push) Has been cancelled
CI / Build Prometheus for common architectures (0) (push) Has been cancelled
CI / Build Prometheus for common architectures (1) (push) Has been cancelled
CI / Build Prometheus for common architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (0) (push) Has been cancelled
CI / Build Prometheus for all architectures (1) (push) Has been cancelled
CI / Build Prometheus for all architectures (10) (push) Has been cancelled
CI / Build Prometheus for all architectures (11) (push) Has been cancelled
CI / Build Prometheus for all architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (3) (push) Has been cancelled
CI / Build Prometheus for all architectures (4) (push) Has been cancelled
CI / Build Prometheus for all architectures (5) (push) Has been cancelled
CI / Build Prometheus for all architectures (6) (push) Has been cancelled
CI / Build Prometheus for all architectures (7) (push) Has been cancelled
CI / Build Prometheus for all architectures (8) (push) Has been cancelled
CI / Build Prometheus for all architectures (9) (push) Has been cancelled
CI / Check generated parser (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
CI / fuzzing (push) Has been cancelled
CI / codeql (push) Has been cancelled
CI / Report status of build Prometheus for all architectures (push) Has been cancelled
CI / Publish main branch artifacts (push) Has been cancelled
CI / Publish release artefacts (push) Has been cancelled
CI / Publish UI on npm Registry (push) Has been cancelled
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-13 14:44:04 +02: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 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 fef4c15283 Remove commented-out line
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:34:35 +02:00
Julius Volz eb175c88f6 Correctly pass custom title into ResettingErrorBoundary
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-03 16:07:04 +02:00
Julius Volz 857e59c8b6 Improve EndpointLink styling
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-03 16:05:30 +02:00
Julius Volz 5599db20cd Change use{Suspense}APIQuery key to an array
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-03 16:05:05 +02:00
Julius Volz b29be5e6f8 Add query button to rule expressions, improve styling
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-01 20:28:42 +02:00
Julius Volz d22e721d39 Add initial Service Discovery page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 14:56:35 +02:00
Julius Volz d6e5e39bf7 Add filtering to alerts page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 14:54:08 +02:00
Julius Volz b2a8657d58 Open target endpoint links in separate window/tab
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-10 20:18:22 +02:00
Julius Volz 3905902758 Add path prefix to readiness check
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-08 17:01:40 +02:00
Julius Volz e07dd8cd05 Always display HTTP params under the endpoint link
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-06 16:39:25 +02:00
Julius Volz 76c3429e67 Add dropdown for discovered labels on /targets page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-05 20:13:49 +02:00
Julius Volz b06bb78543 Add filtering, limiting, and more to targets page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-27 16:29:18 +02:00
Julius Volz 1aa79e29a2 Add server readiness check and WAL replay progress display
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-15 22:21:14 +02:00
Julius Volz 8fae131733 Move Settings context data into Redux settings slice
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-15 22:19:47 +02:00
Julius Volz a057601771 Fix a few Mantine UI lint errors
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-04-18 15:04:14 +02:00
Julius Volz 50118dc174 Change icon for state multiselect
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-04-09 12:50:22 +02:00
Julius Volz 1049c90cb5 Clean up file hierarchy a bit, add some more comments
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-04-09 12:36:53 +02:00