Files
karma/models/alertmanager.go
2017-07-01 12:43:15 -07:00

43 lines
1.3 KiB
Go

package models
import "time"
// AlertmanagerInstance describes the Alertmanager instance alert was collected
// from
type AlertmanagerInstance struct {
Name string `json:"name"`
URI string `json:"uri"`
// per instance alert state
State string `json:"state"`
// timestamp collected from this instance, those on the alert itself
// will be calculated min/max values
StartsAt time.Time `json:"startsAt"`
EndsAt time.Time `json:"endsAt"`
// Source links to alert source for given alertmanager instance
Source string `json:"source"`
// all silences matching current alert in this upstream
Silences map[string]Silence `json:"silences"`
// TODO also export InhibitedBy here if it ever becomes needed
}
// AlertmanagerAPIStatus describes the Alertmanager instance overall health
type AlertmanagerAPIStatus struct {
Name string `json:"name"`
URI string `json:"uri"`
Error string `json:"error"`
}
// AlertmanagerAPICounters returns number of Alertmanager instances in each
// state
type AlertmanagerAPICounters struct {
Total int `json:"total"`
Healthy int `json:"healthy"`
Failed int `json:"failed"`
}
// AlertmanagerAPISummary describes the Alertmanager instance overall health
type AlertmanagerAPISummary struct {
Counters AlertmanagerAPICounters `json:"counters"`
Instances []AlertmanagerAPIStatus `json:"instances"`
}