...

Package test

import "github.com/prometheus/alertmanager/test/with_api_v2"
Overview
Index

Overview ▾

Index ▾

func At(ts float64) float64
func CompareCollectors(a, b *Collector, opts *AcceptanceOpts) (bool, error)
type AcceptanceOpts
type AcceptanceTest
    func NewAcceptanceTest(t *testing.T, opts *AcceptanceOpts) *AcceptanceTest
    func (t *AcceptanceTest) AlertmanagerCluster(conf string, size int) *AlertmanagerCluster
    func (t *AcceptanceTest) Collector(name string) *Collector
    func (t *AcceptanceTest) Do(at float64, f func())
    func (t *AcceptanceTest) Run()
type Alertmanager
    func (am *Alertmanager) Client() *apiclient.AlertmanagerAPI
    func (am *Alertmanager) DelSilence(at float64, sil *TestSilence)
    func (am *Alertmanager) Push(at float64, alerts ...*TestAlert)
    func (am *Alertmanager) Reload()
    func (am *Alertmanager) SetSilence(at float64, sil *TestSilence)
    func (am *Alertmanager) Start(additionalArg []string) error
    func (am *Alertmanager) Terminate()
    func (am *Alertmanager) UpdateConfig(conf string)
    func (am *Alertmanager) WaitForCluster(size int) error
type AlertmanagerCluster
    func (amc *AlertmanagerCluster) DelSilence(at float64, sil *TestSilence)
    func (amc *AlertmanagerCluster) Members() []*Alertmanager
    func (amc *AlertmanagerCluster) Push(at float64, alerts ...*TestAlert)
    func (amc *AlertmanagerCluster) Reload()
    func (amc *AlertmanagerCluster) SetSilence(at float64, sil *TestSilence)
    func (amc *AlertmanagerCluster) Start() error
    func (amc *AlertmanagerCluster) Terminate()
    func (amc *AlertmanagerCluster) UpdateConfig(conf string)
type Collector
    func (c *Collector) Check() string
    func (c *Collector) Collected() map[float64][]models.GettableAlerts
    func (c *Collector) String() string
    func (c *Collector) Want(iv Interval, alerts ...*TestAlert)
type Interval
    func Between(start, end float64) Interval
    func (iv Interval) String() string
type MockWebhook
    func NewWebhook(t *testing.T, c *Collector) *MockWebhook
    func (ws *MockWebhook) Address() string
    func (ws *MockWebhook) ServeHTTP(w http.ResponseWriter, req *http.Request)
type TestAlert
    func Alert(keyval ...interface{}) *TestAlert
    func (a *TestAlert) Active(tss ...float64) *TestAlert
    func (a *TestAlert) Annotate(keyval ...interface{}) *TestAlert
type TestSilence
    func Silence(start, end float64) *TestSilence
    func (s *TestSilence) ID() string
    func (s *TestSilence) Match(v ...string) *TestSilence
    func (s *TestSilence) MatchRE(v ...string) *TestSilence
    func (s *TestSilence) SetID(ID string)

Package files

acceptance.go collector.go mock.go

func At

func At(ts float64) float64

At is a convenience method to allow for declarative syntax of Acceptance test definitions.

func CompareCollectors

func CompareCollectors(a, b *Collector, opts *AcceptanceOpts) (bool, error)

CompareCollectors compares two collectors based on their collected alerts

type AcceptanceOpts

AcceptanceOpts defines configuration parameters for an acceptance test.

type AcceptanceOpts struct {
    RoutePrefix string
    Tolerance   time.Duration
    // contains filtered or unexported fields
}

type AcceptanceTest

AcceptanceTest provides declarative definition of given inputs and expected output of an Alertmanager setup.

type AcceptanceTest struct {
    *testing.T
    // contains filtered or unexported fields
}

func NewAcceptanceTest

func NewAcceptanceTest(t *testing.T, opts *AcceptanceOpts) *AcceptanceTest

NewAcceptanceTest returns a new acceptance test with the base time set to the current time.

func (*AcceptanceTest) AlertmanagerCluster

func (t *AcceptanceTest) AlertmanagerCluster(conf string, size int) *AlertmanagerCluster

AlertmanagerCluster returns a new AlertmanagerCluster that allows starting a cluster of Alertmanager instances on random ports.

func (*AcceptanceTest) Collector

func (t *AcceptanceTest) Collector(name string) *Collector

Collector returns a new collector bound to the test instance.

func (*AcceptanceTest) Do

func (t *AcceptanceTest) Do(at float64, f func())

Do sets the given function to be executed at the given time.

func (*AcceptanceTest) Run

func (t *AcceptanceTest) Run()

Run starts all Alertmanagers and runs queries against them. It then checks whether all expected notifications have arrived at the expected receiver.

type Alertmanager

Alertmanager encapsulates an Alertmanager process and allows declaring alerts being pushed to it at fixed points in time.

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

func (*Alertmanager) Client

func (am *Alertmanager) Client() *apiclient.AlertmanagerAPI

Client returns a client to interact with the API v2 endpoint.

func (*Alertmanager) DelSilence

func (am *Alertmanager) DelSilence(at float64, sil *TestSilence)

DelSilence deletes the silence with the sid at the given time.

func (*Alertmanager) Push

func (am *Alertmanager) Push(at float64, alerts ...*TestAlert)

