diff --git a/internal/models/api.go b/internal/models/api.go index 88e73b567..381bfb628 100644 --- a/internal/models/api.go +++ b/internal/models/api.go @@ -34,7 +34,7 @@ type AlertsResponse struct { Timestamp string `json:"timestamp"` Version string `json:"version"` Upstreams AlertmanagerAPISummary `json:"upstreams"` - AlertGroups []AlertGroup `json:"groups"` + AlertGroups map[string]AlertGroup `json:"groups"` Colors LabelsColorMap `json:"colors"` Filters []Filter `json:"filters"` Counters LabelsCountMap `json:"counters"` diff --git a/views.go b/views.go index 7446bda5d..5b1009c90 100644 --- a/views.go +++ b/views.go @@ -94,7 +94,7 @@ func alerts(c *gin.Context) { matchFilters, validFilters := getFiltersFromQuery(c.Query("q")) // set pointers for data store objects, need a lock until end of view is reached - alerts := []models.AlertGroup{} + alerts := map[string]models.AlertGroup{} colors := models.LabelsColorMap{} // used for top labels dropdown counters := models.LabelsCountMap{} @@ -164,7 +164,7 @@ func alerts(c *gin.Context) { if len(agCopy.Alerts) > 0 { agCopy.Hash = agCopy.ContentFingerprint() - alerts = append(alerts, agCopy) + alerts[agCopy.ID] = agCopy } }