Documentation ¶
Overview ¶
Alert provides a framework for tracking events in a publish subscribe system. Events are published to topics and handlers consume the events from the topics.
Index ¶
- Constants
- func PatternMatch(pattern, id string) bool
- type Data
- type Event
- type EventData
- type EventState
- type Handler
- type Inhibitor
- type InhibitorLookup
- type Level
- type TemplateData
- type Topic
- type TopicState
- type Topics
- func (s *Topics) Close() error
- func (s *Topics) Collect(event Event) error
- func (s *Topics) DeleteTopic(topic string)
- func (s *Topics) DeregisterHandler(topic string, h Handler)
- func (s *Topics) EventState(topic, event string) (EventState, bool)
- func (s *Topics) Open() error
- func (s *Topics) RegisterHandler(topic string, h Handler)
- func (s *Topics) ReplaceHandler(topic string, oldH, newH Handler)
- func (s *Topics) RestoreTopicNoCopy(topic string, eventStates map[string]*EventState)
- func (s *Topics) Topic(id string) (*Topic, bool)
- func (s *Topics) TopicState(pattern string, minLevel Level) map[string]TopicState
- func (s *Topics) UpdateEvent(topicID string, event EventState)
Constants ¶
View Source
const ( // DefaultEventBufferSize is the default number of events to buffer to each handler per topic. DefaultEventBufferSize = 5000 MinimumEventBufferSize = 1000 )
Variables ¶
This section is empty.
Functions ¶
func PatternMatch ¶ added in v1.3.0
Types ¶
type Data ¶ added in v1.3.0
type Data struct { ID string `json:"id"` Message string `json:"message"` Details string `json:"details"` Time time.Time `json:"time"` Duration time.Duration `json:"duration"` Level Level `json:"level"` Data models.Result `json:"data"` PreviousLevel Level `json:"previousLevel"` Recoverable bool `json:"recoverable"` }
Data is a structure that contains relevant data about an alert event. The structure is intended to be JSON encoded, providing a consistent data format.
type Event ¶
type Event struct { Topic string State EventState Data EventData NoExternal bool // contains filtered or unexported fields }
func (Event) PreviousState ¶
func (e Event) PreviousState() EventState
func (Event) TemplateData ¶
func (e Event) TemplateData() TemplateData
type EventData ¶
type EventData struct { // Measurement name Name string // TaskName is the name of the task that generated this event. TaskName string // Category is the category of the alert that generated this event. Category string // Concatenation of all group-by tags of the form [key=value,]+. // If not groupBy is performed equal to literal 'nil' Group string // Map of tags Tags map[string]string // Fields of alerting data point. Fields map[string]interface{} Recoverable bool Result models.Result }
type EventState ¶
type Handler ¶
type Handler interface { // Handle is responsible for taking action on the event. Handle(event Event) }
type Inhibitor ¶ added in v1.5.0
type Inhibitor struct {
// contains filtered or unexported fields
}
Inhibitor tracks whether an alert category + tag set have been inhibited
func (*Inhibitor) IsInhibited ¶ added in v1.5.0
type InhibitorLookup ¶ added in v1.5.0
type InhibitorLookup struct {
// contains filtered or unexported fields
}
func NewInhibitorLookup ¶ added in v1.5.0
func NewInhibitorLookup() *InhibitorLookup
func (*InhibitorLookup) AddInhibitor ¶ added in v1.5.0
func (l *InhibitorLookup) AddInhibitor(in *Inhibitor)
func (*InhibitorLookup) IsInhibited ¶ added in v1.5.0
func (l *InhibitorLookup) IsInhibited(category string, tags models.Tags) bool
func (*InhibitorLookup) RemoveInhibitor ¶ added in v1.5.0
func (l *InhibitorLookup) RemoveInhibitor(in *Inhibitor)
type Level ¶
type Level int
func ParseLevel ¶
func (Level) MarshalText ¶
func (*Level) UnmarshalText ¶
type TemplateData ¶
type TemplateData struct { // The ID of the alert. ID string // The Message of the Alert Message string // Alert Level, one of: INFO, WARNING, CRITICAL. Level string // Time the event occurred. Time time.Time // Duration of the event Duration time.Duration // Details Details string // Measurement name Name string // Task name TaskName string // Concatenation of all group-by tags of the form [key=value,]+. // If not groupBy is performed equal to literal 'nil' Group string // Map of tags Tags map[string]string // Fields of alerting data point. Fields map[string]interface{} }
TemplateData is a structure containing all information available to use in templates for an Event.
type Topic ¶
type Topic struct {
// contains filtered or unexported fields
}
func (*Topic) EventState ¶
func (t *Topic) EventState(event string) (EventState, bool)
func (*Topic) EventStates ¶
func (t *Topic) EventStates(minLevel Level) map[string]EventState
func (*Topic) State ¶ added in v1.3.0
func (t *Topic) State() TopicState
type TopicState ¶ added in v1.3.0
type Topics ¶
type Topics struct {
// contains filtered or unexported fields
}
func (*Topics) DeleteTopic ¶
func (*Topics) DeregisterHandler ¶
func (*Topics) EventState ¶
func (s *Topics) EventState(topic, event string) (EventState, bool)
func (*Topics) RegisterHandler ¶
func (*Topics) ReplaceHandler ¶
func (*Topics) RestoreTopicNoCopy ¶ added in v1.7.0
func (s *Topics) RestoreTopicNoCopy(topic string, eventStates map[string]*EventState)
func (*Topics) TopicState ¶ added in v1.3.0
func (s *Topics) TopicState(pattern string, minLevel Level) map[string]TopicState
TopicState returns the max alert level for each topic matching 'pattern', not returning any topics with max alert levels less severe than 'minLevel'
func (*Topics) UpdateEvent ¶
func (s *Topics) UpdateEvent(topicID string, event EventState)
Click to show internal directories.
Click to hide internal directories.