Repolode
elastic

elastic/rally

Macrobenchmarking framework for Elasticsearch that sets up clusters, runs benchmark races, and compares results.

Stars
2,029
Forks
350
Open issues
132
Last commit
19 hours ago

What is it?

Rally is a benchmarking framework for Elasticsearch. It handles the setup and teardown of an Elasticsearch cluster, manages benchmark data and test specifications across Elasticsearch versions, runs the benchmarks, and records the results.

Rally can attach telemetry devices during a run to help locate performance problems, and it produces summary reports on the command line. It also supports comparing performance results between runs. The project emphasizes reproducible benchmark data.

Rally runs on Linux and macOS, and it can benchmark Elasticsearch clusters running on Windows. Running a benchmark is a single command, such as esrally race with a chosen distribution version and track.

Key features

  • 01Sets up and tears down Elasticsearch clusters for benchmarking.
  • 02Manages benchmark data and specifications across Elasticsearch versions.
  • 03Attaches telemetry devices to locate performance problems.
  • 04Produces summary reports and compares results between runs.

Use cases

  • Measuring indexing and query throughput of an Elasticsearch version upgrade.
  • Comparing cluster performance under different configurations or hardware.
  • Benchmarking an existing Elasticsearch cluster, including one on Windows.
  • Investigating performance regressions during Elasticsearch development.

Quick start

  1. 1

    Install Python 3.10+, pip3, git 1.9+ and a JDK, and set JAVA_HOME to that JDK

  2. 2

    Install Rally with pip

    pip3 install esrally
  3. 3

    Run your first race against Elasticsearch 6.0.0 with the geonames track

    esrally race --distribution-version=6.0.0 --track=geonames

Things to know

  • Rally itself must be installed on Unix machines; it is actively tested only on Linux and macOS.
  • It is built specifically for benchmarking Elasticsearch clusters.
  • Running races requires a suitable JDK installed and JAVA_HOME configured.

Topics

FAQ

What is rally?
Macrobenchmarking framework for Elasticsearch that sets up clusters, runs benchmark races, and compares results. Rally is a benchmarking framework for Elasticsearch. It handles the setup and teardown of an Elasticsearch cluster, manages benchmark data and test specifications across Elasticsearch versions, runs the benchmarks, and records the results.
Is rally free to use? What license does it have?
rally is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is rally still maintained?
Actively maintained. The last commit to rally was on Nov 6, 2026.
What can I use rally for?
Measuring indexing and query throughput of an Elasticsearch version upgrade. Comparing cluster performance under different configurations or hardware. Benchmarking an existing Elasticsearch cluster, including one on Windows. Investigating performance regressions during Elasticsearch development.
How do I install rally?
Install Python 3.10+, pip3, git 1.9+ and a JDK, and set JAVA_HOME to that JDK Install Rally with pip: pip3 install esrally Run your first race against Elasticsearch 6.0.0 with the geonames track: esrally race --distribution-version=6.0.0 --track=geonames
Where can I get rally?
The source code and installation instructions are on GitHub: https://github.com/elastic/rally

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects