Documentation
¶
Index ¶
- func GetPrometheusAlert(a *model.Alert) *model.PrometheusAlert
- func HandleAlerts(databaseContext *model.DatabaseContext) func(item model.PharosImageMeta) model.PharosImageMeta
- type AlertGroup
- func (ag *AlertGroup) GetAlertPayload(receiverName string) (*model.AlertPayload, error)
- func (ag *AlertGroup) GetHash() string
- func (ag *AlertGroup) GetWebhookPayload(webhook *WebHook, receiverName string) (*model.WebHookPayload, error)
- func (ag *AlertGroup) SendWebhookAlerts(webhook *WebHook, route *Route) error
- func (ag *AlertGroup) String() string
- type Alerter
- type GroupInfo
- type Matcher
- type Receiver
- type Route
- func (r *Route) GetMatchedAlerts(alerts []*model.Alert) []*model.Alert
- func (r *Route) GetRouteConfigForChild(childRouteconfig model.RouteConfig) *model.RouteConfig
- func (r *Route) GetSiblingAlerts(alerts []*model.Alert) []*model.Alert
- func (r *Route) GetUnmatchedAlerts(alerts []*model.Alert) []*model.Alert
- func (r *Route) SendAlerts(alerts []*model.Alert)
- func (r *Route) String() string
- func (r *Route) UpdateAlertGroups()
- type WebHook
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPrometheusAlert ¶
func GetPrometheusAlert(a *model.Alert) *model.PrometheusAlert
func HandleAlerts ¶
func HandleAlerts(databaseContext *model.DatabaseContext) func(item model.PharosImageMeta) model.PharosImageMeta
Types ¶
type AlertGroup ¶
type AlertGroup struct {
GroupLabels map[string]string
Logger *zerolog.Logger
Alerts []*model.Alert
GroupInfo map[string]*GroupInfo
DatabaseContext *model.DatabaseContext
AlertsUpdated bool
}
A grouped alert is dependend on a route.
func NewAlertGroup ¶
func NewAlertGroup(routeConfig *model.RouteConfig, groupLabels map[string]string, databaseContext *model.DatabaseContext) *AlertGroup
func (*AlertGroup) GetAlertPayload ¶
func (ag *AlertGroup) GetAlertPayload(receiverName string) (*model.AlertPayload, error)
func (*AlertGroup) GetHash ¶
func (ag *AlertGroup) GetHash() string
return a hash of this AlertGroup, to see if it has changed
func (*AlertGroup) GetWebhookPayload ¶
func (ag *AlertGroup) GetWebhookPayload(webhook *WebHook, receiverName string) (*model.WebHookPayload, error)
func (*AlertGroup) SendWebhookAlerts ¶
func (ag *AlertGroup) SendWebhookAlerts(webhook *WebHook, route *Route) error
func (*AlertGroup) String ¶
func (ag *AlertGroup) String() string
type Alerter ¶
type Alerter struct {
AlertingConfig *model.AlertingConfig
Logger *zerolog.Logger
DatabaseContext *model.DatabaseContext
RootRoute *Route
}
func NewAlerter ¶
func NewAlerter(databaseContext *model.DatabaseContext, config *model.AlertingConfig) *Alerter
type Matcher ¶
func NewMatcher ¶
type Receiver ¶
type Receiver struct {
Config *model.ReceiverConfig
WebHooks []*WebHook
Logging *zerolog.Logger
}
func NewReceiver ¶
func NewReceiver(config *model.ReceiverConfig) *Receiver
func (*Receiver) SendAlerts ¶
func (r *Receiver) SendAlerts(alertGroup *AlertGroup, route *Route) error
type Route ¶
type Route struct {
RouteConfig *model.RouteConfig
Receiver *Receiver
Alerts []*model.Alert
AlertGroups map[string]*AlertGroup
Logger *zerolog.Logger
RepeatInterval time.Duration
Path string // Path to the route, used for storing data about when an alert was sent the last time.
// B-Tree structure
FirstChild *Route
NextSibling *Route
DatabaseContext *model.DatabaseContext
}
func NewRoute ¶
func NewRoute(routeConfig *model.RouteConfig, alertingConfig *model.AlertingConfig, path string, databaseContext *model.DatabaseContext) *Route
func (*Route) GetMatchedAlerts ¶
func (*Route) GetRouteConfigForChild ¶
func (r *Route) GetRouteConfigForChild(childRouteconfig model.RouteConfig) *model.RouteConfig
func (*Route) GetSiblingAlerts ¶
func (*Route) GetUnmatchedAlerts ¶
func (*Route) SendAlerts ¶
func (*Route) UpdateAlertGroups ¶
func (r *Route) UpdateAlertGroups()
type WebHook ¶
type WebHook struct {
WebHookConfig *model.WebhookConfig
Logger *zerolog.Logger
}
func NewWebHook ¶
func NewWebHook(webHookConfig *model.WebhookConfig) *WebHook
Click to show internal directories.
Click to hide internal directories.