Files
grafana/public/app/features/alerting/unified/utils/labels.ts
T
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

21 lines
621 B
TypeScript

import { Labels } from '../../../../types/unified-alerting-dto';
import { Label } from '../components/rules/state-history/common';
export function labelsToTags(labels: Labels) {
return Object.entries(labels)
.map(([label, value]) => `${label}=${value}`)
.sort();
}
export function objectLabelsToArray(labels: Labels): Label[] {
return Object.entries(labels).map(([label, value]) => [label, value]);
}
export function arrayLabelsToObject(labels: Label[]): Labels {
const labelsObject: Labels = {};
labels.forEach((label: Label) => {
labelsObject[label[0]] = label[1];
});
return labelsObject;
}