Push declares alerts that are to be pushed to the Alertmanager server at a relative point in time.

func (*Alertmanager) Reload

func (am *Alertmanager) Reload()

Reload sends the reloading signal to the Alertmanager process.

func (*Alertmanager) SetSilence

func (am *Alertmanager) SetSilence(at float64, sil *TestSilence)

SetSilence updates or creates the given Silence.

func (*Alertmanager) Start

func (am *Alertmanager) Start(additionalArg []string) error

Start the alertmanager and wait until it is ready to receive.

func (*Alertmanager) Terminate

func (am *Alertmanager) Terminate()

Terminate kills the underlying Alertmanager process and remove intermediate data.

func (*Alertmanager) UpdateConfig

func (am *Alertmanager) UpdateConfig(conf string)

UpdateConfig rewrites the configuration file for the Alertmanager. It does not initiate config reloading.

func (*Alertmanager) WaitForCluster

func (am *Alertmanager) WaitForCluster(size int) error

WaitForCluster waits for the Alertmanager instance to join a cluster with the given size.

type AlertmanagerCluster

AlertmanagerCluster represents a group of Alertmanager instances acting as a cluster.

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

func (*AlertmanagerCluster) DelSilence

func (amc *AlertmanagerCluster) DelSilence(at float64, sil *TestSilence)

DelSilence deletes the silence with the sid at the given time.

func (*AlertmanagerCluster) Members

func (amc *AlertmanagerCluster) Members() []*Alertmanager

Members returns the underlying slice of cluster members.

func (*AlertmanagerCluster) Push

func (amc *AlertmanagerCluster) Push(at float64, alerts ...*TestAlert)

Push declares alerts that are to be pushed to the Alertmanager servers at a relative point in time.

func (*AlertmanagerCluster) Reload

func (amc *AlertmanagerCluster) Reload()

Reload sends the reloading signal to the Alertmanager instances.

func (*AlertmanagerCluster) SetSilence

func (amc *AlertmanagerCluster) SetSilence(at float64, sil *TestSilence)

SetSilence updates or creates the given Silence.

func (*AlertmanagerCluster) Start

func (amc *AlertmanagerCluster) Start() error

Start the Alertmanager cluster and wait until it is ready to receive.

func (*AlertmanagerCluster) Terminate

func (amc *AlertmanagerCluster) Terminate()

Terminate kills the underlying Alertmanager cluster processes and removes intermediate data.

func (*AlertmanagerCluster) UpdateConfig

func (amc *AlertmanagerCluster) UpdateConfig(conf string)

UpdateConfig rewrites the configuration file for the Alertmanager cluster. It does not initiate config reloading.

type Collector

Collector gathers alerts received by a notification receiver and verifies whether all arrived and within the correct time boundaries.

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

func (*Collector) Check

func (c *Collector) Check() string

func (*Collector) Collected

func (c *Collector) Collected() map[float64][]models.GettableAlerts

Collected returns a map of alerts collected by the collector indexed with the receive timestamp.

func (*Collector) String

func (c *Collector) String() string

func (*Collector) Want

func (c *Collector) Want(iv Interval, alerts ...*TestAlert)

Want declares that the Collector expects to receive the given alerts within the given time boundaries.

type Interval

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

func Between

func Between(start, end float64) Interval

Between is a convenience constructor for an interval for declarative syntax of Acceptance test definitions.

func (Interval) String

func (iv Interval) String() string

type MockWebhook

type MockWebhook struct {

    // Func is called early on when retrieving a notification by an
    // Alertmanager. If Func returns true, the given notification is dropped.
    // See sample usage in `send_test.go/TestRetry()`.
    Func func(timestamp float64) bool
    // contains filtered or unexported fields
}

func NewWebhook

func NewWebhook(t *testing.T, c *Collector) *MockWebhook

func (*MockWebhook) Address

func (ws *MockWebhook) Address() string

func (*MockWebhook) ServeHTTP

func (ws *MockWebhook) ServeHTTP(w http.ResponseWriter, req *http.Request)

type TestAlert

TestAlert models a model.Alert with relative times.

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

func Alert

func Alert(keyval ...interface{}) *TestAlert

Alert creates a new alert declaration with the given key/value pairs as identifying labels.

func (*TestAlert) Active

func (a *TestAlert) Active(tss ...float64) *TestAlert

Active declares the relative activity time for this alert. It must be a single starting value or two values where the second value declares the resolved time.

func (*TestAlert) Annotate

func (a *TestAlert) Annotate(keyval ...interface{}) *TestAlert

Annotate the alert with the given key/value pairs.

type TestSilence

TestSilence models a model.Silence with relative times.

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

func Silence

func Silence(start, end float64) *TestSilence

Silence creates a new TestSilence active for the relative interval given by start and end.

func (*TestSilence) ID

func (s *TestSilence) ID() string

ID gets the silence ID.

func (*TestSilence) Match

func (s *TestSilence) Match(v ...string) *TestSilence

Match adds a new plain matcher to the silence.

func (*TestSilence) MatchRE

func (s *TestSilence) MatchRE(v ...string) *TestSilence

MatchRE adds a new regex matcher to the silence

func (*TestSilence) SetID

func (s *TestSilence) SetID(ID string)

SetID sets the silence ID.