avalanche
Avalanche is a load-testing binary capable of generating metrics that can be either:
This allows load testing services that can scrape (e.g. Prometheus, OpenTelemetry Collector and so), as well as, services accepting data via Prometheus remote_write API such as Thanos, Cortex, M3DB, VictoriaMetrics and other services listed here.
Metric names and unique series change over time to simulate series churn.
Checkout the (old-ish) blog post.
Installing
Locally
go install github.com/prometheus-community/avalanche/cmd/avalanche@latest
${GOPATH}/bin/avalanche --help
Docker
docker run quay.io/prometheuscommunity/avalanche:latest --help
NOTE: We recommend using pinned image to a certain version (see all tags here)
Using
See example k8s manifest for deploying avalanche as an always running scrape target.
Configuration
See --help
for all flags and their documentation.
Notably, from 0.6.0 version, avalanche
allows specifying various counts per various metric types.
You can choose you own distribution, but usually it makes more sense to mimic realistic distribution used by your example targets. Feel free to use a handy mtypes
Go CLI to gather type distributions from a target and generate avalanche flags from it.
On top of scrape target functionality, avalanche is capable of Remote Write client load simulation, following the same, configured metric distribution via --remote*
flags.
Endpoints
Two endpoints are available :
/metrics
- metrics endpoint
/health
- healthcheck endpoint