diff --git a/pkg/apis/monitor/commalert.go b/pkg/apis/monitor/commalert.go index 9b143a7cab..344ba6331f 100644 --- a/pkg/apis/monitor/commalert.go +++ b/pkg/apis/monitor/commalert.go @@ -86,6 +86,8 @@ type CommonAlertUpdateInput struct { Channel []string `json:"channel"` // 通知接受者 Recipients []string `json:"recipients"` + // systemalert policy may need update through operator + ForceUpdate bool `json:"force_update"` } type CommonAlertDetails struct { diff --git a/pkg/monitor/models/commonalert.go b/pkg/monitor/models/commonalert.go index 46813bde77..77040afef6 100644 --- a/pkg/monitor/models/commonalert.go +++ b/pkg/monitor/models/commonalert.go @@ -706,9 +706,11 @@ func (alert *SCommonAlert) ValidateUpdateData( if err != nil { return data, errors.Wrap(err, "metric query error") } - if alert.getAlertType() == monitor.CommonAlertSystemAlertType { - return data, nil + forceUpdate, _ := data.Bool("force_update") + if !forceUpdate { + return data, nil + } } data.Update(jsonutils.Marshal(metricQuery)) err = data.Unmarshal(updataInput)