* 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
* 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
* Fix action buttons label and placement in several views following standard and being consistent with the rest of the ui
* Update public/app/features/alerting/unified/components/mute-timings/MuteTimingForm.tsx
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* Fix secondary buttons to not have outline
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
YAML is an acronym and should be uppercased when used in texts.
Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
* WIP
* Add instance totals to combined rule. Use totals to display instances stats in the UI
* WIP
* add global summaries, fix TS errors
* fix useCombined test
* fix test
* use activeAt from rule when available
* Fix NaN in global stats
* Add no data total to global summary
* Add totals recalculation for filtered rules
* Fix instances totals, remove instances filtering from alert list view
* Update tests
* Fetch alerts considering filtering label matchers
* WIP - Fetch alerts appending state filter to endpoint
* Fix multiple values for state in request being applyied
* fix test
* Calculate hidden by for grafana managed alerts
* Use INSTANCES_DISPLAY_LIMIT constant for limiting alert instances instead of 1
* Rename matchers parameter according to API changes
* Fix calculating total number of grafana instances
* Rename matcher prop after previous change
* Display button to remove max instances limit
* Change matcher query param to be an array of strings
* Add test for paramsWithMatcherAndState method
* Refactor matcher to be an string array to be consistent with state
* Use matcher query string as matcher object type (encoded JSON)
* Avoind encoding matcher parameters twice
* fix tests
* Enable toggle for the limit/show all button and restore limit and filters when we come back from custom view
* Move getMatcherListFromString method to utils/alertmanager.ts
* Fix limit toggle button being shown when it's not necessary
* Use filteredTotals from be response to calculate hidden by count
* Fix variables not being replaced correctly
* Fix total shown to be all the instances filtered without limits
* Adress some PR review comments
* Move paramsWithMatcherAndState inside prometheusUrlBuilder method
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: Konrad Lalik <konrad.lalik@grafana.com>
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
* remove metadata for single folder listing
* extendTests
* remove ac metadata from dash and folder search results
* remove test
* remove one more test
* put ac metadata back for single folder API responses
* extend tests
* remove ac metadata from folder frontend object
* undo unneeded change
* PR feedback
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
---------
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
* Hide dashboard hint when dashboard already selected
* Disable panels of types other than graph and timeseries
* Add a test checking disabled panels
* Make all panels selectable
* Fix tests
* dirty dirty code for showing nested folders in folder view
refactor to NestedFolderItem
Update dashboard grid view to new types
update tests
REBASE OUT OF THIS BRANCH - joshhunt/star-by-uid merged into this
Squashed commit of the following:
commit d0f046ccd3d820575f58d9a60cfcedf5cbdb217d
Author: joshhunt <josh@trtr.co>
Date: Wed Feb 8 18:35:56 2023 +0000
undo async
commit abe2777a1fdb6418802102fbb1b6aca7ae4d8e66
Author: joshhunt <josh@trtr.co>
Date: Wed Feb 8 18:34:11 2023 +0000
Dashboards: Star dashboards by UID
add type for dashboard search dto
clean DashboardSearchItem type
simplify DashboardSearchHit type
remove unused properties from DashboardSearchHit
make uid non-optional
rename + move NestedFolderItem type to DashboardViewItem
clean up
* wip
* fix checkbox selection of nested folders
* show folder's parent correctly
* Add dashboard result kind
* don't render folder empty view in SearchView
* call nested folders api only if feature flag enabled
* remove unused import
* un-rename variable to reduce PR diff
* fix typo in comment
* fix order of pseudoFolders
* Fix General folder not showing in browse
* rename folder view tests
---------
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
* 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
* Set default query when changing data source or adding new alert query
* Set default query when creating new alert rule
* Set fefault query for cloud and recording rules
* Create hook for getting defaults in AlertRuleForm
* fixing tests
* Use conditionals with 'if' for more clarity and rename lazy to async
* Add loading indicator for default queries
* Fix tests
* Make newModel a sync method and fix tests error
* Use useAsync instead of useEffect for an async call
* Make the folder field read-only on the eval group modal
* Code cleanup
* Use useCombinedRuleNamespace to simplify groups fetching
* Fix groups filtering and label
* Revert go test changes, add folder button title
* Revert go changes
* Remove folder link when no url provided, fix messages
* Fix tests
* Fix lint
* Keybindings: No global keybindings on chromeless pages
* simplify condition
* Refactoring
* Align name and file
* Move logic into AppChrome
* minor fix
* Update Page.tsx
* Fixing test
* Fixed tests
* More fixes
* Fixed more tests
* Fixing final test
* Fixed search in old nav
* Add is_paused attr to the POST alert rule group endpoint
* Add is_paused to alerting API POST alert rule group
* Fixed tests
* Add is_paused to alerting gettable endpoints
* Fix integration tests
* Alerting: allow to pause existing rules (#62401)
* Display Pause Rule switch in Editing Rule form
* add isPaused property to form interface and dto
* map isPaused prop with is_paused value from DTO
Also update test snapshots
* Append '(Paused)' text on alert list state column when appropriate
* Change Switch styles according to discussion with UX
Also adding a tooltip with info what this means
* Adjust styles
* Fix alignment and isPaused type definition
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
* Fix test
* Fix test
* Fix RuleList test
---------
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
* wip
* Fix tests and add comments to clarify AlertRuleWithOptionals
* Fix one more test
* Fix tests
* Fix typo in comment
* Fix alert rule(s) cannot be paused via API
* Add integration tests for alerting api pausing flow
* Remove duplicated integration test
---------
Co-authored-by: Virginia Cepeda <virginia.cepeda@grafana.com>
Co-authored-by: gillesdemey <gilles.de.mey@gmail.com>
Co-authored-by: George Robinson <george.robinson@grafana.com>
* Use suggested value for uid
* update the snapshot
* use __expr__
* replace all -100 with __expr__
* update snapshot
* more changes
* revert redundant change
* Use expr.DatasourceUID where it's possible
* generate files
* Fix recording rules form steps not showing alert information
* Fix docs about creating cloud and recording rules
* Update docs with suggested changes
* Add AsyncVirtualizedSelect component in grafana-ui
* Slice FolderPicker results to 1k and virtualize list using AsyncVirtualizedSelect
* Group list in alert form: Use AsyncSelect and slice results to 1000
* Virtualize and slice always in FolderPicker: set default sliceResults value and let consumers change this value
* Always slice results in FolderPicker
* Limit folder results setting the limit in the api call instead slicing in the FE
* Remove warning about the limit in the Select label
* Fixed issue where the query editor of the previous ds sets default values on query passed to the query editor of the next ds.
* Fixed issue with changing data source for query in Alerting.
* Will apply default values from DS if available.
* Fix failing tests.
* fixed spell error.
* reverted getDefaultQuery call so it can be added in a separate PR.