Documentation ¶
Index ¶
- Constants
- func GroupKey(ctx context.Context) (model.Fingerprint, bool)
- func GroupLabels(ctx context.Context) (model.LabelSet, bool)
- func LoginAuth(username, password string) smtp.Auth
- func NotificationHash(ctx context.Context) ([]byte, bool)
- func Now(ctx context.Context) (time.Time, bool)
- func ReceiverName(ctx context.Context) (string, bool)
- func RepeatInterval(ctx context.Context) (time.Duration, bool)
- func WithGroupKey(ctx context.Context, fp model.Fingerprint) context.Context
- func WithGroupLabels(ctx context.Context, lset model.LabelSet) context.Context
- func WithNotificationHash(ctx context.Context, hash []byte) context.Context
- func WithNow(ctx context.Context, t time.Time) context.Context
- func WithReceiverName(ctx context.Context, rcv string) context.Context
- func WithRepeatInterval(ctx context.Context, t time.Duration) context.Context
- type DedupStage
- type Email
- type FanoutStage
- type Hipchat
- type InhibitStage
- type Integration
- type MultiStage
- type Notifier
- type OpsGenie
- type PagerDuty
- type Pushover
- type RetryStage
- type RoutingStage
- type SetNotifiesStage
- type SilenceStage
- type Slack
- type Stage
- type StageFunc
- type VictorOps
- type WaitStage
- type Webhook
- type WebhookMessage
Constants ¶
const MinTimeout = 10 * time.Second
MinTimeout is the minimum timeout that is set for the context of a call to a notification pipeline.
Variables ¶
This section is empty.
Functions ¶
func GroupKey ¶
func GroupKey(ctx context.Context) (model.Fingerprint, bool)
GroupKey extracts a group key from the context. Iff none exists, the second argument is false.
func GroupLabels ¶
GroupLabels extracts grouping label set from the context. Iff none exists, the second argument is false.
func NotificationHash ¶ added in v0.5.0
NotificationHash extracts a notification hash from the context. Iff none exists, the second argument is false.
func Now ¶
Now extracts a now timestamp from the context. Iff none exists, the second argument is false.
func ReceiverName ¶ added in v0.5.0
ReceiverName extracts a receiver name from the context. Iff none exists, the second argument is false.
func RepeatInterval ¶
RepeatInterval extracts a repeat interval from the context. Iff none exists, the second argument is false.
func WithGroupKey ¶
WithGroupKey populates a context with a group key.
func WithGroupLabels ¶
WithGroupLabels populates a context with grouping labels.
func WithNotificationHash ¶ added in v0.5.0
WithNotificationHash populates a context with a notification hash.
func WithReceiverName ¶ added in v0.5.0
WithReceiverName populates a context with a receiver name.
Types ¶
type DedupStage ¶ added in v0.5.0
type DedupStage struct {
// contains filtered or unexported fields
}
DedupStage filters alerts. Filtering happens based on a notification log.
func NewDedupStage ¶ added in v0.5.0
func NewDedupStage(l nflog.Log, recv *nflogpb.Receiver) *DedupStage
NewDedupStage wraps a DedupStage that runs against the given notification log.
type Email ¶
type Email struct {
// contains filtered or unexported fields
}
Email implements a Notifier for email notifications.
type FanoutStage ¶ added in v0.5.0
type FanoutStage []Stage
FanoutStage executes its stages concurrently
func (FanoutStage) Exec ¶ added in v0.5.0
func (fs FanoutStage) Exec(ctx context.Context, alerts ...*types.Alert) (context.Context, []*types.Alert, error)
Exec attempts to execute all stages concurrently and discards the results. It returns its input alerts and a types.MultiError if one or more stages fail.
type Hipchat ¶
type Hipchat struct {
// contains filtered or unexported fields
}
Hipchat implements a Notifier for Hipchat notifications.
func NewHipchat ¶
func NewHipchat(conf *config.HipchatConfig, tmpl *template.Template) *Hipchat
NewHipchat returns a new Hipchat notification handler.
type InhibitStage ¶ added in v0.5.0
type InhibitStage struct {
// contains filtered or unexported fields
}
InhibitStage filters alerts through an inhibition muter.
func NewInhibitStage ¶ added in v0.5.0
func NewInhibitStage(m types.Muter, mk types.Marker) *InhibitStage
NewInhibitStage return a new InhibitStage.
type Integration ¶ added in v0.5.0
type Integration struct {
// contains filtered or unexported fields
}
An Integration wraps a notifier and its config to be uniquely identified by name and index from its origin in the configuration.
func BuildReceiverIntegrations ¶ added in v0.5.0
func BuildReceiverIntegrations(nc *config.Receiver, tmpl *template.Template) []Integration
BuildReceiverIntegrations builds a list of integration notifiers off of a receivers config.
type MultiStage ¶ added in v0.5.0
type MultiStage []Stage
A MultiStage executes a series of stages sequencially.
type Notifier ¶
A Notifier notifies about alerts under constraints of the given context. It returns an error if unsuccessful and a flag whether the error is recoverable. This information is useful for a retry logic.
type OpsGenie ¶
type OpsGenie struct {
// contains filtered or unexported fields
}
OpsGenie implements a Notifier for OpsGenie notifications.
func NewOpsGenie ¶
func NewOpsGenie(c *config.OpsGenieConfig, t *template.Template) *OpsGenie
NewOpsGenie returns a new OpsGenie notifier.
type PagerDuty ¶
type PagerDuty struct {
// contains filtered or unexported fields
}
PagerDuty implements a Notifier for PagerDuty notifications.
func NewPagerDuty ¶
func NewPagerDuty(c *config.PagerdutyConfig, t *template.Template) *PagerDuty
NewPagerDuty returns a new PagerDuty notifier.
type Pushover ¶
type Pushover struct {
// contains filtered or unexported fields
}
Pushover implements a Notifier for Pushover notifications.
func NewPushover ¶
func NewPushover(c *config.PushoverConfig, t *template.Template) *Pushover
NewPushover returns a new Pushover notifier.
type RetryStage ¶ added in v0.5.0
type RetryStage struct {
// contains filtered or unexported fields
}
RetryStage notifies via passed integration with exponential backoff until it succeeds. It aborts if the context is canceled or timed out.
func NewRetryStage ¶ added in v0.5.0
func NewRetryStage(i Integration) *RetryStage
NewRetryStage returns a new instance of a RetryStage.
type RoutingStage ¶ added in v0.5.0
RoutingStage executes the inner stages based on the receiver specified in the context.
func BuildPipeline ¶ added in v0.5.0
func BuildPipeline( confs []*config.Receiver, tmpl *template.Template, wait func() time.Duration, inhibitor *inhibit.Inhibitor, silences *silence.Silences, notificationLog nflog.Log, marker types.Marker, ) RoutingStage
BuildPipeline builds a map of receivers to Stages.
type SetNotifiesStage ¶ added in v0.5.0
type SetNotifiesStage struct {
// contains filtered or unexported fields
}
SetNotifiesStage sets the notification information about passed alerts. The passed alerts should have already been sent to the receivers.
func NewSetNotifiesStage ¶ added in v0.5.0
func NewSetNotifiesStage(l nflog.Log, recv *nflogpb.Receiver) *SetNotifiesStage
NewSetNotifiesStage returns a new instance of a SetNotifiesStage.
type SilenceStage ¶ added in v0.5.0
type SilenceStage struct {
// contains filtered or unexported fields
}
SilenceStage filters alerts through a silence muter.
func NewSilenceStage ¶ added in v0.5.0
func NewSilenceStage(s *silence.Silences, mk types.Marker) *SilenceStage
NewSilenceStage returns a new SilenceStage.
type Slack ¶
type Slack struct {
// contains filtered or unexported fields
}
Slack implements a Notifier for Slack notifications.
type Stage ¶ added in v0.5.0
type Stage interface {
Exec(ctx context.Context, alerts ...*types.Alert) (context.Context, []*types.Alert, error)
}
A Stage processes alerts under the constraints of the given context.
type StageFunc ¶ added in v0.5.0
type StageFunc func(ctx context.Context, alerts ...*types.Alert) (context.Context, []*types.Alert, error)
StageFunc wraps a function to represent a Stage.
type VictorOps ¶ added in v0.5.0
type VictorOps struct {
// contains filtered or unexported fields
}
VictorOps implements a Notifier for VictorOps notifications.
func NewVictorOps ¶ added in v0.5.0
func NewVictorOps(c *config.VictorOpsConfig, t *template.Template) *VictorOps
NewVictorOps returns a new VictorOps notifier.
type WaitStage ¶ added in v0.5.0
type WaitStage struct {
// contains filtered or unexported fields
}
WaitStage waits for a certain amount of time before continuing or until the context is done.
func NewWaitStage ¶ added in v0.5.0
NewWaitStage returns a new WaitStage.
type Webhook ¶
type Webhook struct { // The URL to which notifications are sent. URL string // contains filtered or unexported fields }
Webhook implements a Notifier for generic webhooks.
func NewWebhook ¶
func NewWebhook(conf *config.WebhookConfig, t *template.Template) *Webhook
NewWebhook returns a new Webhook.