prometheuscommunity/avalanche

By prometheuscommunity

Updated 3 days ago

prometheuscommunity/avalanche

Image
0

10K+

prometheuscommunity/avalanche repository overview

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
TLS flags for remote write
FlagDefaultDescription
--tls-client-insecurefalseSkip server certificate verification
--tls-client-cert-file""Path to PEM-encoded client certificate (mTLS)
--tls-client-key-file""Path to PEM-encoded client private key (mTLS)
--tls-ca-cert-file""Path to PEM-encoded CA certificate to verify the server

--tls-client-cert-file and --tls-client-key-file must be set together or not at all.

Example with mTLS:

avalanche --remote-url=https://example.com/api/v1/push \
  --tls-client-cert-file=client.crt \
  --tls-client-key-file=client.key \
  --tls-ca-cert-file=ca.crt
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

Tag summary

Content type

Image

Digest

sha256:4b2139e51

Size

17.5 MB

Last updated

3 days ago

docker pull prometheuscommunity/avalanche:main