pandora

command module
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2016 License: MPL-2.0 Imports: 1 Imported by: 0

README

Pandora

Build Status Coverage Status

A load generator in Go language.

Install

Compile a binary with go tool (use go >= 1.5.2):

go get github.com/yandex/pandora
go build github.com/yandex/pandora

Run this binary with your .json config (see examples):

./pandora myconfig.json

Or let Yandex.Tank make it easy for you.

Extension points

You can write plugins with the next extension points:

ammo.Provider
aggregate.ResultListener
limiter.Limiter
gun.Gun

Build tags

If you don want to build pandora without http gun:

go build -tags 'noHttpGun' github.com/yandex/pandora

If you don want to build pandora without spdy gun:

go build -tags 'noSpdyGun' github.com/yandex/pandora

Basic concepts

Architectural scheme

See architectural scheme source in docs/architecture.graphml. It was created with YeD editor, so you’ll probably need it to open the file.

Architectural scheme

Pandora is made of components. Components talk to each other over the channels. There are different types of components.

Component types
Ammo provider and decoder

Ammo decoder knows how to make an ammo object from an ammo file or other external resource. Ammo provider uses a decoder to decode ammo and passes ammo objects to the Users.

User pool

User pool controls the creation of Users. All users from one user pool will get ammo from one ammo provider. User creation schedule is controlled with Startup Limiter. All users from one user pool will also have guns of the same type.

Limiters

Limiters are objects that will put messages to its underlying channel according to a schedule. User creation, shooting or other processes thus can be controlled by a Limiter.

Users and Guns

User takes an ammo, waits for a limiter tick and then shoots with a Gun it has. Guns are the tools to send a request to your service and measure the parameters of the response.

Result Listener

Result listener's task is to collect measured samples and save them somewhere.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
generated by go-extpoints -- DO NOT EDIT
generated by go-extpoints -- DO NOT EDIT
gun
Limiters helps to describe different schedulers
Limiters helps to describe different schedulers

Jump to

Keyboard shortcuts

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