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{}{}, GroupByAll: false, MuteTimeIntervals: []string{}, }
DefaultRouteOpts are the defaulting routing options which apply to the root route of a routing tree.
Functions ¶
This section is empty.
Types ¶
type AlertGroup ¶
type AlertGroup struct { Alerts types.AlertSlice Labels model.LabelSet Receiver string }
AlertGroup represents how alerts exist within an aggrGroup.
type AlertGroups ¶
type AlertGroups []*AlertGroup
func (AlertGroups) Len ¶
func (ag AlertGroups) Len() int
func (AlertGroups) Less ¶
func (ag AlertGroups) Less(i, j int) bool
func (AlertGroups) Swap ¶
func (ag AlertGroups) 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, lim Limits, l log.Logger, m *DispatcherMetrics, ) *Dispatcher
NewDispatcher returns a new Dispatcher.
func (*Dispatcher) Groups ¶
func (d *Dispatcher) Groups(routeFilter func(*Route) bool, alertFilter func(*types.Alert, time.Time) bool) (AlertGroups, map[model.Fingerprint][]string)
Groups returns a slice of AlertGroups from the dispatcher's internal state.
func (*Dispatcher) Run ¶
func (d *Dispatcher) Run()
Run starts dispatching alerts incoming via the updates channel.
type DispatcherMetrics ¶
type DispatcherMetrics struct {
// contains filtered or unexported fields
}
DispatcherMetrics represents metrics associated to a dispatcher.
func NewDispatcherMetrics ¶
func NewDispatcherMetrics(registerLimitMetrics bool, r prometheus.Registerer) *DispatcherMetrics
NewDispatcherMetrics returns a new registered DispatchMetrics.
type Limits ¶
type Limits interface { // MaxNumberOfAggregationGroups returns max number of aggregation groups that dispatcher can have. // 0 or negative value = unlimited. // If dispatcher hits this limit, it will not create additional groups, but will log an error instead. MaxNumberOfAggregationGroups() int }
Limits describes limits used by Dispatcher.
type Route ¶
type Route struct { // The configuration parameters for matches of this route. RouteOpts RouteOpts // Matchers an alert has to fulfill to match // this route. Matchers labels.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) Key ¶
Key returns a key for the route. It does not uniquely identify the route in general.
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{} // Use all alert labels to group. GroupByAll bool // How long to wait to group matching alerts before sending // a notification. GroupWait time.Duration GroupInterval time.Duration RepeatInterval time.Duration // A list of time intervals for which the route is muted. MuteTimeIntervals []string }
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.