Alerting: add mute timings provenance to config api (#50149)

This commit is contained in:
Jean-Philippe Quéméner 2022-06-03 19:32:31 +02:00 committed by GitHub
parent 5f1305d280
commit d2f3631a47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 16 deletions

View File

@ -627,8 +627,8 @@ func (c *GettableUserConfig) GetGrafanaReceiverMap() map[string]*GettableGrafana
}
type GettableApiAlertingConfig struct {
Config `yaml:",inline"`
Config `yaml:",inline"`
MuteTimeProvenances map[string]models.Provenance `yaml:"muteTimeProvenances,omitempty" json:"muteTimeProvenances,omitempty"`
// Override with our superset receiver type
Receivers []*GettableApiReceiver `yaml:"receivers,omitempty" json:"receivers,omitempty"`
}
@ -851,20 +851,6 @@ func checkTimeInterval(r *Route, timeIntervals map[string]struct{}) error {
return nil
}
// swagger:model
type MuteTimeInterval struct {
config.MuteTimeInterval
Provenance models.Provenance `json:"provenance,omitempty"`
}
func (mt *MuteTimeInterval) ResourceType() string {
return "muteTimeInterval"
}
func (mt *MuteTimeInterval) ResourceID() string {
return mt.MuteTimeInterval.Name
}
type PostableApiAlertingConfig struct {
Config `yaml:",inline"`

View File

@ -1,5 +1,10 @@
package definitions
import (
"github.com/grafana/grafana/pkg/services/ngalert/models"
"github.com/prometheus/alertmanager/config"
)
// swagger:route GET /api/v1/provisioning/mute-timings provisioning RouteGetMuteTimings
//
// Get all the mute timings.
@ -62,3 +67,17 @@ type MuteTimingPayload struct {
// in:body
Body MuteTimeInterval
}
// swagger:model
type MuteTimeInterval struct {
config.MuteTimeInterval
Provenance models.Provenance `json:"provenance,omitempty"`
}
func (mt *MuteTimeInterval) ResourceType() string {
return "muteTimeInterval"
}
func (mt *MuteTimeInterval) ResourceID() string {
return mt.MuteTimeInterval.Name
}

View File

@ -155,5 +155,12 @@ func (moa *MultiOrgAlertmanager) mergeProvenance(ctx context.Context, config def
}
config.TemplateFileProvenances = tmplProvs
mt := definitions.MuteTimeInterval{}
mtProvs, err := moa.ProvStore.GetProvenances(ctx, org, mt.ResourceType())
if err != nil {
return definitions.GettableUserConfig{}, nil
}
config.AlertmanagerConfig.MuteTimeProvenances = mtProvs
return config, nil
}