* 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
* 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
* 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
* 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
* update FolderDTO to match backend struct
* hacky way to get folder page breadcrumbs working
* hacky way to get dashboard nested breadcrumbs working
* undo route changes, get url from folder
* fix breadcrumbs in dashboard settings
* add parent pages to navIndex
* adjust getRootSectionForNode to just return the parent of a leaf node
* undo changes to generated files
* undo changes to toggles_gen.go
* feature toggle dashboardInit code
* remove unnecessary code in home dashboard
* build navModel directly, don't use getNavModel
* don't need fallback here
* remove getLoadingNav since it's not used anymore
* don't need to hide tabs from breadcrumbs anymore
* use id to find dashboards tab
* 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
* refactor: remove unnecessary styling and adjust to button styling
* refactor: improve story
* refactor: use new default styling for border radius
* refactor: add missing pseudo classes and clean up
* refactor: repair disabled styling and add to story
* refactor: clean up and apply styles defined in figma
* refactor: set hover background in a pseudo-element
* refactor: unify large sizes
* refactor: add information for further use
* refactor: add comment
* refactor: comments and clean up import
* refactor: add changes after code review
* refactor: replace some bad example code in documentation
* refactor: update comment
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* refactor: add changes requested in review
* refactor: move deprecation warning
* refactor: replace padding
* refactor: remove local styling
* refactor: create separate stories for different examples
* refactor: change style of story
* refactor: replace absolute value by variable
* Update toggles_gen.go
---------
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
* 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>
* 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>
* 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
* Fix text
* Use subDays instead of addDays for substracting days
* Use alertmanager /alerts endpoint to show preview of instances affected by silence
* Fix debounce dependency, add no instances warning
* Rename silences preview component
* Fix the preview file name, use IsNulLDate to check the date
* Fix valid matchers condition
* Cleanup
* Remove unused code
* add modal scaffolding
* add some unit tests
* remove dummy api, add some TODO comments
* small test refactor
* another small test refactor
* fix unit tests due to aria-label/data-testid change
* 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>
* adds alertstatehistory backend config to grafanaBootData
* add alertStateHistory api
* show different ASH modal when using loki implementation
* group log lines by instance (unique set of labels)
Co-Authored-By: Konrad Lalik <konrad.lalik@grafana.com>
* render log lines for each instance
Co-Authored-By: Konrad Lalik <konrad.lalik@grafana.com>
* Add visual improvements to the log record of state changes
* Add values to log records
* compute common labels and show unique labels
* Add state changes visualization
* fix common labels extraction
* Code cleanup
* Add timespan-based log record view
* WIP
* scroll to timestamp - poc
* Use SortedVector for timestamp field
* add conditional accessor for frames
* update some of the log formats and styles
* Timestamp-based visualization with scrolling
* minor improvements
* Split Loki's state history viewer into multiple files
* Add memoization to prevent graph rerender on filter updates
* make chart size shrink when fewer instances
* style updates
* show warning when instances are hidden
* Add basic label-based filtering
* Improve label-based filtering
* Add regex validation
* Improve no instances message when everything was filtered out
* Update warning message
* Move timeline viewer to a separate file, refactor handling timeline pointer changes
* Remove unused component, add comments
* Fix test snapshot, fix type error
* adds tests for common.ts
* Add tests for converting log records into data frames
* Add basic component test, fix type guards
* Use a constant for timeseries limit
* Improve a11y, update component test
* Memoize AlertStateTag, migrate from deprecated ArrayVector
* Update public/app/features/alerting/unified/components/rules/state-history/common.ts
* Move helper hook into a separate file. Add Search input component
* Change the limit of visible time series on the timeline
* Add LogRecordViewer perf improvements, refactor timeline cursor events tracking
* Use callback to pass timeline refs
* Add grouping tests for the log record viewer
---------
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.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>