Commit Graph
25 Commits
Author SHA1 Message Date
Virginia CepedaandSonia Aguilar 7338164612 Alerting: Add alert instance picker (#67138)
* Add Preview template and payload editor to templates form

* Add TemplatePreview test and update css

* Preview errors for each template that is wrong

* Enable preview templating only for Grafana Alert Manager

* Use harcoded default payload instead of requesting it to the backend

* Update error response in the api definition

* Add spinner when loading result for preview

* Update api request followind DD changes

* Use pre instead of TextArea to render the preview

* Fix tests

* Add alert list editor

* Add start and end time for alert generator

* Add preview for data list added in the modal

* Update copies and move submit button in alert generator to the bottom

* Copy updates

* Refactor

* Use tab instead of button to preview

* Move payload editor next to the content

* Copy update

* Refactor

* Adress PR review comments

* Fix wrong json format throwing an exception when adding more data

* Use monaco editor for payload

* Only show text 'Preview for...'  when we have more than one define

* Fix some errors

* Update CollapseSection style

* Add tooltip for the Payload info icon explaining the available list of alert data fields in preview

* Set payload as invalid if it's not an array

* Fix test

* Update text in AlertTemplateDataTable

* Add separators to distinguish lines that belong to the preview

* Use harcoded default payload instead of requesting it to the backend

* Add alert instance picker

* Add rule search capability and cleanup

* Display alert instance extra information on hover

* Rebase and integrate with existing view

* Display folder under rule name

* Display unique labels for alert instances

* Remove unneeded interface

* Reset state after closing the modal

* Refactor useEffect and useMemo

* Move common code to variable

* Refactor to avoid setting filtered rules as state

* Disable instance selector button when there are errors in the payload

* Validate payload on button click

* Change warning text

* Add support for state filters in alertmanager alerts request

* Use RTK Query to fetch alert instances

* Address review comments

* Fix lint

---------

Co-authored-by: Sonia Aguilar <soniaaguilarpeiron@gmail.com>
2023-04-28 12:58:15 -03:00
Virginia Cepeda 329d940448 Alerting: fix condition to distinguish multiple datasources type in dropdown (#67065)
* Add function to check if a datasource is managing alerts

* Use helper function to get datasources that manage alerts
2023-04-21 14:27:39 -03:00
Virginia Cepeda 2991d4c213 Alerting: Fix creating a recording rule when having multiple datasources (#66415)
Fix creating recording rules when having multiple datasources
2023-04-13 11:58:59 +02:00
Virginia Cepeda f27326f7d9 Alerting: Choose a previous valid AM configuration in case of error (#65746)
* Add new property to AlertmanagerConfig type

* Implement fetching successfully applied configurations

Added method to fetch them from the API and its corresponding action and reducer

* Extract ConfigEditor as component to avoid code duplication

* Display dropdown with valid configs upon error and allow to save them

* Fix tests

* Refactor to call new endpoint using RTK

* Improve texts

* Apply suggested refactor

* Change constant casing

* Only show config selector for Grafana AM

* Remove ts-ignore

* Move code together for simplicity

* Remove invalid mock

* Update endpoint and types based on backend changes

* Rename property

* Rename alermanager config property from backend changes

* Disable editing old configurations

Due to the latest backend changes, we no longer will provide the option to edit previous AM configurations in a textearea.
Instead users will only be allowed to reset to a specific one with the same content. For this reason the textearea for old conf
igurations is disabled and a different form action (not submit) is executed on the "reset config" button. The updateAlertManage
rConfigAction is reset to its old functionality due to these changes.

* Add id to AlertManagerCortexConfig type

We'll need it to pass as a parameter to the new reset endpoint

* Add new endpoint for resetting AM configs to an old version

* Move the "Reset to selected configuration" button next to the drop-down

* Add relative offset to configurations
2023-04-05 15:13:33 -03:00
Virginia Cepeda 2b59d1abb6 Alerting: Improve query types usage to prevent ts-errors (#65238)
* Improve query types usage to prevent ts errors

* Detect whether a query's model is Prom or Loki using helper function

* Fix lint errors
2023-03-29 15:42:47 -03:00
Virginia CepedaandKonrad Lalik b90aed4fd7 Alerting: Improve showing nextEvaluationDate for rules (#65205)
* Improve showing nextEvaluationDate for rules

Co-Authored-By: Konrad Lalik <konradlalik@gmail.com>

* Improve imports and comments

---------

Co-authored-by: Konrad Lalik <konradlalik@gmail.com>
2023-03-22 14:02:08 -03:00
Virginia Cepeda 43bbe567e7 Alerting: Support filtering rules by multiple datasources (#64355)
* Support having a datasources array in the rules filter

* Fix tests

* Display a MultiplePicker for filtering datasources

* Fix tests

* Refactor as MultipleDataSourcePicker as FC

* Make select box wider

* Remove FC from component definition

* Display ds options in groups based on whether they manage/don't manage rules

* Change dropdown texts and add help info
2023-03-22 12:02:56 -03:00
Virginia Cepeda a1fc515c88 Alerting: Enable preview for recording rules (#63260)
* Create RecordingRuleEditor component

It reuses QueryEditor and propagates a few properties to allow to filter the visible datasources and customize what's shown in the editor header

* Set recording rules queries as a new state prop

Otherwise it would get mixed up with the alert rules queries when switching back and forth from this option. This also allows me to initialize these queries with the right datasource

* Show CloudRulesSourcePicker only for Loki/Mimir rules

As now we use the query editor for recording rules which already includes a datasource picker within

* Fix lint and tests

* Fix saving a recording rule

* Show expression when editing the recording rule

* Show query editor back for cloud rules

* Fix duplicated import

* Tweak after rebase

* Remove ts-ignore

* Refactor to use queries state instead of recordingRuleQueries

* Refacrtor RecordingRuleEditor to use ds QueryEditor

* Revert extra properties previously added to QueryEditor components

* Remove console.log

* Fix saving/editing a recording rule

* Fix tests

* Add margin to vizwrapper component
2023-03-22 09:21:15 -03:00
Virginia Cepeda 6b95b3f8aa Alerting: Display last & next rule eval date plus eval duration (#64767)
* Display last & next rule eval date plus eval duration

* Show next evaluation date in a humanized format

Full date still visible on hover

* Only show next evaluation column is group has an interval
2023-03-14 17:52:55 -03:00
Virginia Cepeda 93b32eec4b Alerting: fix users call 403 by calling /user instead of /users/{id} (#64544)
Fetch user data with calling /user endpoint

This avoids a permission error we were getting by calling /users/{id}
2023-03-10 09:56:01 -03:00
Virginia Cepeda 33f66e6350 Alerting: Show paused status in rules group accordion (#64068)
* Show paused status in group accordion

* Fix linting

* display number of paused alerts within normal label
2023-03-03 11:13:55 -03:00
Virginia Cepeda 2eba37b95b Alerting: Prevent resetting the form on evaluation group interval change (#63763)
Prevent resetting the form on evaluateEvery change
2023-02-27 09:54:34 -03:00
Virginia Cepeda a20d1eec32 Alerting: validate alert condition on saving rule (#61958)
* Validate alert condition on saving rule

* Remove unused const
2023-01-26 09:27:08 -03:00
Virginia Cepeda 3b2ec752fb Alerting: change context parameter type (#61197)
Change boolean value to string as the Faro API doesn't accept boolean types for the entries of the context object
2023-01-10 12:17:11 -03:00
Virginia Cepeda 7604360622 Alerting: Add info to alert rule creation metric (#61105)
Add extra info to alert rule creation metrics
2023-01-09 15:27:02 -03:00
Virginia Cepeda 115218b1ff Alerting: only track events for survey if user is not new (#61005)
* Only track events data if user is not new

To know this we evaluate the creation date to be older than two weeks

* Address PR comments
2023-01-09 14:41:03 -03:00
Virginia Cepeda e3805e1309 Alerting: Track events for rule creation/abortion (#59912)
* Track events for rule creation/abortion

These events will be sent to Rudderstack using the EchoSrv in order to be consumed from Intercom

* Change method names and send user_id

* Track validation errors

* Only track errors for rule creation
2022-12-14 11:50:15 -03:00
Virginia Cepeda e5cb1ceae0 Alerting: Suggest previously entered custom labels (#57783)
* [Alerting] - replace label inputs with dropdowns (#57019)

* Add AlertLabelDropdown component

It will be used to pick from or create new labels

* Adapt LabelsField component to use AlertLabelDropdown instead of inputs

* Add tests for LabelsField component

Plus a few other tests were adapted to work with the label dropdowns

* Use ref in component

* Fix showing placeholders in the label dropdowns

* Minor syntax change

* Remove unneeded import after rebase

* Display custom labels

When a label key is selected, its corresponding values are shown in the dropdown

* Add tooltip explaining where labels in the dropdowns come from

* Fix import of Stack component

* Avoid duplicated values

* Improvements based on review

* Display labels for currently selected datasource only

* Refactor AlertsField to allow to choose whether to suggest labels or not

* Suggest labels for NotificationStep and tests

* Don't suggest labels in TestContactPointModal

* [LabelsField] - refactor: get dataSourceName as a parameter

* [LabelsField] - extract common code into reusable components

* Display loading spinner while fetching rules

* LabelsField - refactor

Removing the suggest prop and the default dataSource 'grafana'. Instead, the component now relies on the dataSourceName param. If it's set it means we want to show suggestions so we fetch the labels, otherwise, if not set, we show the plain input texts without suggestions.

* Add test for LabelsField without suggestions

* Show custom labels for grafana managed alerts

When the dataSourceName in the NotificationsStep component has a null value, we can assume it's because we're dealing with grafana managed alerts. In that case we set the correct value.

* Fix tests after latest changes

Since we removed the combobox from the TestContactPoints modal, tests had to be adjusted

* Update texts

* initialize all new added inputs with empty data
2022-11-11 10:29:59 -03:00
Virginia Cepeda 97df6e682e [Alerting] - make rule groups the default view (#58271) 2022-11-07 09:44:20 -03:00
Virginia Cepeda c73b499ec5 [Alerting] Avoid invalid characters in copied rule expression (#57839)
* Avoid copying UTF8 BOM chars in rule expression

* Add comment
2022-10-28 15:40:55 -03:00
Virginia Cepeda 9eae793b5d Alerting: Remove the alert manager selection from the data source configuration (#57369)
* Remove alertmanager dropdown from datasource config

* Avoid sending alertmanagers from loki/prom config editors

* Add test

* Remove unneeded param
2022-10-25 10:53:20 -03:00
Virginia Cepeda 48f0f4bb91 Alerting: subscribe to Dashboard refresh interval for alert panels (#56347)
* Subscribe to Dashboard refresh interval for alert panels

* Add test

* Remove unused import

* Use useEffectOnce when obtaining dashboard
2022-10-06 12:02:19 -03: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
Virginia Cepeda 27f022283d JS Agent: remove user email and add session id (#55767) 2022-09-27 08:59:32 -03: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