Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions docs/adding_tracks.rst
Original file line number Diff line number Diff line change
Expand Up @@ -295,12 +295,7 @@ You can also show details about your track with ``esrally info --track-path=~/ra
5. force-merge
6. query-match-all (8 clients)

Congratulations, you have created your first track! You can test it with ``esrally race --distribution-version=7.14.1 --track-path=~/rally-tracks/tutorial``.

.. note::

To test the track with Elasticsearch prior to 7.0.0 you need to update ``index.json`` and ``track.json`` as specified in notes above and then execute ``esrally race --distribution-version=6.5.3 --track-path=~/rally-tracks/tutorial``.

Congratulations, you have created your first track! You can test it with ``esrally race --distribution-version=9.1.6 --track-path=~/rally-tracks/tutorial``.

.. _add_track_test_mode:

Expand Down
2 changes: 1 addition & 1 deletion docs/car.rst
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ You can now verify that everything works by listing all teams in this team repos

This shows all teams that are available on the ``master`` branch of this repository. Suppose you only created tracks on the branch ``2`` because you're interested in the performance of Elasticsearch 2.x, then you can specify also the distribution version::

esrally list teams --team-repository=private --distribution-version=7.0.0
esrally list teams --team-repository=private --distribution-version=9.1.6


Rally will follow the same branch fallback logic as described above.
Expand Down
8 changes: 4 additions & 4 deletions docs/cluster_management.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ In this section we will setup a single Elasticsearch node locally, run a benchma

First we need to install Elasticearch::

esrally install --quiet --distribution-version=7.4.2 --node-name="rally-node-0" --network-host="127.0.0.1" --http-port=39200 --master-nodes="rally-node-0" --seed-hosts="127.0.0.1:39300"
esrally install --quiet --distribution-version=9.1.6 --node-name="rally-node-0" --network-host="127.0.0.1" --http-port=39200 --master-nodes="rally-node-0" --seed-hosts="127.0.0.1:39300"

The parameter ``--network-host`` defines the network interface this node will bind to and ``--http-port`` defines which port will be exposed for HTTP traffic. Rally will automatically choose the transport port range as 100 above (39300). The parameters ``--master-nodes`` and ``--seed-hosts`` are necessary for the discovery process. Please see the respective Elasticsearch documentation on `discovery <https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>`_ for more details.

Expand Down Expand Up @@ -70,11 +70,11 @@ Levelling Up: Benchmarking a Cluster
This approach of being able to manage individual cluster nodes shows its power when we want to setup a cluster consisting of multiple nodes. At the moment Rally only supports a uniform cluster architecture but with this approach we can also setup arbitrarily complex clusters. The following examples shows how to setup a uniform three node cluster on three machines with the IPs ``192.168.14.77``, ``192.168.14.78`` and ``192.168.14.79``. On each machine we will issue the following command (pick the right one per machine)::

# on 192.168.14.77
export INSTALLATION_ID=$(esrally install --quiet --distribution-version=7.4.2 --node-name="rally-node-0" --network-host="192.168.14.77" --http-port=39200 --master-nodes="rally-node-0,rally-node-1,rally-node-2" --seed-hosts="192.168.14.77:39300,192.168.14.78:39300,192.168.14.79:39300" | jq --raw-output '.["installation-id"]')
export INSTALLATION_ID=$(esrally install --quiet --distribution-version=9.1.6 --node-name="rally-node-0" --network-host="192.168.14.77" --http-port=39200 --master-nodes="rally-node-0,rally-node-1,rally-node-2" --seed-hosts="192.168.14.77:39300,192.168.14.78:39300,192.168.14.79:39300" | jq --raw-output '.["installation-id"]')
# on 192.168.14.78
export INSTALLATION_ID=$(esrally install --quiet --distribution-version=7.4.2 --node-name="rally-node-1" --network-host="192.168.14.78" --http-port=39200 --master-nodes="rally-node-0,rally-node-1,rally-node-2" --seed-hosts="192.168.14.77:39300,192.168.14.78:39300,192.168.14.79:39300" | jq --raw-output '.["installation-id"]')
export INSTALLATION_ID=$(esrally install --quiet --distribution-version=9.1.6 --node-name="rally-node-1" --network-host="192.168.14.78" --http-port=39200 --master-nodes="rally-node-0,rally-node-1,rally-node-2" --seed-hosts="192.168.14.77:39300,192.168.14.78:39300,192.168.14.79:39300" | jq --raw-output '.["installation-id"]')
# on 192.168.14.79
export INSTALLATION_ID=$(esrally install --quiet --distribution-version=7.4.2 --node-name="rally-node-2" --network-host="192.168.14.79" --http-port=39200 --master-nodes="rally-node-0,rally-node-1,rally-node-2" --seed-hosts="192.168.14.77:39300,192.168.14.78:39300,192.168.14.79:39300" | jq --raw-output '.["installation-id"]')
export INSTALLATION_ID=$(esrally install --quiet --distribution-version=9.1.6 --node-name="rally-node-2" --network-host="192.168.14.79" --http-port=39200 --master-nodes="rally-node-0,rally-node-1,rally-node-2" --seed-hosts="192.168.14.77:39300,192.168.14.78:39300,192.168.14.79:39300" | jq --raw-output '.["installation-id"]')

