Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultRouteOpts = RouteOpts{ GroupWait: 30 * time.Second, GroupInterval: 5 * time.Minute, RepeatInterval: 4 * time.Hour, GroupBy: map[model.LabelName]struct{}{ model.AlertNameLabel: struct{}{}, }, }
DefaultRouteOpts are the defaulting routing options which apply to the root route of a routing tree.
Functions ¶
This section is empty.
Types ¶
type APIAlert ¶
type APIAlert struct { *model.Alert Inhibited bool `json:"inhibited"` Silenced string `json:"silenced,omitempty"` }
APIAlert is the API representation of an alert, which is a regular alert annotated with silencing and inhibition info.
type AlertBlock ¶
type AlertBlock struct { RouteOpts *RouteOpts `json:"routeOpts"` Alerts []*APIAlert `json:"alerts"` }
AlertBlock contains a list of alerts associated with a set of routing options.
type AlertGroup ¶
type AlertGroup struct { Labels model.LabelSet `json:"labels"` Blocks []*AlertBlock `json:"blocks"` }
AlertGroup is a list of alert blocks grouped by the same label set.
type AlertOverview ¶
type AlertOverview []*AlertGroup
AlertOverview is a representation of all active alerts in the system.
func (AlertOverview) Len ¶
func (ao AlertOverview) Len() int
func (AlertOverview) Less ¶
func (ao AlertOverview) Less(i, j int) bool
func (AlertOverview) Swap ¶
func (ao AlertOverview) Swap(i, j int)
type Dispatcher ¶
type Dispatcher struct {
// contains filtered or unexported fields
}
Dispatcher sorts incoming alerts into aggregation groups and assigns the correct notifiers to each.
func NewDispatcher ¶
func NewDispatcher( ap provider.Alerts, r *Route, s notify.Stage, mk types.Marker, to func(time.Duration) time.Duration, ) *Dispatcher
NewDispatcher returns a new Dispatcher.
func (*Dispatcher) Groups ¶
func (d *Dispatcher) Groups() AlertOverview
Groups populates an AlertOverview from the dispatcher's internal state.
func (*Dispatcher) Run ¶
func (d *Dispatcher) Run()
Run starts dispatching alerts incoming via the updates channel.
type Route ¶
type Route struct { // The configuration parameters for matches of this route. RouteOpts RouteOpts // Equality or regex matchers an alert has to fulfill to match // this route. Matchers types.Matchers // If true, an alert matches further routes on the same level. Continue bool // Children routes of this route. Routes []*Route // contains filtered or unexported fields }
A Route is a node that contains definitions of how to handle alerts.
func (*Route) Fingerprint ¶
func (r *Route) Fingerprint() model.Fingerprint
Fingerprint returns a hash of the Route based on its grouping labels, routing options and the total set of matchers necessary to reach this route.
func (*Route) Match ¶
Match does a depth-first left-to-right search through the route tree and returns the matching routing nodes.
func (*Route) SquashMatchers ¶
SquashMatchers returns the total set of matchers on the path of the tree that have to apply to reach the route.
type RouteOpts ¶
type RouteOpts struct { // The identifier of the associated notification configuration Receiver string // What labels to group alerts by for notifications. GroupBy map[model.LabelName]struct{} // How long to wait to group matching alerts before sending // a notificaiton GroupWait time.Duration GroupInterval time.Duration RepeatInterval time.Duration }
RouteOpts holds various routing options necessary for processing alerts that match a given route.
func (*RouteOpts) MarshalJSON ¶
MarshalJSON returns a JSON representation of the routing options.