diff --git a/main.go b/main.go index 97c297b..ea9396c 100644 --- a/main.go +++ b/main.go @@ -30,19 +30,19 @@ type receiver struct { } type payload struct { - Status string `json:"status"` - Alerts []alert `json:"alerts"` - GroupLabels map[string]interface{} `json:"groupLabels"` - CommonLabels map[string]interface{} `json:"commonLabels"` - CommonAnnotations map[string]interface{} `json:"commonAnnotations"` - ExternalURL string `json:"externalURL"` + Status string `json:"status"` + Alerts []alert `json:"alerts"` + GroupLabels map[string]string `json:"groupLabels"` + CommonLabels map[string]string `json:"commonLabels"` + CommonAnnotations map[string]string `json:"commonAnnotations"` + ExternalURL string `json:"externalURL"` } type alert struct { - Status string `json:"status"` - Labels map[string]interface{} `json:"labels"` - Annotations map[string]interface{} `json:"annotations"` - Fingerprint fingerprint `json:"fingerprint"` + Status string `json:"status"` + Labels map[string]string `json:"labels"` + Annotations map[string]string `json:"annotations"` + Fingerprint fingerprint `json:"fingerprint"` } type notification struct { diff --git a/silence.go b/silence.go index ffc23db..b5c5a6b 100644 --- a/silence.go +++ b/silence.go @@ -28,8 +28,8 @@ type matcher struct { } type silenceBody struct { - AlertManagerURL string `json:"alertmanagerURL"` - Labels map[string]interface{} `json:"labels"` + AlertManagerURL string `json:"alertmanagerURL"` + Labels map[string]string `json:"labels"` } func (rcv *receiver) handleSilences(w http.ResponseWriter, r *http.Request) { @@ -64,7 +64,7 @@ func (rcv *receiver) handleSilences(w http.ResponseWriter, r *http.Request) { for key, value := range sb.Labels { m := matcher{ Name: key, - Value: value.(string), + Value: value, IsRegex: false, IsEqual: true, }