Avalanche is a load-testing binary capable of generating metrics that can be either:
- scraped via Prometheus scrape formats (including OpenMetrics) endpoint.
- written via Prometheus Remote Write (v1 only for now) to a target endpoint.
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.
go install github.com/prometheus-community/avalanche/cmd/avalanche@latest
${GOPATH}/bin/avalanche --help
docker run quay.io/prometheuscommunity/avalanche:latest --help
NOTE: We recommend using pinned image to a certain version (see all tags here)
See example k8s manifest for deploying avalanche as an always running scrape target.
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.
Two endpoints are available :
/metrics
- metrics endpoint/health
- healthcheck endpoint