Documentation ¶
Overview ¶
Package alert contains logic to send alert notifications to Alertmanager clusters.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type APIVersion ¶ added in v0.11.0
type APIVersion string
APIVersion represents the API version of the Alertmanager endpoint.
const ( APIv1 APIVersion = "v1" APIv2 APIVersion = "v2" )
func (*APIVersion) UnmarshalYAML ¶ added in v0.11.0
func (v *APIVersion) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Alert ¶
type Alert struct { // Label value pairs for purpose of aggregation, matching, and disposition // dispatching. This must minimally include an "alertname" label. Labels labels.Labels `json:"labels"` // Extra key/value information which does not define alert identity. Annotations labels.Labels `json:"annotations"` // The known time range for this alert. Start and end time are both optional. StartsAt time.Time `json:"startsAt,omitempty"` EndsAt time.Time `json:"endsAt,omitempty"` GeneratorURL string `json:"generatorURL,omitempty"` }
Alert is a generic representation of an alert in the Prometheus eco-system.
func (*Alert) ResolvedAt ¶
ResolvedAt returns true off the activity interval ended before the given timestamp.
type AlertingConfig ¶ added in v0.10.0
type AlertingConfig struct {
Alertmanagers []AlertmanagerConfig `yaml:"alertmanagers"`
}
func LoadAlertingConfig ¶ added in v0.10.0
func LoadAlertingConfig(confYaml []byte) (AlertingConfig, error)
LoadAlertingConfig loads a list of AlertmanagerConfig from YAML data.
type Alertmanager ¶ added in v0.10.0
type Alertmanager struct {
// contains filtered or unexported fields
}
Alertmanager is an HTTP client that can send alerts to a cluster of Alertmanager endpoints.
func NewAlertmanager ¶ added in v0.10.0
func NewAlertmanager(logger log.Logger, dispatcher Dispatcher, timeout time.Duration, version APIVersion) *Alertmanager
NewAlertmanager returns a new Alertmanager client.
type AlertmanagerConfig ¶ added in v0.10.0
type AlertmanagerConfig struct { HTTPClientConfig http_util.ClientConfig `yaml:"http_config"` EndpointsConfig http_util.EndpointsConfig `yaml:",inline"` Timeout model.Duration `yaml:"timeout"` APIVersion APIVersion `yaml:"api_version"` }
AlertmanagerConfig represents a client to a cluster of Alertmanager endpoints.
func BuildAlertmanagerConfig ¶ added in v0.10.0
func BuildAlertmanagerConfig(address string, timeout time.Duration) (AlertmanagerConfig, error)
BuildAlertmanagerConfig initializes and returns an Alertmanager client configuration from a static address.
func DefaultAlertmanagerConfig ¶ added in v0.10.0
func DefaultAlertmanagerConfig() AlertmanagerConfig
func (*AlertmanagerConfig) UnmarshalYAML ¶ added in v0.10.0
func (c *AlertmanagerConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Dispatcher ¶ added in v0.11.0
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue is a queue of alert notifications waiting to be sent. The queue is consumed in batches and entries are dropped at the front if it runs full.
func NewQueue ¶
func NewQueue(logger log.Logger, reg prometheus.Registerer, capacity, maxBatchSize int, externalLset labels.Labels, excludeLabels []string, alertRelabelConfigs []*relabel.Config) *Queue
NewQueue returns a new queue. The given label set is attached to all alerts pushed to the queue. The given exclude label set tells what label names to drop including external labels.
type Sender ¶
type Sender struct {
// contains filtered or unexported fields
}
Sender sends notifications to a dynamic set of alertmanagers.
func NewSender ¶
func NewSender( logger log.Logger, reg prometheus.Registerer, alertmanagers []*Alertmanager, ) *Sender
NewSender returns a new sender. On each call to Send the entire alert batch is sent to each Alertmanager returned by the getter function.