Commit Graph

124 Commits (b10d5e02fb6e30eb2aa6d0003096f8570a716243)

Author SHA1 Message Date
Julius Volz 76ca7d08d9 Fixup: re-add erroneously removed lines
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-10-30 16:43:10 +01:00
Julius Volz c861b31b72 Support UTF-8 metric names and labels in web UI
Fixes most of https://github.com/prometheus/prometheus/issues/15202

This should address all areas of the UI except for the autocompletion in the
codemirror-promql text editor. The strategy here is that any time we print or
internally serialize (like for the PromLens tree view) either a metric name or
a label name as part of a selector or in other relevant parts of PromQL, we
check whether it contains characters beyond what was previously supported, and
if so, quote and escape it. In the case of metric names, we also have to move
them from the beginning of the selector into the curly braces.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-10-29 20:22:52 +01:00
Julius Volz 3d2194f561 Style cleanups, mostly for web notifications and startup alert
Some of the changes are a bit unreadable because the previous files were not
saved with the project's linter / auto-formatter settings applied. But it's
basically:

* For icons that are not Mantine-native components, use the rem() function
  for computing their size, so they scale correctly with the root font size.
  See https://mantine.dev/styles/rem/.
* Try a different icon for the notifications tray, since the bell icon was
  already used for Prometheus alerts. Other candidates from
  https://tabler.io/icons would be IconExclamationCircle or
  IconDeviceDesktopExclamation or IconMessageCircleExclamation.
* The server startup alert looked a bit cramped, introduced a Stack to add
  spacing between the text and the progress bar.
* Added a bit of spacing between notification text and date. Things looked
  cramped. To make things look ok with that, I also top-aligned the
  notification text and icon.

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-10-04 14:14:45 +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
Julien 5096bb9f29 Mantine UI: removed unuse file
Signed-off-by: Julien <roidelapluie@o11y.eu>
2024-09-20 11:33:55 +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 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 9b0dc68d0d PromQL explain view: Support set operators
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-16 18:03:08 +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 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
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
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 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 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 8b4291537b Clarify explain view, add tree view close button, fix callback bug
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-08 15:17:00 +02:00
Julius Volz 7e0cd2e0b4 Improve binop explain view styling
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-08 15:16:02 +02:00
Julius Volz 5fd860f806 Complete building tree view and implement "Explain" tab
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-06 20:38:10 +02:00
Julius Volz b75a12b52f Remove unneeded <Group> in TSDBStatusPage
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-06 20:36:39 +02:00
Julius Volz 07856b4bb9 Make linter run by upgrading the ESLint config
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-06 20:35:55 +02:00
Julius Volz c1c2e32137 More cleanups to tree view stats
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-05 16:19:12 +02:00
Julius Volz 2d9f79f59e Show label stats in tree view
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-05 14:45:09 +02:00
Julius Volz 331a8e1d6c Use infinite scroll in metrics explorer for faster rendering
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-05 14:44:45 +02:00
Julius Volz 53affc64db Clear the query page when navigating away from it
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 21:41:27 +02:00
Julius Volz c73c3e24d7 Default to serving new (Prometheus 3.0) UI
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 21:33:37 +02:00
Julius Volz 8ee70c5fa0 Remove unused import
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 21:03:00 +02:00
Julius Volz 1f3de9c599 Change range input from Input to TextInput
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 20:43:33 +02:00
Julius Volz d36e049d79 Fix lint errors by removing unused imports and vars
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:49:08 +02:00
Julius Volz 7103b35568 Add "Show exemplars" button (doesn't do anything yet)
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:45:31 +02:00
Julius Volz 88519152e5 Minor cleanups
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:44:54 +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 e5e212dad2 Remove wrong query key for format_query
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-04 17:35:17 +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 d0ccbd2eb5 Top-align all targets page table cell contents, other styling
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-03 16:09:50 +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 9e4ffd044c Implement Alertmanagers discovery page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-03 15:59:02 +02:00
Julius Volz 87a22500e1 Add PromQL logic code and labels explorer from PromLens, add testing deps
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-09-02 13:45:36 +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 bc48d19d8c Add initial metrics explorer
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 21:14:21 +02:00
Julius Volz 4ccadd5453 Remove unused import
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 16:30:45 +02:00
Julius Volz 697327a51d Add filtering to SD page and improve state processing
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 15:35:32 +02:00