hey-apm is a basic load generation tool for apm-server simulating different workloads. Back in the intake V1 days it was based on hey, but now it uses the Go APM agent to generate events.
hey-apm generates performance reports that can be indexed in Elasticsearch. It can be used manually or automatically (ie. in a CI environment)
hey-apm requires go modules support. Tested with go1.12.1.
go get github.com/elastic/hey-apm
docker build -t hey-apm -f docker/Dockerfile .
Run ./hey-apm -help
or see main.go
The Jenkinsfile
triggers sequentially:
scripts/jenkins/unit-test.sh
scripts/jenkins/run-bench-in-docker.sh
./scripts/jenkins/unit-test.sh 1.12.1
Run scripts/jenkins/run-bench-in-docker.sh
Run ELASTIC_STACK=<version> scripts/jenkins/run-bench-in-docker.sh
Run ELASTIC_STACK=<version> ES_URL=<url> ES_USER=<user> ES_PASS=<password> scripts/jenkins/run-bench-in-docker.sh
- A single Go agent (as hey-apm uses) can't push enough load to overwhelm the apm-server, as it will drop data too conservatively for benchmarking purposes.