Alerting: Fix recording rule export (#91405)
* Fix HCL export * Update rule export struct to support new optional fields * Omit `for` field in export API if empty
This commit is contained in:
@@ -258,15 +258,15 @@ type AlertRuleGroupExport struct {
|
||||
|
||||
// AlertRuleExport is the provisioned file export of models.AlertRule.
|
||||
type AlertRuleExport struct {
|
||||
UID string `json:"uid,omitempty" yaml:"uid,omitempty"`
|
||||
Title string `json:"title" yaml:"title" hcl:"name"`
|
||||
Condition string `json:"condition" yaml:"condition" hcl:"condition"`
|
||||
Data []AlertQueryExport `json:"data" yaml:"data" hcl:"data,block"`
|
||||
DashboardUID *string `json:"dashboardUid,omitempty" yaml:"dashboardUid,omitempty"`
|
||||
PanelID *int64 `json:"panelId,omitempty" yaml:"panelId,omitempty"`
|
||||
NoDataState NoDataState `json:"noDataState" yaml:"noDataState" hcl:"no_data_state"`
|
||||
ExecErrState ExecutionErrorState `json:"execErrState" yaml:"execErrState" hcl:"exec_err_state"`
|
||||
For model.Duration `json:"for" yaml:"for"`
|
||||
UID string `json:"uid,omitempty" yaml:"uid,omitempty"`
|
||||
Title string `json:"title" yaml:"title" hcl:"name"`
|
||||
Condition *string `json:"condition,omitempty" yaml:"condition,omitempty" hcl:"condition"`
|
||||
Data []AlertQueryExport `json:"data" yaml:"data" hcl:"data,block"`
|
||||
DashboardUID *string `json:"dashboardUid,omitempty" yaml:"dashboardUid,omitempty"`
|
||||
PanelID *int64 `json:"panelId,omitempty" yaml:"panelId,omitempty"`
|
||||
NoDataState *NoDataState `json:"noDataState,omitempty" yaml:"noDataState,omitempty" hcl:"no_data_state"`
|
||||
ExecErrState *ExecutionErrorState `json:"execErrState,omitempty" yaml:"execErrState,omitempty" hcl:"exec_err_state"`
|
||||
For model.Duration `json:"for,omitempty" yaml:"for,omitempty"`
|
||||
// ForString is used to:
|
||||
// - Only export the for field for HCL if it is non-zero.
|
||||
// - Format the Prometheus model.Duration type properly for HCL.
|
||||
@@ -275,7 +275,7 @@ type AlertRuleExport struct {
|
||||
Labels *map[string]string `json:"labels,omitempty" yaml:"labels,omitempty" hcl:"labels"`
|
||||
IsPaused bool `json:"isPaused" yaml:"isPaused" hcl:"is_paused"`
|
||||
NotificationSettings *AlertRuleNotificationSettingsExport `json:"notification_settings,omitempty" yaml:"notification_settings,omitempty" hcl:"notification_settings,block"`
|
||||
Record *AlertRuleRecordExport `json:"record,omitempty" yaml:"record,omitempty" hcl:"record"`
|
||||
Record *AlertRuleRecordExport `json:"record,omitempty" yaml:"record,omitempty" hcl:"record,block"`
|
||||
}
|
||||
|
||||
// AlertQueryExport is the provisioned export of models.AlertQuery.
|
||||
|
||||
Reference in New Issue
Block a user