test

package
v0.20.2 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2020 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func At

func At(ts float64) float64

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

Types

type AcceptanceOpts

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

AcceptanceOpts defines configuration parameters for an acceptance test.

type AcceptanceTest

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

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

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) Alertmanager

func (t *AcceptanceTest) Alertmanager(conf string) *Alertmanager

Alertmanager returns a new structure that allows starting an instance of Alertmanager on a random port.

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

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

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

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()

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.

type Collector

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

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

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 func(timestamp float64) bool
	// contains filtered or unexported fields
}

func NewWebhook

func NewWebhook(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

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

TestAlert models a model.Alert with relative times.

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

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

TestSilence models a model.Silence with relative times.

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.

Jump to

Keyboard shortcuts

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