Alerting: Add Triage feature toggle (#110326)

* Add state history config to frontend config object

* Add alertingTriage feature toggle

* Add Triage menu entry

* Add old state history config props for backward compatibility
This commit is contained in:
Konrad Lalik
2025-09-01 11:33:33 +02:00
committed by GitHub
parent f09f77ced4
commit 31114fb47c
13 changed files with 108 additions and 16 deletions
+15 -5
View File
@@ -93,12 +93,22 @@ type FrontendSettingsAnalyticsDTO struct {
Enabled bool `json:"enabled"`
}
type FrontendSettingsUnifiedAlertingStateHistoryDTO struct {
Backend string `json:"backend,omitempty"`
Primary string `json:"primary,omitempty"`
PrometheusTargetDatasourceUID string `json:"prometheusTargetDatasourceUID,omitempty"`
PrometheusMetricName string `json:"prometheusMetricName,omitempty"`
}
type FrontendSettingsUnifiedAlertingDTO struct {
MinInterval string `json:"minInterval"`
AlertStateHistoryBackend string `json:"alertStateHistoryBackend,omitempty"`
AlertStateHistoryPrimary string `json:"alertStateHistoryPrimary,omitempty"`
RecordingRulesEnabled bool `json:"recordingRulesEnabled"`
DefaultRecordingRulesTargetDatasourceUID string `json:"defaultRecordingRulesTargetDatasourceUID,omitempty"`
MinInterval string `json:"minInterval"`
StateHistory *FrontendSettingsUnifiedAlertingStateHistoryDTO `json:"stateHistory,omitempty"`
RecordingRulesEnabled bool `json:"recordingRulesEnabled"`
DefaultRecordingRulesTargetDatasourceUID string `json:"defaultRecordingRulesTargetDatasourceUID,omitempty"`
// Backward compatibility fields - deprecated
AlertStateHistoryBackend string `json:"alertStateHistoryBackend,omitempty"`
AlertStateHistoryPrimary string `json:"alertStateHistoryPrimary,omitempty"`
}
// Enterprise-only
+12
View File
@@ -348,6 +348,18 @@ func (hs *HTTPServer) getFrontendSettings(c *contextmodel.ReqContext) (*dtos.Fro
}
if hs.Cfg.UnifiedAlerting.StateHistory.Enabled {
frontendSettings.UnifiedAlerting.StateHistory = &dtos.FrontendSettingsUnifiedAlertingStateHistoryDTO{
Backend: hs.Cfg.UnifiedAlerting.StateHistory.Backend,
Primary: hs.Cfg.UnifiedAlerting.StateHistory.MultiPrimary,
}
if hs.Cfg.UnifiedAlerting.StateHistory.PrometheusTargetDatasourceUID != "" {
frontendSettings.UnifiedAlerting.StateHistory.PrometheusTargetDatasourceUID = hs.Cfg.UnifiedAlerting.StateHistory.PrometheusTargetDatasourceUID
}
if hs.Cfg.UnifiedAlerting.StateHistory.PrometheusMetricName != "" {
frontendSettings.UnifiedAlerting.StateHistory.PrometheusMetricName = hs.Cfg.UnifiedAlerting.StateHistory.PrometheusMetricName
}
// Populate deprecated fields for backward compatibility
frontendSettings.UnifiedAlerting.AlertStateHistoryBackend = hs.Cfg.UnifiedAlerting.StateHistory.Backend
frontendSettings.UnifiedAlerting.AlertStateHistoryPrimary = hs.Cfg.UnifiedAlerting.StateHistory.MultiPrimary
}