rules

package
v0.0.0-...-95bd64c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2015 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Alert

type Alert struct {
	// The name of the alert.
	Name string
	// The vector element labelset triggering this alert.
	Labels clientmodel.LabelSet
	// The state of the alert (Pending or Firing).
	State AlertState
	// The time when the alert first transitioned into Pending state.
	ActiveSince clientmodel.Timestamp
	// The value of the alert expression for this vector element.
	Value clientmodel.SampleValue
}

Alert is used to track active (pending/firing) alerts over time.

type AlertState

type AlertState int

AlertState denotes the state of an active alert.

const (
	// Inactive alerts are neither firing nor pending.
	StateInactive AlertState = iota
	// Pending alerts have been active for less than the configured
	// threshold duration.
	StatePending
	// Firing alerts have been active for longer than the configured
	// threshold duration.
	StateFiring
)

func (AlertState) String

func (s AlertState) String() string

type AlertingRule

type AlertingRule struct {
	// contains filtered or unexported fields
}

An AlertingRule generates alerts from its vector expression.

func NewAlertingRule

func NewAlertingRule(
	name string,
	vector promql.Expr,
	holdDuration time.Duration,
	labels clientmodel.LabelSet,
	summary string,
	description string,
) *AlertingRule

NewAlertingRule constructs a new AlertingRule.

func (*AlertingRule) ActiveAlerts

func (rule *AlertingRule) ActiveAlerts() []Alert

ActiveAlerts returns a slice of active alerts.

func (*AlertingRule) HTMLSnippet

func (rule *AlertingRule) HTMLSnippet(pathPrefix string) template.HTML

HTMLSnippet returns an HTML snippet representing this alerting rule.

func (*AlertingRule) Name

func (rule *AlertingRule) Name() string

Name returns the name of the alert.

func (*AlertingRule) State

func (rule *AlertingRule) State() AlertState

State returns the "maximum" state: firing > pending > inactive.

func (*AlertingRule) String

func (rule *AlertingRule) String() string

type Manager

type Manager struct {
	// Protects the rules list.
	sync.Mutex
	// contains filtered or unexported fields
}

The Manager manages recording and alerting rules.

func NewManager

func NewManager(o *ManagerOptions) *Manager

NewManager returns an implementation of Manager, ready to be started by calling the Run method.

func (*Manager) AlertingRules

func (m *Manager) AlertingRules() []*AlertingRule

AlertingRules returns the list of the manager's alerting rules.

func (*Manager) ApplyConfig

func (m *Manager) ApplyConfig(conf *config.Config) bool

ApplyConfig updates the rule manager's state as the config requires. If loading the new rules failed the old rule set is restored. Returns true on success.

func (*Manager) Rules

func (m *Manager) Rules() []Rule

Rules returns the list of the manager's rules.

func (*Manager) Run

func (m *Manager) Run()

Run the rule manager's periodic rule evaluation.

func (*Manager) Stop

func (m *Manager) Stop()

Stop the rule manager's rule evaluation cycles.

type ManagerOptions

type ManagerOptions struct {
	EvaluationInterval time.Duration
	QueryEngine        *promql.Engine

	NotificationHandler *notification.NotificationHandler
	SampleAppender      storage.SampleAppender

	PrometheusURL string
	PathPrefix    string
}

ManagerOptions bundles options for the Manager.

type RecordingRule

type RecordingRule struct {
	// contains filtered or unexported fields
}

A RecordingRule records its vector expression into new timeseries.

func NewRecordingRule

func NewRecordingRule(name string, vector promql.Expr, labels clientmodel.LabelSet) *RecordingRule

NewRecordingRule returns a new recording rule.

func (RecordingRule) HTMLSnippet

func (rule RecordingRule) HTMLSnippet(pathPrefix string) template.HTML

HTMLSnippet returns an HTML snippet representing this rule.

func (RecordingRule) Name

func (rule RecordingRule) Name() string

Name returns the rule name.

func (RecordingRule) String

func (rule RecordingRule) String() string

type Rule

type Rule interface {
	// Name returns the name of the rule.
	Name() string

	// String returns a human-readable string representation of the rule.
	String() string
	// HTMLSnippet returns a human-readable string representation of the rule,
	// decorated with HTML elements for use the web frontend.
	HTMLSnippet(pathPrefix string) template.HTML
	// contains filtered or unexported methods
}

A Rule encapsulates a vector expression which is evaluated at a specified interval and acted upon (currently either recorded or used for alerting).

Notes

Bugs

  • Look at fixing thundering herd.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL