Commit graph

25 commits

Author SHA1 Message Date
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 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 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 c0ba4ee2bb Add beginnings of a PromLens-style tree view
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:43:08 +02:00
Julius Volz a99c01b53f Implement query history
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:25:34 +02:00
Julius Volz d3b6b0f288 Rename "value" to "step" in resolution state
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 14:59:17 +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 648751568d Better target table formatting, store filters in URL
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-10 20:25:38 +02:00
Julius Volz e2d37b6d92 Implement kv search on targets page again
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-31 18:50:41 +02:00
Julius Volz a6b085ee5a Refactor DataTable, record & show query stats
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-31 16:19:38 +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 1b2290c131 Remove unused imports in new UI to fix build
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-23 11:35:37 +02:00
Julius Volz a526a7ae53 Implement encoding/decoding graph pages to/from URL
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-22 22:47:41 +02:00
Julius Volz 0049e8baff Implement timezone handling for uPlot graphs
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-22 16:08:39 +02:00
Julius Volz 8ef66c41a0 A lot of work around uPlot and resolution picking
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-21 23:55:08 +02:00
Julius Volz c67b7a7c56 Store global settings in localStorage
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-07-17 10:50:32 +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 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
Julius Volz cdc4bf0ebc Various tiny code cleanups
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-04-03 16:15:50 +02:00
Julius Volz a1f36de67c Add missing alerts page redux slice file
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-04-03 14:49:21 +02:00
Julius Volz 70221fc4a0 Build initial targets page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-04-03 14:43:03 +02:00
Julius Volz 796d1806da Add Settings menu, make menu links left-justified again
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-03-14 12:07:13 +01:00
Julius Volz 33a753c2f8 Implement pathPrefix handling
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-03-08 14:06:05 +01:00
Julius Volz 2bb14c5787 Lots of more progress on the new Mantine UI
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-03-07 13:16:54 +01:00