Then we pick a random race id, e.g. ``fb38013d-5d06-4b81-b81a-b61c8c10f6e5`` and set it on each machine (including the machine where will generate load)::

Expand Down
39 changes: 17 additions & 22 deletions docs/command_line_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,23 +109,18 @@ Because ``--quiet`` is specified, Rally will suppress all non-essential output (

This subcommand can be used to download Elasticsearch distributions. Example::

esrally download --distribution-version=6.8.0 --quiet
esrally download --distribution-version=9.1.6 --quiet

This will download the OSS distribution of Elasticsearch 6.8.0. Because ``--quiet`` is specified, Rally will suppress all non-essential output (banners, progress messages etc.) and only return the location of the binary on the local machine after it has downloaded it::
This will download the OSS distribution of Elasticsearch 9.1.6. Because ``--quiet`` is specified, Rally will suppress all non-essential output (banners, progress messages etc.) and only return the location of the binary on the local machine after it has downloaded it::

{
"elasticsearch": "/Users/dm/.rally/benchmarks/distributions/elasticsearch-oss-6.8.0.tar.gz"
"elasticsearch": "/path/to/elasticsearch-9.1.6-darwin-aarch64.tar.gz"
}

To download the default distribution you need to specify a license (via ``--car``)::

esrally download --distribution-version=6.8.0 --car=basic-license --quiet
esrally download --distribution-version=9.1.6 --car=basic-license --quiet

This will show the path to the default distribution::

{
"elasticsearch": "/Users/dm/.rally/benchmarks/distributions/elasticsearch-6.8.0.tar.gz"
}

``delete``
~~~~~~~~~~~
Expand All @@ -143,7 +138,7 @@ The ``delete`` subcommand is used to delete records for different configuration

This subcommand can be used to install a single Elasticsearch node. Example::

esrally install --quiet --distribution-version=7.4.2 --node-name="rally-node-0" --network-host="127.0.0.1" --http-port=39200 --master-nodes="rally-node-0" --seed-hosts="127.0.0.1:39300"
esrally install --quiet --distribution-version=9.1.6 --node-name="rally-node-0" --network-host="127.0.0.1" --http-port=39200 --master-nodes="rally-node-0" --seed-hosts="127.0.0.1:39300"

This will output the id of this installation::

Expand Down Expand Up @@ -310,13 +305,13 @@ Used to specify the current node's name in the cluster when it is setup via the
This parameter is useful in benchmarks involved multiple Elasticsearch clusters. It's used to configure the cluster name of the current Elasticsearch node when it is setup via the ``install`` or ``race`` subcommand. The following example sets up two Elasticsearch clusters: ``cluster-1`` and ``cluster-2``, and each has two nodes::

# install node-1 in cluster-1
esrally install --quiet --distribution-version=8.2.2 --node-name="node-1" --cluster-name=cluster-1 --network-host="192.168.1.1" --http-port=39200 --master-nodes="node-1" --seed-hosts="192.168.1.1:39300,192.168.1.2:39300"
esrally install --quiet --distribution-version=9.1.6 --node-name="node-1" --cluster-name=cluster-1 --network-host="192.168.1.1" --http-port=39200 --master-nodes="node-1" --seed-hosts="192.168.1.1:39300,192.168.1.2:39300"
# install node-2 in cluster-1
esrally install --quiet --distribution-version=8.2.2 --node-name="node-2" --cluster-name=cluster-1 --network-host="192.168.1.2" --http-port=39200 --master-nodes="node-1" --seed-hosts="192.168.1.1:39300,192.168.1.2:39300"
esrally install --quiet --distribution-version=9.1.6 --node-name="node-2" --cluster-name=cluster-1 --network-host="192.168.1.2" --http-port=39200 --master-nodes="node-1" --seed-hosts="192.168.1.1:39300,192.168.1.2:39300"
# install node-3 in cluster-2
esrally install --quiet --distribution-version=8.2.2 --node-name="node-3" --cluster-name=cluster-2 --network-host="192.168.1.3" --http-port=39200 --master-nodes="node-3" --seed-hosts="192.168.1.3:39300,192.168.1.4:39300"
esrally install --quiet --distribution-version=9.1.6 --node-name="node-3" --cluster-name=cluster-2 --network-host="192.168.1.3" --http-port=39200 --master-nodes="node-3" --seed-hosts="192.168.1.3:39300,192.168.1.4:39300"
# install node-4 in cluster-2
esrally install --quiet --distribution-version=8.2.2 --node-name="node-4" --cluster-name=cluster-2 --network-host="192.168.1.4" --http-port=39200 --master-nodes="node-3" --seed-hosts="192.168.1.3:39300,192.168.1.4:39300"
esrally install --quiet --distribution-version=9.1.6 --node-name="node-4" --cluster-name=cluster-2 --network-host="192.168.1.4" --http-port=39200 --master-nodes="node-3" --seed-hosts="192.168.1.3:39300,192.168.1.4:39300"

If the ``cluster-name`` parameter is not specified, Rally will use ``rally-benchmark`` as the default cluster name.

Expand Down Expand Up @@ -425,14 +420,14 @@ Example::

Specifies the name of the target operating system for which an artifact should be downloaded. By default this value is automatically derived based on the operating system Rally is run. This command line flag is only applicable to the ``download`` subcommand and allows to download an artifact for a different operating system. Example::

esrally download --distribution-version=7.5.1 --target-os=linux
esrally download --distribution-version=9.1.6 --target-os=linux

``target-arch``
~~~~~~~~~~~~~~~

Specifies the name of the target CPU architecture for which an artifact should be downloaded. By default this value is automatically derived based on the CPU architecture Rally is run. This command line flag is only applicable to the ``download`` subcommand and allows to download an artifact for a different CPU architecture. Example::

esrally download --distribution-version=7.5.1 --target-arch=x86_64
esrally download --distribution-version=9.1.6 --target-arch=x86_64


``car``
Expand Down Expand Up @@ -481,7 +476,7 @@ Allows to override variables of Elasticsearch plugins. It accepts a list of comm

Example::

esrally race --track=geonames --distribution-version=6.1.1. --elasticsearch-plugins="x-pack:monitoring-http" --plugin-params="monitoring_type:'http',monitoring_host:'some_remote_host',monitoring_port:10200,monitoring_user:'rally',monitoring_password:'m0n1t0r1ng'"
esrally race --track=geonames --distribution-version=9.1.6 --elasticsearch-plugins="x-pack:monitoring-http" --plugin-params="monitoring_type:'http',monitoring_host:'some_remote_host',monitoring_port:10200,monitoring_user:'rally',monitoring_password:'m0n1t0r1ng'"

This enables the HTTP exporter of `X-Pack Monitoring <https://www.elastic.co/products/x-pack/monitoring>`_ and exports the data to the configured monitoring host.

Expand Down Expand Up @@ -594,9 +589,9 @@ This command line parameter sets the major version of the JDK that Rally should
Example::

# Run a benchmark with defaults
esrally race --track=geonames --distribution-version=7.0.0
esrally race --track=geonames --distribution-version=9.1.6
# Force to run with JDK 11
esrally race --track=geonames --distribution-version=7.0.0 --runtime-jdk=11
esrally race --track=geonames --distribution-version=9.1.6 --runtime-jdk=11

It is also possible to specify the JDK that is bundled with Elasticsearch with the special value ``bundled``. The `JDK is bundled from Elasticsearch 7.0.0 onwards <https://www.elastic.co/guide/en/elasticsearch/reference/7.0/release-highlights-7.0.0.html#_bundle_jdk_in_elasticsearch_distribution>`_.

Expand Down Expand Up @@ -640,10 +635,10 @@ If you want Rally to launch and benchmark a cluster using a binary distribution,

::

esrally race --track=geonames --distribution-version=7.0.0
esrally race --track=geonames --distribution-version=9.1.6


Rally will then benchmark the official Elasticsearch 7.0.0 distribution. Please check our :doc:`version support page </versions>` to see which Elasticsearch versions are currently supported by Rally.
Rally will then benchmark the official Elasticsearch 9.1.6 distribution. Please check our :doc:`version support page </versions>` to see which Elasticsearch versions are currently supported by Rally.

``distribution-repository``
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down Expand Up @@ -839,7 +834,7 @@ Here we define the necessary responses for a track that bulk-indexes data::

Save the above responses as ``responses.json`` and execute a benchmark as follows::

esrally race --track=geonames --challenge=append-no-conflicts-index-only --pipeline=benchmark-only --distribution-version=8.0.0 --client-options="static_responses:'responses.json'"
esrally race --track=geonames --challenge=append-no-conflicts-index-only --pipeline=benchmark-only --distribution-version=9.1.6 --client-options="static_responses:'responses.json'"

.. note::
Use ``--pipeline=benchmark-only`` as Rally should not start any cluster when static responses are used.
Expand Down
4 changes: 2 additions & 2 deletions docs/elasticsearch_plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ In order to tell Rally to install a plugin, use the ``--elasticsearch-plugins``

Example::

esrally race --track=geonames --distribution-version=7.12.0 --elasticsearch-plugins="analysis-icu,analysis-phonetic"
esrally race --track=geonames --distribution-version=9.1.6 --elasticsearch-plugins="analysis-icu,analysis-phonetic"

This will install the plugins ``analysis-icu`` and ``analysis-phonetic`` (in that order). In order to use the features that these plugins provide, you need to write a :doc:`custom track </adding_tracks>`.

Expand Down Expand Up @@ -216,7 +216,7 @@ As ``myplugin`` is not a core plugin, the Elasticsearch plugin manager does not
[distributions]
plugin.myplugin.release.url=https://example.org/myplugin/releases/{{VERSION}}/myplugin-{{VERSION}}.zip

Now you can run benchmarks with the custom Elasticsearch plugin, e.g. with ``esrally race --track=geonames --distribution-version=7.12.0 --elasticsearch-plugins="myplugin:simple"``.
Now you can run benchmarks with the custom Elasticsearch plugin, e.g. with ``esrally race --track=geonames --distribution-version=9.6.1 --elasticsearch-plugins="myplugin:simple"``.

For this to work you need ensure two things:

Expand Down
12 changes: 6 additions & 6 deletions docs/migrate.rst
Original file line number Diff line number Diff line change
Expand Up @@ -209,23 +209,23 @@ Rally requires a subcommand

Previously a subcommand was optional when running a benchmark. With Rally 2.1.0 a subcommand is always required. So instead of invoking::

esrally --distribution-version=7.10.0
esrally --distribution-version=9.1.6

Invoke Rally with the ``race`` subcommand instead::

esrally race --distribution-version=7.10.0
esrally race --distribution-version=9.1.6


Running without a track is deprecated
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Previously Rally has implicitly chosen the geonames track as default when ``--track`` was not provided. We want users to make a conscious choice of the workload and not specifying the track explicitly is deprecated (to be removed in Rally 2.2.0). So instead of invoking::

esrally race --distribution-version=7.10.0
esrally race --distribution-version=9.1.6

Invoke Rally with ``--track=geonames`` instead::

esrally race --distribution-version=7.10.0 --track=geonames
esrally race --distribution-version=9.1.6 --track=geonames


Migrating to Rally 2.0.4
Expand All @@ -236,11 +236,11 @@ Running without a subcommand is deprecated

Rally 2.0.4 will warn when invoked without subcommand. So instead of invoking::

esrally --distribution-version=7.10.0
esrally --distribution-version=9.1.6

Invoke Rally with the ``race`` subcommand instead::

esrally race --distribution-version=7.10.0
esrally race --distribution-version=9.1.6

When Rally is invoked without a subcommand it will issue the following warning on the command line and in the log file::

Expand Down
4 changes: 2 additions & 2 deletions docs/pipelines.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ from-distribution

This pipeline allows to benchmark an official Elasticsearch distribution which will be automatically downloaded by Rally. An example invocation::

esrally race --track=geonames --pipeline=from-distribution --distribution-version=7.0.0
esrally race --track=geonames --pipeline=from-distribution --distribution-version=9.1.6

The version numbers have to match the name in the download URL path.

Expand All @@ -42,7 +42,7 @@ However, this feature is mainly intended for continuous integration environments

.. note::

This pipeline is just mentioned for completeness but Rally will autoselect it for you. All you need to do is to define the ``--distribution-version`` flag.
This pipeline is just mentioned for completeness but Rally will auto-select it for you. All you need to do is to define the ``--distribution-version`` flag.

.. _pipelines_from-sources:

Expand Down
4 changes: 2 additions & 2 deletions docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ Run your first race

Now we're ready to run our first :doc:`race </glossary>`::

esrally race --distribution-version=6.5.3 --track=geonames
esrally race --distribution-version=9.1.6 --track=geonames

This will download Elasticsearch 6.5.3 and run the `geonames <https://github.com/elastic/rally-tracks/tree/master/geonames>`_ :doc:`track </glossary>` against it. After the race, a :doc:`summary report </summary_report>` is written to the command line:::
This will download Elasticsearch 9.1.6 and run the `geonames <https://github.com/elastic/rally-tracks/tree/master/geonames>`_ :doc:`track </glossary>` against it. After the race, a :doc:`summary report </summary_report>` is written to the command line:::


------------------------------------------------------
Expand Down
12 changes: 3 additions & 9 deletions docs/race.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ Starting a Race

To start a race you have to define the track and challenge to run. For example::

esrally race --distribution-version=6.0.0 --track=geopoint --challenge=append-fast-with-conflicts
esrally race --distribution-version=9.1.6 --track=geopoint --challenge=append-fast-with-conflicts

Rally will then start racing on this track. If you have never started Rally before, it should look similar to the following output::

$ esrally race --distribution-version=6.0.0 --track=geopoint --challenge=append-fast-with-conflicts
$ esrally race --distribution-version=9.1.6 --track=geopoint --challenge=append-fast-with-conflicts

____ ____
/ __ \____ _/ / /_ __
Expand All @@ -61,13 +61,7 @@ Rally will then start racing on this track. If you have never started Rally befo
/_/ |_|\__,_/_/_/\__, /
/____/

[INFO] Racing on track [geopoint], challenge [append-fast-with-conflicts] and car ['defaults'] with version [6.0.0].
[INFO] Downloading Elasticsearch 6.0.0 ... [OK]
[INFO] Rally will delete the benchmark candidate after the benchmark
[INFO] Downloading data from [http://benchmarks.elasticsearch.org.s3.amazonaws.com/corpora/geopoint/documents.json.bz2] (482 MB) to [/Users/dm/.rally/benchmarks/data/geopoint/documents.json.bz2] ... [OK]
[INFO] Decompressing track data from [/Users/dm/.rally/benchmarks/data/geopoint/documents.json.bz2] to [/Users/dm/.rally/benchmarks/data/geopoint/documents.json] (resulting size: 2.28 GB) ... [OK]
[INFO] Preparing file offset table for [/Users/dm/.rally/benchmarks/data/geopoint/documents.json] ... [OK]
Running index-update [ 0% done]
[INFO] Racing on track [geopoint], challenge [append-fast-with-conflicts] and car ['defaults'] with version [9.1.6].


The benchmark will take a while to run, so be patient.
Expand Down
Loading
Loading