Commit Graph

1056 Commits

Author SHA1 Message Date
Gilles De Mey
82f0ef6871 Alerting: Add support for additional colors in MetaText (#71299)
add support for additional colors in MetaText
2023-07-11 11:11:25 +02:00
Matthew Jacobson
e3787de470 Alerting: Fix Alertmanager change detection for receivers with secure settings (#71307)
* Alerting: Make ApplyAlertmanagerConfiguration only decrypt/encrypt new/changed secure settings

Previously, ApplyAlertmanagerConfiguration would decrypt and re-encrypt all secure settings. However, this caused re-encrypted secure settings to be included in the raw configuration when applied to the embedded alertmanager, resulting in changes to the hash. Consequently, even if no actual modifications were made, saving any alertmanager configuration triggered an apply/restart and created a new historical entry in the database.

To address the issue, this modifies ApplyAlertmanagerConfiguration, which is called by POST `api/alertmanager/grafana/config/api/v1/alerts`, to decrypt and re-encrypt only new and updated secure settings. Unchanged secure settings are loaded directly from the database without alteration.

We determine whether secure settings have changed based on the following (already in-use) assumption: Only new or updated secure settings are provided via the POST `api/alertmanager/grafana/config/api/v1/alerts` request, while existing unchanged settings are omitted.

* Ensure saving a grafana-managed contact point will only send new/changed secure settings

Previously, when saving a grafana-managed contact point, empty string values were transmitted for all unset secure settings. This led to potential backend issues, as it assumed that only newly added or updated secure settings would be provided.

To address this, we now exclude empty ('', null, undefined) secure settings, unless there was a pre-existing entry in secureFields for that specific setting. In essence, this means we only transmit an empty secure setting if a previously configured value was cleared.

* Fix linting

* refactor omitEmptyUnlessExisting

* fixup

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-07-11 08:23:07 +02:00
Gilles De Mey
1945f2b64e Alerting: Use new "Label" components for alert instance labels (#70997) 2023-07-10 13:03:35 +02:00
Gilles De Mey
089305e399 Alerting: improve provisioning indicator for notification policies (#71160) 2023-07-07 14:00:53 +03:00
Sonia Aguilar
00e9185b1a Alerting: Add legend for mixed in Loki alert history and use highlight instead of scroll (#71131)
* Add legend for mixed in Loki alert history

* Highlight row in the log list while hovering in the timeline instead of srcolling into it

* update some of the styles

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-07-07 09:10:10 +02:00
Gilles De Mey
441660b7b4 Alerting: Details page v2 feature flag (#69326) 2023-07-06 13:16:47 +02:00
Virginia Cepeda
549e04a8f1 Alerting: Keep rule form buttons always on top (#71056)
* Keep form buttons always on top

* Fix tests
2023-07-05 13:47:15 +02:00
Virginia Cepeda
db2770d992 Alerting: Improve time range and max data points info in QueryEditor (#70867)
* Add component to display QueryOptions in editor

* Display QueryOptions in QueryWrapper

* Display real data for time range and max data points

* Improve QueryOptions styling

* Remove Portal from RelativeTimeRangePicker

* Prevent RefID from hiding on small screens

Fixes https://github.com/grafana/grafana/issues/70900

* Address review comments

* Fix lint
2023-07-04 11:17:14 -03:00
Gilles De Mey
368afc211c Alerting: Contact points v2 – part 1 (#70643) 2023-07-04 12:47:19 +02:00
Gilles De Mey
df3888ba60 Alerting: Refactor Alertmanager picker (#70720) 2023-07-04 13:07:05 +03:00
Ashley Harrison
7a2a5dde8b Chore: Enable remaining jsx-a11y rules (#70990)
enabling remaining a11y rules + ignore existing violations
2023-06-30 16:58:16 +01:00
Sonia Aguilar
97420119e1 Alerting: Reduce number of unnecessary request in the alert list panel in case … (#70583)
* Reduce number of unnecessary request in the alert list panel in case we have data source filter selected

* use fetchPromAndRulerRulesAction instead of fetchAllPromAndRulerRulesAction in case of having datasource selected in options

* remove unnecessary useEffect

* Reduce number of requests in GroupBy component if data source is selected

* use redux utils for asyncmapslice

* lint

* Address review comments

* Skip fetching grafana rules if datasource is not Grafana rules source name

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-06-30 15:16:14 +02:00
Ashley Harrison
9ee2cc742a Chore: Use theme.shape.radius.circle everywhere (#70896)
* use theme.shape.radius.circle everywhere

* add useTheme2 import
2023-06-29 13:56:05 +01:00
Alexander Weaver
f94fb765b5 Alerting: Add limit query parameter to Loki-based ASH api, drop default limit from 5000 to 1000, extend visible time range for new ASH UI (#70769)
* Add limit query parameter

* Drop copy paste comment

* Extend history query limit to 30 days and 250 entries

* Fix history log entries ordering

* Update no history message, add empty history test

---------

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2023-06-28 13:32:28 -05:00
Sonia Aguilar
c7ddf29cdf Alerting: Add NeedHelpInfo component in notifications step. (#70740)
Add NeedHelpInfo component in notifications step and use it in annotations step (instead of HoverCard) for consistency
2023-06-27 16:46:56 +02:00
Sonia Aguilar
b0ac49926d Alerting: Expression card improvements (#70395)
* Show description for each expression type in the body and change widht depending on the type

* Move condition indicator to the header

* Make order of fields in expressions to be consistent for each expression type

* Add tooltip for expression type menu

* Update styles depending on the expression type

* Update styles and move add query button under queries

* Add NeedHelpInfo component

* Adress PR review comments

* Apply description updates from #70540

* Rename gelTypes to expressionTypes

* Update layout for expressions according to the real usecases

* Update footer to include series count in all expressions

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-06-27 11:35:56 +02:00
Virginia Cepeda
e03f61fe26 Alerting: don't copy original rule uid when cloning (#70645)
* Prevent using original rule uid when cloning

* Use uid from url instead of a new param in the alert rule form

* Add function to clone rule and tests for it

* Fix lint & tests

---------

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2023-06-26 17:44:26 -03:00
Gilles De Mey
9e0f6ceb57 Alerting: small typescript fix for Policy (#70655) 2023-06-26 13:19:33 +02:00
Konrad Lalik
9ebede1e18 Alerting: Display a warning when a contact point is not in use (#70506) 2023-06-26 11:05:44 +02:00
Virginia Cepeda
f17c49e632 Alerting: Display correct results when using different filters on alerting panels (#70482)
* Trigger separate rules request for each alerting panel in a dashboard

* Add RTK method to fetch prom rules

* Use RTKQuery to get prom rules in UnifiedAlertList

* Fix lint

* Mock promRules call

* Address PR comments

* Fix tests
2023-06-23 14:15:24 -03:00
Gilles De Mey
dc7e967cd4 Alerting: Fixes clone url for instances hosted on sub path (#70543) 2023-06-23 14:29:47 +02:00
Virginia Cepeda
929d9eaa91 Alerting: Change how we display annotations in the rule form (#69338)
* Change how we display annotations in the rule form

* Allow to add custom annotations using a free text input

* Get dashboard and panel titles to display in the annotations section

* Add component to display dashboard and panel annotations as links

* Add styling to help tooltip

* Fix styling on annotations controls

* Fix tests

* Fix tests

* Remove unused imports

* Add component for custom annotations

* Display default annotations even if editing and they're empty

* Adjust tests

* Make conditional rendering more clear

* Fix tests

* Move annotation header to separate component

* Fix lint

* Show annotation fields in the right order

* Prevent showing custom annotation fields by default

* Don't display links to dashboard/panel if response fails

* Rename custom annotation header component

* Fix after rebase
2023-06-21 11:15:12 -03:00
Sonia Aguilar
e6243f72fd Alerting: Add file and rule_group query params in request for filtering the res… (#70379)
* Add file and rule_group query params in request for filtering the response when loading rule in view mode

* Fix test
2023-06-21 09:08:20 +02:00
Piotr Jamróz
a94ba7784a Explore: Remove storing derived "loading" property (#70324)
* Remove storing derived state (loading property) and use a selector instead

* Remove redundant tests

There's no way to change the interval while live streaming

* Remove check for isLive when deriving waiting for data

It was introduced in #18804

* Remove unused props
2023-06-20 17:38:05 +02:00
Matias Chomicki
fd6836e326 Cloud rules: fix hardcoded conditional (#70387) 2023-06-20 16:39:48 +02:00
Gilles De Mey
5c4571f231 Alerting: Align notification policies design (#70345) 2023-06-20 15:49:54 +03:00
Gilles De Mey
87884f4d41 Alerting: Allow selecting the same custom group when swapping folders (#70337) 2023-06-20 11:28:24 +02:00
Sonia Aguilar
9a252c763a Alerting: Add notification policies preview in alert creation (#68839)
* Add notification policies preview in alert rule form
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>

* Refactor using new useGetPotentialInstances hook and apply some style changes

* Add notification policy detail modal

* Use backtesting api for simulating  potential alert instances

* Fix logic to travserse all the children from the root route

* Split notification preview by alert manager

* Add instance count to matching policy header and fix some styles

* Move some logic to a new hook useGetAlertManagersSourceNames to make the code more clean

* Fix some tests

* Add initial test for NotificationPreview

* Use button to preview potential instances

* Add link to contact point details

* Add route matching result details

* Show AlertManager image in the routing preview list

* Add tests setup, add single AM preview test

* Handle no matchers and no labels use case

* Update some style in collapse component and fix policy path in modal

* Update modal styles

* Update styles

* Update collapse header styling

* Normalize tree nodes should happen before findMatchingRoutes call

* Fix findMatchingRoutes and findMatchingAlertGroups methods after reabasing

* Move instances matching to the web worker code

* Fix config fetching for vanilla prometheus AMs

* Add tests

* Add tests mocks

* Fix tests after adding web worker

* Display matching labels for each matching alert instance

* Add minor css improvements

* Revert changes added in Collapse component as we don't use it anymore

* Move the route details modal to a separate file

* Move NotificationRoute and preview hook into separate files

* Fix Alertmanager preview tests

* Fix tests

* Move matcher code to a separate file, improve matcher mock

* Add permissions control for contact point edit view link

* Fix from and to for the temporal use of backtesting api

* Fix tests, add lazy loading of the preview component

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>

* Fix preview test

* Add onclick on the header div so it collapse and expands when clicking on it, and update styles to be consistent with the rest of tables

* Adapt the code to the new rule testing endpoint definition

* Fix tests

* small changes after reviewing the final code

* compute entire inherited tree before computing the routes map

* Throw error in case of not having receiver in routesByIdMap and add test for the use case of inheriting receiver from parent to check UI throws no errors

* Add list of labels in the policy route path that produces the policy matchers to match potential instances

* Use color determined by the key, in label tags when hovering matchers in the policy tree

* Remove labels in modal and handle empty string as receiver to inherit from parent as we do with undefined

* Revert "Add list of labels in the policy route path that produces the policy matchers to match potential instances"

This reverts commit ee73ae9cf9.

* fix inheritance for computeInheritedTree

* Fix message shown when preview has not been executed yet

* First round for adressing PR review comments

* Adress the rest of PR review commments

* Update texts and rename id prop in NotificaitonStep to alertUid

---------

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-06-19 13:32:17 +02:00
Virginia Cepeda
160ff360c4 Alerting: Make QueryEditor not collapsable (#70112)
* Add option to make QueryEditor not collapsable

* Make QueryEditor not collapsable in Alerting

* Change query editor border to weak

The medium border is really only for inputs, everything else should use weak border

* Add tests
2023-06-16 15:14:00 -03:00
Gilles De Mey
69b1153205 Alerting: Contact Points v2 feature flag (#70165) 2023-06-16 16:19:44 +02:00
Gilles De Mey
7952907e48 Alerting: Allow executing "hidden" queries (#70064) 2023-06-16 13:14:46 +02:00
Gilles De Mey
a00d7770bc Alerting: Show disabled provisioned evaluation group (#69932) 2023-06-13 11:26:01 +02:00
Ashley Harrison
266751b96d NestedFolders: stay in the modal whilst actions complete (#69730)
* stay in the modal whilst actions complete

* don't return anything here to fix types

* ensure we're always resetting button state
2023-06-12 16:53:17 +01:00
Gilles De Mey
f94e07f5a4 Alerting: Fix notification policies inheritance algorithm (#69304) 2023-06-08 13:01:40 +02:00
Laura Benz
24502c4c4a Add tooltip to instances of IconButton (#68880)
* refactor: tooltip is required

* refactor: add tooltips

* refactor: add tooltips

* refactor: add tooltips

* refactor: add tooltips

* refactor: add tooltips

* refactor: add tooltips

* refactor: adjust tests

* refactor: apply changes from code review

* refactor: adjust component for e2e test

* refactor: adjust fallback

* refactor: apply changes from code review

* refactor: apply changes from code review

* refactor: set IconButton default as type=button and remove from use cases

* refactor:  remove aria-labels when duplicated and type=button from use cases

* refactor: clean up

* refactor: fix tests

* refactor: fix type errors

* refactor: remove changes in order in order to add them to a separate PR

* refactor: set IconButton default as type=button

* refactor: remove tooltip

* refactor: apply changes requested in review
2023-06-08 10:23:28 +02:00
Gilles De Mey
8a8b5da1ee Alerting: Use monaco editor for admin page (#69514) 2023-06-07 16:21:36 +02:00
Gilles De Mey
a91de30f99 Alerting: Support newer http_config struct (#69452) 2023-06-07 16:21:22 +02:00
Sonia Aguilar
848eb01a89 Alerting: Fix broken UI because of query being optional for some ExpressionQuer… (#69650)
* Fix broken UI because of query being optional for some ExpressionQuery coditions field

* Delete query field from conditions in utils.test.ts
2023-06-07 10:58:08 +02:00
Virginia Cepeda
e6e88aa528 Alerting: Display error if repeat interval is lower than group interval (#69413)
* Display error if repeat interval is lower than group interval

* Small change

* Update tests
2023-06-02 11:18:26 -03:00
Virginia Cepeda
fb7993d021 Alerting: Fix matching labels with spaces in their values (#68909)
Fix matching labels with spaces in their values
2023-05-31 17:10:00 -03:00
Virginia Cepeda
e796063a1e Alerting: Reorder new alert and export buttons (#68418)
* Add component for rule creation and dropdown

* Make each route type have a different path

* Remove unneeded import

* Fix tests

* Rename CreateRuleButton to MoreActionRuleButtons

* Remove Recording Rule option from new rule form

* Use alerting and recording for path params on new rules

* Fix tests

* Only show new button if permissions are granted

* Fix tests
2023-05-31 10:56:54 -03:00
Gilles De Mey
deb13ef611 Alerting: Add more context to delete modals (#69244) 2023-05-31 12:47:17 +03:00
Gilles De Mey
7e924e0d74 Alerting: Smaller fixes for long namespace / group names (#69095) 2023-05-31 11:43:06 +02:00
Virginia Cepeda
ce0c1f0b0b Alerting: Prevent assigning duplicated query/expression names (#68664)
Prevent assigning duplicate query/expression names
2023-05-30 10:52:21 -03:00
Konrad Lalik
2f0728ac67 Alerting: Matching instances preview for notification policies (#68882)
* Basic implementation in web worker

* Move instances discovery to the worker

* Remove filtering from the worker

* Use normalized routes, use rtk query for alert groups fetching

* Reorganize matchers utilities to be available for web workers

* Move object matchers to the machers util file, rename worker

* Move worker code to a separate hook, add perf logging

* Add a mock for the web worker code, fix tests

* Fix tests warnings

* Remove notification policy feature flag

* Add normalizeRoute tests, change the regex match to test for label matching

* Move worker init to the file scope

* Simplify useAsyncFn hook

* Use CorsWorker as a workaround for web workers loading from CDN

* Use a feature flag to enable/disable worker-based preview, add worker error handling

* Add POC for react-enable working with grafana feature toggles

* Code cleanup

* Remove console error, add useRouteGroupsMatcher tests

* Fix tests mock
2023-05-30 15:15:22 +02:00
Gilles De Mey
721d51a497 Alerting: Adds support for timezones in mute timings (#68813) 2023-05-25 16:19:33 +02:00
Gilles De Mey
73681a251e Alerting: Add support for Alert State History Loki primary (#69065)
add support for multiple ash targets with loki as primary
2023-05-25 16:09:44 +03:00
Virginia Cepeda
1763b82b5d Alerting: fix moment when rule list navigation is tracked (#68663)
* Track rule list navigation only on page load

* update tests

* Fix lint

---------

Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2023-05-22 14:26:20 -03:00
Konrad Lalik
b37a6e9d4c Alerting: Fix stale query preview error (#68619)
* Use mutable ref to keep queries to be previewed to prevent stale state

* Extract code related to AlertQueryRunner to a separate hook

* Use hooks form state to keep fresh queries, fix recording rules preview

* Remove unused import

* Update query update explanation
2023-05-22 16:23:30 +02:00
Gilles De Mey
a44ac0ed63 Alerting: Add additional contact points for external AM (#67920) 2023-05-22 11:43:12 +02:00