Rally 0.8.0 released

We have just released Rally 0.8.0. This is a fairly big release with several bug fixes and improvements.

Highlights

Track parameters

You can now define parameters in your own tracks and use the new command line parameter --track-params to set them on the command line so you can vary certain parameters like bulk sizes, client counts, throughput rates or specific index settings without modifying the track file.

Rally's default tracks have been adapted to expose parameters such as the bulk size (see each track's README, e.g. geonames README) but you can use this feature in your own tracks too.

Simpler track syntax

We have also improved the track syntax so it is easier to define your own workloads:

  • With #326 you don't need a separate operations block anymore.
  • We have made several properties in track files optional with #353.
  • In #369 have renamed the bulk-indexing operation from "index" to "bulk" (backwards-compatible) because this has confused several users in the past.
  • If you have only one challenge in your track file, you can now use the challenge element instead of a challenges array (see #352).
  • We've introduced two new operations in Rally core: cluster-health (see 364) and put-pipeline (see #371).

Here is the shortest possible track syntax as of Rally 0.8.0 for a benchmark that issues a match_all query (assuming you have a pre-existing index with data):

{
  "challenge": {
    "name": "just-search",
    "schedule": [
      {
        "operation": {
          "operation-type": "search",
          "index": "_all",
          "body": {
            "query": {
              "match_all": {}
            }
          }
        },
        "warmup-iterations": 100,
        "iterations": 100,
        "target-throughput": 10
      }
    ]
  }
}

Breaking changes

There are a few breaking changes but they mostly affect you if you have created your own tracks:

  • Number of iterations are treated per client now: Rally will issue a warning on the command line if you are affected (see #350 for details)
  • Rally will check now whether your task names are unique: If not, then you just need to specify a name for the task now to make it unique (see #351 for details)
  • Rally's default socket timeout is now 60 seconds: If you need a longer timeout, e.g. 2 minutes, then you can specify this with. --client-options="timeout:120" (see #356 for details).

See the full list of changes on the 0.8.0 release page.

How to...?

  • ... upgrade: pip3 install --upgrade esrally
  • ... install: pip3 install esrally

Note: Depending on your system setup you probably need to prepend these commands with sudo.

Please follow the quickstart for a first time install.

Questions and Feedback

If you have questions or feedback, please just post in the Rally forum.