Alerting: Add config disabled_labels to disable reserved labels (#51832)
* Alerting: Add config disabled_labels to disable reserved labels [unified_alerting.reserved_labels] disabled_labels * Replace IsGrafanaFolderDisabled with more generic IsReservedLabelDisabled * Simplify SchedulerCfg by including UnifiedAlertingSettings
This commit is contained in:
@@ -82,6 +82,7 @@ type UnifiedAlertingSettings struct {
|
||||
// DefaultRuleEvaluationInterval default interval between evaluations of a rule.
|
||||
DefaultRuleEvaluationInterval time.Duration
|
||||
Screenshots UnifiedAlertingScreenshotSettings
|
||||
ReservedLabels UnifiedAlertingReservedLabelSettings
|
||||
}
|
||||
|
||||
type UnifiedAlertingScreenshotSettings struct {
|
||||
@@ -90,12 +91,22 @@ type UnifiedAlertingScreenshotSettings struct {
|
||||
UploadExternalImageStorage bool
|
||||
}
|
||||
|
||||
type UnifiedAlertingReservedLabelSettings struct {
|
||||
DisabledLabels map[string]struct{}
|
||||
}
|
||||
|
||||
// IsEnabled returns true if UnifiedAlertingSettings.Enabled is either nil or true.
|
||||
// It hides the implementation details of the Enabled and simplifies its usage.
|
||||
func (u *UnifiedAlertingSettings) IsEnabled() bool {
|
||||
return u.Enabled == nil || *u.Enabled
|
||||
}
|
||||
|
||||
// IsReservedLabelDisabled returns true if UnifiedAlertingReservedLabelSettings.DisabledLabels contains the given reserved label.
|
||||
func (u *UnifiedAlertingReservedLabelSettings) IsReservedLabelDisabled(label string) bool {
|
||||
_, ok := u.DisabledLabels[label]
|
||||
return ok
|
||||
}
|
||||
|
||||
// readUnifiedAlertingEnabledSettings reads the settings for unified alerting.
|
||||
// It returns a non-nil bool and a nil error when unified alerting is enabled either
|
||||
// because it has been enabled in the settings or by default. It returns nil and
|
||||
@@ -274,6 +285,15 @@ func (cfg *Cfg) ReadUnifiedAlertingSettings(iniFile *ini.File) error {
|
||||
uaCfgScreenshots.UploadExternalImageStorage = screenshots.Key("upload_external_image_storage").MustBool(screenshotsDefaultUploadImageStorage)
|
||||
uaCfg.Screenshots = uaCfgScreenshots
|
||||
|
||||
reservedLabels := iniFile.Section("unified_alerting.reserved_labels")
|
||||
uaCfgReservedLabels := UnifiedAlertingReservedLabelSettings{
|
||||
DisabledLabels: make(map[string]struct{}),
|
||||
}
|
||||
for _, label := range util.SplitString(reservedLabels.Key("disabled_labels").MustString("")) {
|
||||
uaCfgReservedLabels.DisabledLabels[label] = struct{}{}
|
||||
}
|
||||
uaCfg.ReservedLabels = uaCfgReservedLabels
|
||||
|
||||
cfg.UnifiedAlerting = uaCfg
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user