/mzbench

MZ Benchmarking

Primary LanguageErlangBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

MZBench Build Status

MZBench is a robust load testing tool. Some key features:

  • Ability to generate workload in distributed mode.
  • Flexible Domain-specific Language (DSL) for running various workload scenarios.
  • Putting the results into common metrics-gathering systems like Graphite.

Quickstart

To install MZBench, you need: Erlang R17, CC, C++, Python and PIP.

# clone MZBench repo
git clone https://github.com/machinezone/mzbench.git

# install python packages
sudo pip install -r mzbench/requirements.txt

cd mzbench

# start MZBench server
./bin/mzbench start_server

# run a benchmark with graphite
./bin/mzbench run examples/ramp.erl --env graphite=<graphite_address>

# or run a benchmark without graphite
./bin/mzbench run examples/ramp.erl

# check dashboard at http://localhost:4800/ for the results

Deployment Guide

To deploy and configure an MZBench API server on your own infrastructure, see the

Deployment guide

MZBench DSL Reference

To write test scenarios using the MZBench language, see DSL Reference.

DSL Code Examples

MZBench scenarios are DSL programs. To see some pre-coded examples using MZBench DSL language, see DSL Code Examples.

Writing Language Extensions

To learn how to write language extensions called "workers," to access a particular service or protocol, see How to write language extensions.

Writing Cloud Connectors

Current MZBench version is shipped with AWS EC2 cloud and local execution plugins, but other clouds are welcome, please refer to Cloud plugin creation guide.

Working with API

MZBench server could be used directly via HTTP API for better integration with external tools.

Support

Please report an issue on github.