performance

package
v0.12.1 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

README

Performance tests

Knative performance tests are tests geared towards producing useful performance metrics of the knative system. As such they can choose to take a blackbox point-of-view of the system and use it just like an end-user might see it. They can also go more whiteboxy to narrow down the components under test.

Load Generator

Knative uses vegeta to generate HTTP load. It can be configured to generate load at a predefined rate. Officially it supports constant rate and sine rate, but if you want to generate load at a different rate, you can write your own pacer by implementing Pacer interface. Custom pacer implementations used in Knative tests are under pacers.

Benchmarking

Knative uses mako for benchmarking. It provides a set of tools for metrics data storage, charting, statistical aggregation and performance regression analysis. To use it to create a benchmark for Knative and run it continuously, please refer to Benchmarks.md.

Documentation

Index

Constants

View Source
const (
	EnablePrometheus = iota
)

Enable monitoring components

Variables

This section is empty.

Functions

func ProbeTargetTillReady

func ProbeTargetTillReady(target string, duration time.Duration) error

ProbeTargetTillReady will probe the target once per second for the given duration, until it's ready or error happens

func TearDown

func TearDown(client *Client, names test.ResourceNames, logf logging.FormatLogger)

TearDown cleans up resources used

func WaitForScaleToZero

func WaitForScaleToZero(ctx context.Context, namespace string, selector labels.Selector, duration time.Duration) error

WaitForScaleToZero will wait for the deployments in the indexer to scale to 0

Types

type Client

type Client struct {
	E2EClients *test.Clients
	PromClient *prometheus.PromProxy
}

Client is the client used in the performance tests.

func Setup

func Setup(t *testing.T, monitoring ...int) (*Client, error)

Setup creates all the clients that we need to interact with in our tests

Jump to

Keyboard shortcuts

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