elastic / hey-apm

Basic load generation for apm-server built on hey
Apache License 2.0
16 stars 16 forks source link

Build Status

Overview

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)

Requirements

hey-apm requires go modules support. Tested with go1.14.4.

Install

go get github.com/elastic/hey-apm

Docker build

docker build -t hey-apm -f docker/Dockerfile .

Usage

Run ./hey-apm -help or see main.go

CI

The Jenkinsfile triggers sequentially:

Requirements

Run scripts locally

  ./.ci/scripts/unit-test.sh 1.14

How to run locally the hey-apm using a docker-compose services

Run .ci/scripts/run-bench-in-docker.sh

Configure the ES stack version

Run ELASTIC_STACK=<version> .ci/scripts/run-bench-in-docker.sh

Configure the docker image for the ES stack

Run APM_DOCKER_IMAGE=<docker-image> .ci/scripts/run-bench-in-docker.sh

Configure the ES stack where to send the metrics to

Run ELASTIC_STACK=<version> ES_URL=<url> ES_USER=<user> ES_PASS=<password> .ci/scripts/run-bench-in-docker.sh

Known issues