mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-15 22:45:57 +08:00
fix: missing receivers in json payload for legacy postableAlert (#7603)
This commit is contained in:
parent
c3fa7144ee
commit
ee70474cc7
@ -25,6 +25,25 @@ type postableAlert struct {
|
|||||||
Receivers []string `json:"receivers"`
|
Receivers []string `json:"receivers"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (pa *postableAlert) MarshalJSON() ([]byte, error) {
|
||||||
|
// Marshal the embedded PostableAlert to get its JSON representation.
|
||||||
|
alertJSON, err := json.Marshal(pa.PostableAlert)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unmarshal that JSON into a map so we can add extra fields.
|
||||||
|
var m map[string]interface{}
|
||||||
|
if err := json.Unmarshal(alertJSON, &m); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the Receivers field.
|
||||||
|
m["receivers"] = pa.Receivers
|
||||||
|
|
||||||
|
return json.Marshal(m)
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
alertsPath string = "/v1/alerts"
|
alertsPath string = "/v1/alerts"
|
||||||
routesPath string = "/v1/routes"
|
routesPath string = "/v1/routes"
|
||||||
|
35
pkg/alertmanager/legacyalertmanager/provider_test.go
Normal file
35
pkg/alertmanager/legacyalertmanager/provider_test.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package legacyalertmanager
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/SigNoz/signoz/pkg/types/alertmanagertypes"
|
||||||
|
"github.com/prometheus/alertmanager/api/v2/models"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestProvider_TestAlert(t *testing.T) {
|
||||||
|
pa := &postableAlert{
|
||||||
|
PostableAlert: &alertmanagertypes.PostableAlert{
|
||||||
|
Alert: models.Alert{
|
||||||
|
Labels: models.LabelSet{
|
||||||
|
"alertname": "test",
|
||||||
|
},
|
||||||
|
GeneratorURL: "http://localhost:9090/graph?g0.expr=up&g0.tab=1",
|
||||||
|
},
|
||||||
|
Annotations: models.LabelSet{
|
||||||
|
"summary": "test",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Receivers: []string{"receiver1", "receiver2"},
|
||||||
|
}
|
||||||
|
|
||||||
|
body, err := json.Marshal(pa)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to marshal postable alert: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Contains(t, string(body), "receiver1")
|
||||||
|
assert.Contains(t, string(body), "receiver2")
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user