Commit Graph

895 Commits

Author SHA1 Message Date
Sonia Aguilar
a61e044d00
Contact points tab: Remove error count in integrations details and show only Error label (#57325) 2022-10-20 18:24:32 +02:00
Gilles De Mey
423643aaa6
Alerting: use virtualized list of namespaces / groups for cloud rules (#56415) 2022-10-18 13:38:59 +02:00
kay delaney
5d53a983d8
React18: Update useCallback arg types where needed (#57084) 2022-10-17 14:52:12 +01:00
Sonia Aguilar
3f26ffde94
Alerting: Add relativeTimeRange from dataSource when using Resample expresions (#56652)
* Fix: Add relativeTimeRange from dataSource when using Resample expression

* Add test for relativeTimeRange when updating resample expression

* update time range for expressions when data sources are updated

* Get data source recursively from expression up to the last query that this tree is referencing to

* Remove unnecessary produce from immer, and check if there is a cycle in the queries structure
2022-10-17 12:29:05 +02:00
Ashley Harrison
3cca8e3676
any/type assertion fixes (#57009) 2022-10-17 10:10:10 +01:00
kay delaney
e85917f041
Chore/React18: Update component prop types (#56898) 2022-10-14 10:24:32 +01:00
Konrad Lalik
e5d644d991
Alerting: Fix source and rule name decoding on Find route (#56805) 2022-10-14 10:06:00 +02:00
Santiago
9996dbd577
use Prometheus' format for notification attempts durations (#56822) 2022-10-13 10:08:09 -03:00
Sonia Aguilar
d957fe01f4
Simplify mocking useGetContactPointsState (#56842) 2022-10-13 11:06:20 +02:00
Sonia Aguilar
277803a894
Alerting: Refactor fetch for receivers for using RTKQuery (#56624)
* Refactor fetch for reveivers for using  RTKQuery

* Simplify receiversApi contactPointsState endpoint

* Fix tests and create useGetContactPointsState hook for using receiversApi.useContactPointsStateQuery
2022-10-13 10:00:59 +02:00
Konrad Lalik
5ddf7b85df
Alerting: Alert list performance improvements (#56247)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2022-10-11 16:24:01 +02:00
George Robinson
802d67eeca
Alerting: Support values in notification templates (#56457)
We have received a lot of feedback regarding the ValueString in alert notifications. Perhaps one of the most frequent complaints about ValueString is that it is difficult to read because it contains a lot of information, and the information is shown as a JSON-like string. Users have often asked how it can be templated and the answer is that it can't.

Until now users have been able to add custom annotations to their alert rules which contains values via the $values variable added in previous versions of Grafana. However, these custom annotations must be added for each of the user's alert rule, instead of once in a template that all of their alerts can be notified via.

This commit adds then the much requested feature to support values in notification templates. Users can then create a single template that prints the annotations, labels and values of their alerts in a format of their choice!
2022-10-10 13:40:21 +01:00
Sonia Aguilar
3990d2b2b3
Alerting/handle 0s last notify duration notification error feedback (#56541)
* Show '-' in notifiers table when lastNotifyAttemptDuration is 0s

* Add tests for no attempt (lastNotifyAttempt null date) and no last duration (lastNotifyAttemptDuration 0s)
2022-10-07 17:07:02 +02:00
Konrad Lalik
d945091ff1
Alerting: Fix evaluation interval validation (#56115)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2022-10-07 15:01:47 +02:00
Sonia Aguilar
a18a3d7628
Show No attempts instead of OK when there is no attempt for notifier (#56494) 2022-10-07 11:41:18 +02:00
Sonia Aguilar
01526d9053
Add error details in notification error feedback tooltip (#56472) 2022-10-06 16:20:07 +02:00
Sonia Aguilar
d8d8ef1aff
Alerting: Add Notification error feedback on contact points view (#56225)
* Alerting: Receivers integrations error feedback: WIP - Add notifications error at the top right on contact points view (#52390)

* Add interfaces for contact point errors

* [WIP] Create fake response for the new service to get contact point errors

* [WIP] Create action an reducer for the new service to get contact point errors

* Fetch fetchContactPointStates in Contact Points tab every 20s and when AM changes

* [WIP] Use store to get error count

* Show number of integrations errors at the contact points main view

* Add warning icon and refactor styles using getStyles

* Change lastNotify type to string instead of DateTime

* Use Stack component from experimental library when it is possible

* Alerting: Add receivers error feedback in contact point list (#52524)

* Refactor types for contact points state

* Add health column in ReceiversTable in case error state is available for this AM

* Create method for converting contact points state DTO to the FE type used in Redux store

* Update types

* Fix indexOf criteria getting integration type

* Change type name to integrationType name

* Change new components to be named functions to follow the FE style-guide

* Fix typos

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>

* Decouple ReceiversTable from Redux state

* Create private useContactPointsState hook to simplify code in ReceiversTable component

* Add tests for getIntegrationType and refactor the method to validate the name

* Add tests for contactPointsStateDtoToModel method

* Remove unnecessary check

* Use Badge compoment for health status in contact point list

* Create new method parseIntegrationName to simplify getting types and index from integration name

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>

* Alerting: Show integrations error feedback when expanding contact point in list (#52920)

* Use DynamicTable for rendering list of contact points and make them expandable if error status is available

* Render expanded content for contact points integrations

* Style and format last notify column

* Add send resolve column to the integration details

* Fix receiver id for DynamicTable row

* Update clock icon in integration state

* Fix tests

* Add PR review sugestions

* Alerting/integrations error feedback handle null dates in response 3 (#55659)

* Update fake response with lastNotify ISO8601 formatted, to be aligned with latest BE changes

* Update LastNotify in ReceiversTable component to handle null date

* Alerting/integrations error feedback handle 404 state not available (#55803)

* Create fetchContactPointsState using the future contact point url and handle 404 error

* Add contact points state tests

* Alerting/update receivers dto naming 2 (#56201)

* Update NotifierStatus naming and fix sendResolved not being updated in UI

* Return always empty ContactPointsState array when catching an error in the request response

* Fix test

* Show notification status only in notifications main view

* Calculate total error count from the final contactPointsState object, to avoid errors when duplicated entries are returned wronly in the response

* Add PR review suggestions

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2022-10-06 15:23:38 +02:00
Leo
b0ba94f316
Navigation: Use page nav in silence and policy notification pages (#55753)
* use pagenav in mutetiming form

* use pagenav in alert policy page

* use pageNav for Silence page

* added missing breadcrumbs
2022-10-06 11:18:43 +02:00
Gilles De Mey
87cba8836f
Alerting: Expressions pipeline redesign (#54601) 2022-10-05 14:35:15 +02:00
Leo
4eea5d5190
Navigation: Use navid and pagnav in alert rules pages (#55722)
* add navid and pagenav to edit/add/view alert rules

* move ruleeditor smaller component to its own file

* fix form alignments with new layout

* fixed broken test

* reuse AlertingPageWrapper
2022-10-04 14:36:36 +02:00
Virginia Cepeda
0d348dc0b1
Alerting: log alert rule creation and clicking state filters (#55698)
* Add messages for new trackings

* Track clicking on alert state filters

* Track creating alert rule from panel

* Track creating alert rule from scratch

* Track on success and when cancelling a rule creation
2022-10-03 11:00:19 -03:00
gotjosh
501e921b2b
Alerting: Allow created by to be manually set when there's no creator for silences (#55952)
* Alerting: Allow created by to be manually set when there's no creator

Grafana has a mode that allows unauthenticated interaction, typically the created by field of a silence is inferred from the current logged user. When this is not present, the field is left black and thus the silence creation fails.

This allows us to set the created by when we is not possible to infer it from the current user.

* Show created by input field only if user is not logged

* Add test for new logic with createdBy input field

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2022-10-03 10:56:27 +02:00
Laura Fernández
fca252e7dc
A11y: enable rule jsx-a11y/alt-text (#55832)
* Enable jsx-a11y/alt-text rule

* Fix errors

* Fix tests

* Enable jsx-a11y/alt-text rule after solving merge conflict

* Delete unused import

* Modify files according to the reviewer's comments

* Revert test changes and update snapshot

* tweaks to image alt names

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-10-03 09:27:04 +01:00
aimuz
bf07deb992
Fix showWhen failure (#55337)
When a contact point configuration field has `showWhen` set on it, the contact point form was not correctly displaying. This change fixes that so that forms display correctly.
2022-09-29 15:00:49 +08:00
Ashley Harrison
422b22a513
enable img-redundant-alt rule (#55833) 2022-09-27 10:26:32 -04:00
kay delaney
4d1b422b25
Chore: Remove empty and leftover files (#55757) 2022-09-26 11:33:07 -04:00
Gilles De Mey
9aa61ddd0e
Alerting: Add threshold expression (#55102) 2022-09-26 16:05:44 +02:00
Sonia Aguilar
e714d750f2
Alerting: Character / allowed in dashboard folder names, but not in alert folder names (#54395)
* Refactor FolderPicker to functional componment and add dissalowSlashes as an optional prop

* Update DetailsStep component to use FolderPicker dissalowing slashes in folders

* Adds icon that links to the Github issue when showing slashes not allowed  warning

* Add test for slashed folders warning

* Fix merge conflicts with folder creation fix PR

* Move slashes filter to useRuleFolderFilter hook, and make folder warning an optional generic prop

* Apply PR review suggestions
2022-09-23 14:44:24 +02:00
Virginia Cepeda
003a1cdaa0
Alerting: log some basic user interactions (#55401)
* Log leaving rule group edit without saving

* Log filtering alert instances by label

Also debouncing the search to prevent sending too many log requests

* Log loading the Alert Rules list

* Move log messages to centralized location

* Add tests on log trackings

* Fix linting
2022-09-23 08:51:16 -03:00
Konrad Lalik
7114c51f9f
Alerting: Add alert preview to cloud rules editor (#54950) 2022-09-23 10:05:08 +02:00
Konrad Lalik
4c4b758646
Alerting: Add templates autocomplete (#53655)
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2022-09-20 13:07:17 +02:00
Konrad Lalik
20e6e0d593
Alerting: Fix default query's data source when no default datasource specified (#55435) 2022-09-20 10:43:39 +02:00
Sonia Aguilar
e677afabdf
Use GrafanaAlertStateDecision.Error instead of Error string in RuleEditor test (#55385) 2022-09-19 15:04:24 +02:00
Torkel Ödegaard
2916b483eb
Update a few more pages to use navId instead of navModel from store (#55342) 2022-09-19 13:21:41 +02:00
kay delaney
64bbb7a7ce
Chore: Update and enforce usage of typed react-redux hooks (#55349)
* Chore: Update and enforce usage of typed react-redux hooks
2022-09-19 10:49:35 +01:00
George Robinson
4a1ca7e32f
Alerting: Change default alert state to Error on execution error or timeout (#55345) 2022-09-19 10:42:04 +01:00
Sonia Aguilar
7a6f452f13
Alerting/fix folder creation dropdown (#54687)
*Refactor FolderPicker to be functional component.

* Add customAdd optional property to FolderPicker so we can add new values in the alert view but keeping the same behaviour in the rest of the ui.

* Add test for being able to add folder when no folders found.
2022-09-14 14:04:36 +02:00
Ashley Harrison
031c186617
convert AlertRuleList test to RTL (#55045) 2022-09-13 09:29:29 +01:00
kay delaney
4c7732ad17
Chore: Upgrade Typescript to 4.8.2 (#54901)
* Chore: Upgrade typescript to 4.8.2
2022-09-09 16:17:58 +01:00
Virginia Cepeda
d3a70de962
Alerting: Use original query time range when duplicating a query (#54805)
* Use original query time range when duplicating it

If there's no time range, then assign a default one

* Add tests

* Import default relative time range from common lib
2022-09-09 08:34:38 -03:00
Konrad Lalik
933ec4817f
Alerting: Change the rule yaml data to reflect Prom-based rule format (#54520) 2022-09-08 12:52:36 +02:00
Laura Fernández
066710a7bc
Navigation: use navId and pageNav on Alerting - Contact Points page (#54451) 2022-09-06 16:25:07 +02:00
kay delaney
a70aba1384
Chore: Update slate and related packages (#54566)
* Chore: Update slate and related packages
2022-09-06 15:23:48 +01:00
Josh Hunt
139705611a
Chore: Remove remaining IconName type assertions (#54658)
* Chore: Remove remaining IconName type assertions

* fix lints
2022-09-06 09:15:36 +01:00
Michael Musenbrock
78833b4a47
Alerting: Display alert's 'Created' time in local time instead of UTC (#54414)
Signed-off-by: Michael Musenbrock <michael.musenbrock@gmail.com>

Signed-off-by: Michael Musenbrock <michael.musenbrock@gmail.com>
2022-09-05 16:36:52 +02:00
Torkel Ödegaard
11de1dfe40
TopNav: Plugin page layouts / information architecture (#53174)
* Change nav structure when topnav is enable to do initial tests with new information architecture

* Support for nested sections

* Updated

* sentance case

* Progress on plugin challange

* Rewrite to functional component

* Progress

* Updates

* Progress

* Progress on things

* missing file

* Fixing issue with runtime, need to use setter way to set component exposed via runtime

* Move PageLayoutType to grafana/data

* Fixing breadcrumb issue, adding more tests

* reverted backend change

* fix recursive issue with cleanup
2022-09-05 14:56:08 +02:00
Ashley Harrison
8d489dfd9b
Navigation: Landing pages behind feature toggles (#54576)
* super quick attempt

* feature toggle everything

* only construct alertNav if there are navChildren

* fix toggle name

* plugin landing pages poc

* add apps route + put behind feature toggle

* use toIconName

* rename to NavLandingPage

* feature toggle new routes

* don't modify GetServerAdminNode

* some fairly hacky code to check if the plugin has a root page

* remove trailing slash
2022-09-05 10:07:13 +01:00
Josh Hunt
6b197f3fa9
Chore: Use react-highlight-words types (#54627) 2022-09-02 16:36:44 +01:00
Matthew Jacobson
d706320d0a
Alerting: Fix UI bug when setting custom notification policy group by (#54607)
Custom values were not being displayed in the multiselect for notification policy `Group by` even though
they were correctly being saved.
2022-09-01 19:06:42 -04:00
Giordano Ricci
c68d7f1e35
Correlations: Add CorrelationSettings Page (#53821)
* GrafanaUI: add option to close DeleteButton on confirm click

* add datasource readOnly info to frontend settings

* move isTruthy utility type guard

* add generic non-visualization table component

* Add correlations settings page

* add missing readOnly in mock

* Fix typo

* avoid reloading correlations after add/remove

* use DeepPartial from rhf

* validate source data source

* fix validation logic

* fix navmodel test

* add missing readonly property

* remove unused styles

* handle multiple clicks on elements

* better UX for loading states

* fix remove handler

* add glue icon
2022-08-26 11:27:28 +01:00
Ashley Harrison
211c9991c5
Navigation: Add responsive behaviour to ToolbarButtonRow (#53739)
* hacky first attempt

* slightly cleaner...

* behaviour mostly working...

* remove unnecessary wrapper

* css tweaks

* much cleaner implementation with intersectionobserver

* set style props directly on children

* separate story, integrate when toggle is off

* improve story, integrate when toggle is on

* remove styles from DashNavTimeControls

* mock IntersectionObserver for all unit tests

* prettier

* don't use dropdown anymore

* add some basic documentation

* add right alignment to scenes toolbarbuttonrow

* just use the react children api to prevent duplicating children
2022-08-24 11:19:36 +01:00
Ashley Harrison
b6835ef87d
convert TestRuleResult to RTL (#53953) 2022-08-19 15:00:53 +01:00
Gilles De Mey
0523eba2a9
Alerting: Read group details before saving (#53586) 2022-08-17 11:56:54 +02:00
Gilles De Mey
68f6ae5de1
Alerting: Hide "no rules" message when we are fetching from data sources (#53778) 2022-08-17 11:54:51 +02:00
Konrad Lalik
f3085b1cac
Alerting: Improve Mimir AM interoperability with Grafana (#53396) 2022-08-16 16:01:57 +02:00
Gilles De Mey
fb93b60fcc
Alerting: Support for re-ordering alert rules in a group (#53318)
Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
2022-08-16 14:42:02 +02:00
Sonia Aguilar
f416651842
Show alerting availability in data source details (#53391)
* Show alerting availability in data source details

* Show tooltip info in data source dropdown when creating an alert

* return earlier in HeaderExtras component

* Use getDataSourceSrv().getInstanceSettings instead of getDataSourceSrv().get to simplify

* Make information icon clickable and open a new window with documentation url
2022-08-12 15:32:07 +02:00
Gilles De Mey
e9980a9bb8
Alerting: Adds interval and For to alert rule details (#53211) 2022-08-11 18:49:21 +02:00
Alex Ratner
fecf4c41ad
Dashboard: Spelling corrections in end-user visible dialogs (#53340) 2022-08-09 10:19:30 +02:00
Gilles De Mey
f0594ebace
Alerting: Fix alert detail layout issue (#53256) 2022-08-08 16:57:34 +02:00
Ashley Harrison
f1295e4bd0
Chore: Update version of @grafana/eslint-config (#53403)
* use let/const over var

* use new version of @grafana/eslint-config
2022-08-08 15:19:15 +01:00
Gilles De Mey
ca2b97b095
Alerting: Adds support for editing group details for Grafana managed rules (#53120) 2022-08-04 11:39:28 -04:00
Gilles De Mey
b7e11358cf
Alerting: Fix crash when viewing alert group without interval (#53166) 2022-08-03 08:22:52 +02:00
Konrad Lalik
f877f79bbc
Alerting: Show evaluation interval global limit warning (#52942)
Co-authored-by: George Robinson <george.robinson@grafana.com>
2022-08-01 15:01:14 +02:00
Konrad Lalik
54f2c056f5
Alerting: Configure alert manager data source as an external AM (#52081)
Co-authored-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com>
Co-authored-by: gotjosh <josue.abreu@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2022-08-01 10:20:43 +02:00
Gilles De Mey
9332fb65a9
Alerting: Allow testing provisioned contact points (#52824) 2022-07-28 10:03:28 +02:00
Gilles De Mey
a1c6147374
Alerting: Group alert state history by labels and allow filtering (#52784) 2022-07-26 17:00:04 +02:00
Konrad Lalik
0507b3564f
Alerting: Fix alert panel instance-based rules filtering (#52583) 2022-07-22 12:52:56 +02:00
Konrad Lalik
8ce9f2c936
Alerting: Add subpath to the folder edit and permission url (#52399) 2022-07-22 11:20:28 +02:00
Scott Lepper
de956fc3d8
Core code editor/builder components (#52421)
* migrate experimental to core grafana - update refs

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2022-07-20 12:50:08 -04:00
Ezequiel Victorero
0633840777
GrafanaUI: Add success state to ClipboardButton (#52069)
* User Experience: apply the same pattern feedback for all copy to clipboard buttons

* add copy icon to all ClipboardButton use cases

* Change primary color for copy to clipboard in create token

* Add success button variant

* Remove copy confirmation from TableCellInspectModal because it's in the base component now

* Design tweaks to copy confirmation

 - Only change the icon to tick to avoid the button changing size
 - Change button to success green
 - Only show copy confirmation state for 2 seconds

* revert TabelCellInspectModal text button back

* revert accidental change to ShareLink

Co-authored-by: joshhunt <josh@trtr.co>
2022-07-20 10:33:46 +01:00
Peter Holmberg
e74c2390de
Alerting: Prevent evaluation if "for" shorter than "evaluate" (#51797)
Co-authored-by: Armand Grillet <armand.grillet@outlook.com>
2022-07-19 10:30:26 +02:00
Konrad Lalik
169a1c5b0f
Use non-blocking way of fetching ruler api availability (#52102)
Co-authored-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-07-13 11:50:20 +02:00
Konrad Lalik
e46ee78bed
Alerting: Add default input parameters for expressions (#51810) 2022-07-12 11:50:58 +02:00
Matthew Jacobson
434e94ef2b
Alerting: Update default route groupBy to [grafana_folder, alertname] (#50052)
* Alerting: Update default route groupBy to [grafana_folder, alertname]

Default group by for new routes and migrations is now [grafana_folder, alertname]
2022-07-11 12:24:43 -04:00
Joe Blubaugh
d99a7334d5
Alerting: Fix RegExp matchers in frontend for Silences and other previews. (#51726) 2022-07-07 16:06:25 +08:00
Torkel Ödegaard
1e85a6f4fd
TopNav: New page layouts (#51510)
* First stab at new page layouts behind feature toggle

* Simplifying PageHeader

* Progress on a new model that can more easily support new and old page layouts

* Progress

* rename folder

* Progress

* Minor change

* fixes

* Fixing tests

* Make breadcrumbs work

* Add tests for old Page component

* Adding tests for new Page component and behavior

* fixing page header test

* Fixed test

* AppChrome outside route

* Renaming folder

* Minor fix

* Updated

* Fixing StoragePage

* Fix for banners

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2022-07-06 17:00:56 +02:00
Gilles De Mey
d63ffa314e
Alerting: Fix normalization of alert states for panel annotations (#51637)
A bug introduced by #49259 would crash the annotations view of a panel with a linked alert rule. States are now normalized so crashes won't occur and the base state is used instead.
2022-06-30 10:46:54 -04:00
Gilles De Mey
268ee678b3
Alerting: Adds visual tokens for templates (#51376) 2022-06-30 16:19:59 +02:00
Gilles De Mey
a1fb73c503
Alerting: Adds contact point template syntax highlighting (#51559) 2022-06-30 14:01:02 +02:00
Konrad Lalik
117bac71f5
Alerting: Use folders' RBAC permission to control rules actions (#51434)
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
2022-06-30 13:00:29 +02:00
Ashley Harrison
2a6b32598d
Chore: some low-hanging type assertion fruit (#51618)
* some low-hanging type assertion fruit

* results
2022-06-30 10:40:00 +01:00
Gilles De Mey
97c9b25d44
Alerting: Skip the default data source if incompatible (#51452) 2022-06-28 10:05:53 +02:00
Patrick Baus
26424260ca
Alerting: Use relative path for flow chart image (#51409) 2022-06-27 11:19:04 +02:00
Yuriy Tseretyan
4d02f73e5f
Alerting: Persist rule position in the group (#50051)
Migrations:
* add a new column alert_group_idx to alert_rule table
* add a new column alert_group_idx to alert_rule_version table
* re-index existing rules during migration

API:
* set group index on update. Use the natural order of items in  the array as group index
* sort rules in the group on GET
* update the version of all rules of all affected groups. This will make optimistic lock work in the case of multiple concurrent request touching the same groups.

UI:
* update UI to keep the order of alerts in a group
2022-06-22 10:52:46 -04:00
Konrad Lalik
765b995b1b
Alerting: Alert rules pagination (#50612) 2022-06-22 11:33:39 +02:00
Josh Hunt
98132fc7dc
Remove as any from requireActual usage (#51182) 2022-06-21 17:48:38 +01:00
Gilles De Mey
a37b868da7
Alerting: Provisioning UI (#50776)
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2022-06-20 10:55:12 -04:00
Gilles De Mey
6a1b8693e0
Alerting: Fix alert rule page crashing when datasource contained URL unsafe characters (#51105)
Any Prometheus datasources that contained URL unsafe characters would crash the application since it fails to find the datasource from the Grafana bootData.
2022-06-20 15:37:22 +02:00
Konrad Lalik
87bf0f4315
Alerting: Fix alert instances filtering for prom rules (#50850) 2022-06-20 15:37:05 +02:00
Gilles De Mey
ab89fa0853
Alerting: Fix automatically select newly created folder option (#50949) 2022-06-20 14:48:57 +02:00
Konrad Lalik
9d0e7564ed
Alerting: Fix removal of notification policy without labels matchers (#50678) 2022-06-15 10:59:37 +02:00
Ashley Harrison
803473f479
Chore: Enable useUnknownInCatchVariables for stricter type checking in catch blocks (#50591)
* wrap a bunch of errors

* wrap more things!

* fix up some unit tests

* wrap more errors

* tiny bit of tidy up
2022-06-15 08:59:29 +01:00
Gilles De Mey
5539bb4578
Alerting: use "find" to wait for expression editor to load (#50602) 2022-06-10 14:58:15 +02:00
Jack Westbrook
ccd75d72f8
Chore: Remove react-testing-lib from bundles (#50442)
* refactor(selectoptiontest): move helper function out of grafana/ui so testing-lib isn't in bundle

* test(selectoptionintest): update import location of helper function

* test(amroutes): put back missing selectOptionInTest helper

* test(selectoptionintest): clean up remaining file imports / exports

* test(queryeditor): fix failing import

* refactor(grafana-ui): reuse selectOptionInTest in SelectBase test
2022-06-09 11:10:48 +02:00
Peter Holmberg
06bbf870da
Alerting: Tidy up input fields for name, folder and group (#50432)
* aligned fields moved labels

* reduce width for labels inputs
2022-06-09 10:51:37 +02:00
brendamuir
e0e76f0252
Fixes term Grafana Alerting (#50404) 2022-06-08 13:35:37 +02:00
Konrad Lalik
7a56097b13
Alerting: Fix folder filtering for existing alert rule (#50156) 2022-06-03 15:09:27 +02:00
Konrad Lalik
573e121a67
Alerting: Prevent query wrapper recreation on drag/drop (#50142) 2022-06-03 12:07:33 +02:00
Konrad Lalik
b06235de28
Alerting: Filter folders based on users' permissions (#49698) 2022-06-02 17:06:07 +02:00
Gilles De Mey
51dcac4c34
Alerting: Fix alert creation form layout when errors occur (#50084) 2022-06-02 16:19:13 +02:00
Matthew Jacobson
ace5b2058d
Alerting: Fix notification policy "Override grouping" form save (#50031) 2022-06-02 13:45:21 +02:00
Konrad Lalik
9da41140aa
Alerting: Fix external alertmanager duplication (#49980)
* Fix external alertmanager duplication

* Add tests
2022-06-01 15:38:23 +02:00
Konrad Lalik
63303eb4ba
Alerting: Re-render panel's tabs on variables change (#49893) 2022-06-01 13:03:33 +02:00
Gilles De Mey
82e9f4e7e7
Alerting: do not overwrite existing alert rule condition (#49920) 2022-06-01 11:28:21 +02:00
kay delaney
d590012a18
UI/Card: Remove deprecated props (#49885) 2022-05-31 12:02:20 +01:00
Gilles De Mey
e04f84fd1b
Alerting: fix layout with long words / numbers (#49882) 2022-05-31 12:33:43 +02:00
kay delaney
70980fbb44
ClipboardButton: Simplify callbacks (#49847) 2022-05-30 18:38:52 +02:00
Konrad Lalik
20a83ba14f
Narrow the alert condition picker (#49570) 2022-05-26 11:46:54 +02:00
Peter Holmberg
7bcc151ae6
Alerting: Add notification policy flow chart (#49405)
* setup component add images

* add name to theme

* add root route info box

* remove unsused

* styling
2022-05-24 10:57:26 +02:00
Konrad Lalik
3ad1263097
Alerting: Use RadioButtonList component to select alert condition (#49422) 2022-05-24 10:51:43 +02:00
Yuriy Tseretyan
3dfafbadef
Alerting: Fix access to alerts for viewer with editor permissions when RBAC is disabled (#49270)
* Add folder edit permission for users with Viewer role
* relax permissions required to create an alert when RBAC is disabled
2022-05-23 09:58:20 -04:00
Joe Blubaugh
1cc034d960
Alerting: Add a "Reason" to Alert Instances to show underlying cause of state. (#49259)
This change adds a field to state.State and models.AlertInstance
that indicate the "Reason" that an instance has its current state. This
helps us account for cases where the state is "Normal" but the
underlying evaluation returned "NoData" or "Error", for example.

Fixes #42606

Signed-off-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-05-23 16:49:49 +08:00
Yuriy Tseretyan
258b3ab18b
Alerting: Fix RBAC actions for notification policies (#49185)
* squash actions "alert.notifications:update", "alert.notifications:create", "alert.notifications:delete" to "alert.notifications:write"
* add migration
* update UI to use the write action
* update docs
* changelog
2022-05-20 10:55:07 -04:00
Yuriy Tseretyan
f7f2253072
Alerting: Fix anonymous access to alerting (#49203)
* introduce a fallback handler that checks that role is Viewer.
* update UI nav links to allow alerting tabs for anonymous user
* update rule api to check for Viewer role instead of SignedIn when RBAC is disabled
2022-05-19 09:22:26 -04:00
Gilles De Mey
0ae8e3bd4e
Alerting: Fix notification policies label matchers layout (#49159) 2022-05-18 15:01:56 +02:00
Konrad Lalik
43ab0c1f95
Alerting: Fix Loki buildinfo request error (#49073)
* Skip buildinfo fetching for Loki data sources

* Fix and add tests

* Fix linter

* Improve typings

* Improve Loki's buildinfo notice

* Fix rename, improve prom app display name
2022-05-18 10:45:26 +02:00
Gilles De Mey
0a44fbdd42
Alerting: Do not serve alerting images from root (#49022)
Manually tested with serve_from_sub_path = true and a custom pathUrl
2022-05-18 09:54:24 +02:00
Gilles De Mey
4b4f996fa3
Alerting: refactor unified alerting promotion to deprecation (#49019) 2022-05-17 17:30:41 +02:00
matt abrams
522a31c479
Build: Change names to PascalCase to match (#48949) 2022-05-16 15:26:14 +02:00
Ieva
f256f625d8
AccessControl: Enable RBAC by default (#48813)
* Add RBAC section to settings

* Default to RBAC enabled settings to true

* Update tests to respect RBAC

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-16 12:45:41 +02:00
Gilles De Mey
fa37c6c9d3
Alerting: Allow disabling override timings for notification policies (#48648) 2022-05-16 11:46:14 +02:00
Sofia Papagiannaki
bb66c03f9a
Alerting: modify prometheus endpoints for proxying using the datasource UID (#48052)
* Modify prometheus endpoints to expect the data source UID

* Update frontend
2022-05-06 15:05:02 -04:00
Gilles De Mey
2d6ab03e4f
Alerting: automatically select last expression (#48787) 2022-05-06 15:39:24 +02:00
Konrad Lalik
ee8e125134
Alerting: Fix notification route removal (#48774)
* Fix notification route removal

* fix tests

Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
2022-05-06 09:34:10 +02:00
Sofia Papagiannaki
610247d52a
Alerting: modify ruler endpoints for proxying using the datasource UID (#48046)
* Modify ruler endpoints to expect the data source UID

* Update frontend

* Apply suggestion from code review
2022-05-05 14:58:32 +03:00
Konrad Lalik
65d7d466d7
Alerting: Improved RBAC for Alert managers (#48344)
* Initial support for grafana or cloud only alert managers

* Handle missing alert manager

* Refactor code, fix tests

* Fix redirect url

* Bring back the test

* Improve missing alert manager warning, add useAlertManagerSourceName tests

* Fix lint errors

* Rename alert manager hook

* Refactor alert manager label creation

* Improve warnings' messages

* Fix linter

* Fix warning condition in RuleEditor
2022-05-05 13:34:58 +02:00
Maria Alexandra
6e530d45bc
grafana/ui: Add default type="button" to <Button> (#48183) 2022-05-04 18:36:14 +02:00
Ashley Harrison
06d3c27bc1
Select: Portal menu by default (#48176)
* Remove menuShouldPortal from all <Select /> components

* fix unit tests

* leave menuShouldPortal as an escape hatch

* Fix import order
2022-05-04 15:12:59 +01:00
Gilles De Mey
e04d8fca7b
Alerting: correctly show all alerts in a folder (#48684) 2022-05-04 11:35:08 +02:00
Gilles De Mey
2d9d12380c
Alerting: updated alerting creation order (#48548) 2022-05-03 11:27:34 +02:00
Sofia Papagiannaki
3e752a0db1
Alerting: modify alertmanager endpoints for proxying using the datasource UID (#47978)
* Alerting: enable proxying alertmanager calls using the datasource UID

* Remove use of datasource ID from the API

* Update frontend
2022-04-29 10:25:22 +03:00
Gilles De Mey
9b95d77be9
Alerting: use a single move operation for alert rules (#48125) 2022-04-26 16:38:29 +02:00
Konrad Lalik
5f594addbf
Alerting: Fix folder permissions (#48189)
* Use the folder view permission in alerting

* Add tests
2022-04-26 15:57:00 +02:00
Josh Hunt
3c6e0e8ef8
Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00
Gilles De Mey
2713de2bd1
Alerting: fix alert creation interval layout bug (#48112) 2022-04-22 14:29:36 +02:00
Vardan Torosyan
a0553de8dd
Rename FGAC to RBAC in the codebase (#48051) 2022-04-21 14:31:02 +02:00
Ashley Harrison
d832bde270
Upgrade @testing-library/user-event to v14 (#47898)
* Update dependency @testing-library/user-event to v14

* everything is async...

* everything is async pt.2

* Fix cascader tests

* hack the yarn.lock file to remove the old version of @testing-library/dom

* some more fixes!

* MOAR FIXES

* more fixes

* remove a bunch of places where we're wrapping in act()

* down to 7 failing tests...

* Fix arrow tests

* Fix rest of NavBarItem tests

* Fix last tests

* Use {Enter} instead of {enter}

* Revert "Use {Enter} instead of {enter}"

This reverts commit e72453bb52.

* remove some unused act imports

* Fix LibraryPanelsSearch tests

* more stable test

* More consistent test...

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-04-21 13:15:21 +01:00
Joe Blubaugh
3d91047e6e
Alerting: Notification URL points to alert view page instead of alert edit page (#47752)
Before this change, notifications generated by the Grafana Alertmanager
pointed to '/alerting/:ruleID/edit'. This change instead points them to
the view path '/alerting/grafana/:ruleID/view'. The view page has a
better UX, including timeseries display. It's also where many alert
state improvements will land in the next few versions of Grafana.

Fixes #45301

Signed-off-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-04-20 21:43:55 +08:00
Gilles De Mey
be3f52abb1
Alerting: grafana managed group names (#47785) 2022-04-20 11:41:33 +02:00
Peter Holmberg
39d3c8afd7
Alerting: Fix issue with Slack contact point validation (#47559)
* secureFields and secureSettings

* revert channelIndex

* readd lost code

* use specific return

* register secure fields and use not hard coded index

* fix for determineReadOnly

* fix lint error

* fix test suite

Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
2022-04-20 09:40:57 +02:00
Konrad Lalik
785145c045
Alerting: FGAC bug bash fixes (#47873)
* Improve new alert and new silence buttons permission handling

* Prevent loading alert rules when no sufficient permissions provided

* Improve add and edit rule permissions

* Add new rule CTA button for non-editors

* Update mock

* Fix imports
2022-04-19 18:43:33 +02:00
Gilles De Mey
69eb6efd6e
Alerting: add confirmation modal for deleting notification policies (#47819) 2022-04-19 15:55:54 +02:00
Peter Holmberg
4570615afc
Alerting: Display alert instances instead of alert rules when creating silence (#47396)
* modify matchers util for instances

* filter alerts

* change label to include instances

* re add empty case
2022-04-19 15:08:19 +02:00
Joe Blubaugh
7d5cb170c6
Alerting: Sort StateHistoryItem after fetch instead of on render. (#47842)
PR #47674 attempted to sort a read-only managed async array. This change
moves the sort logic to the fetch code so sort happens once on fetch, to
a mutable array, rather than trying on each render for an immutable
array.

Signed-off-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-04-19 16:05:28 +08:00
Joe Blubaugh
516c8b60ee
Unified Alerting: Stable order for state history annotations (#47674)
This change sorts the State History list returned by the backend by the
id in addition to the timeEnd and time fields by which it is
already sorted. This results in a stable view of the State History
table.

Fixes #45873

Signed-off-by: Joe Blubaugh <joe.blubaugh@grafana.com>
2022-04-18 10:42:45 +08:00
Nathan Rodman
c63086822d
Alerting: Add FGAC to alerts tab in panel editor (#47732)
* add FGAC for alert panel tab

* add test for panel tabs

* Refactor condition

Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
2022-04-14 14:19:15 +02:00
Konrad Lalik
a30ab51550
Alerting: FGAC for alert rule view and edit page (#47441)
* Add permission check to the find route, add query not accessible warning for the view page

* Hide grafana or mimir rule buttons depending on user's permissions

* Add grafana and cloud read rules checking on the alert rules list view

* Improve missing data source handling, refactor edit and remove permissions handling

* Add tests for rule edit permissions

* PR feedback
2022-04-13 17:19:54 +02:00
Joe Blubaugh
51c98b182d
Unified Alerting: UI explains "match all" case in Notification Policies. (#47574)
This change makes it explicit in the UI that a notification policy with no matching labels matches all alerts that it processes. There are visual changes in both the Notification Policy editor, and in the Notification Policy table where matching columns are shown.

It's valid to have a notification policy with no label matchers attached. Such a policy matches all alerts sent to it. It's a common stumbling block for users. Where are all my alerts going?

Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
2022-04-12 10:42:17 +08:00
Gilles De Mey
7e844064a4
Alerting: fix collapsable toggle text regression (#47517) 2022-04-08 17:15:19 +02:00