Rally errors

I am trying to get to grips with Rally;

I run with a command line of;

esrally --pipeline=benchmark-only --target-hosts=localhost:9200

It fails almost immediately with the following exception;

Writing additional logs to /database/benchmark/races/2016-06-02-15-32-27/vcloud/logs/rally_out.log

____        ____     

/ __ ____ / / / __
/ // / __ `/ / / / / /
/ , / // / / / // /
/ ||_,///_, /

************** WARNING: A dark dungeon lies ahead of you **************

Rally dos not have control over the configuration of the benchmarked
Elasticsearch cluster.

Be aware that results may be misleading due to problems with the setup.
Rally is also not able to gather lots of metrics at all (like CPU usage
of the benchmarked cluster) or may even produce misleading metrics (like
the index size).

****** Use this pipeline only if you are aware of the tradeoffs. ******
*************************** Watch your step! ***************************

Racing on track 'geonames' with setup 'defaults'
Traceback (most recent call last):
File "/usr/bin/esrally", line 11, in
File "/usr/lib/python3.5/site-packages/esrally/rally.py", line 268, in main
success = race_control.start(subcommand)
File "/usr/lib/python3.5/site-packages/esrally/racecontrol.py", line 289, in start
raise e
File "/usr/lib/python3.5/site-packages/esrally/racecontrol.py", line 260, in start
File "/usr/lib/python3.5/site-packages/esrally/racecontrol.py", line 88, in run
File "/usr/lib/python3.5/site-packages/esrally/racecontrol.py", line 53, in run
step.run(track, track_setup)
File "/usr/lib/python3.5/site-packages/esrally/racecontrol.py", line 29, in run
self.command(self.ctx, track, track_setup)
File "/usr/lib/python3.5/site-packages/esrally/racecontrol.py", line 135, in benchmark_external
cluster = ctx.mechanic.start_engine_external(track, track_setup)
File "/usr/lib/python3.5/site-packages/esrally/mechanic/mechanic.py", line 39, in start_engine_external
return external_launcher.start(track, setup, self._metrics_store)
File "/usr/lib/python3.5/site-packages/esrally/mechanic/launcher.py", line 81, in start
self.setup_index(c, track, setup)
File "/usr/lib/python3.5/site-packages/esrally/mechanic/launcher.py", line 53, in setup_index
File "/usr/lib/python3.5/site-packages/elasticsearch/client/utils.py", line 69, in _wrapped
return func(*args, params=params, **kwargs)
File "/usr/lib/python3.5/site-packages/elasticsearch/client/indices.py", line 291, in put_mapping
'_mapping', doc_type), params=params, body=body)
File "/usr/lib/python3.5/site-packages/elasticsearch/transport.py", line 329, in perform_request
status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout)
File "/usr/lib/python3.5/site-packages/elasticsearch/connection/http_urllib3.py", line 109, in perform_request
self._raise_error(response.status, raw_data)
File "/usr/lib/python3.5/site-packages/elasticsearch/connection/base.py", line 108, in _raise_error
raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
elasticsearch.exceptions.RequestError: TransportError(400, 'mapper_parsing_exception', 'No handler for type [text] declared on field [cc2]')

Paging @danielmitterdorfer :slight_smile:

Hi @paulkeogh,

Rally tries to create an index for the benchmark but your cluster does not support this mapping syntax. Which version of Elasticsearch are you trying to benchmark?

By the way, Rally's support is not really great at benchmarking the 1.x and 2.x versions of Elasticsearch but support for your scenario is coming in the next days.


By the way, the issue I was talking about is here: https://github.com/elastic/rally/issues/69


Thanks for the reply.

I am using ES 2.3.3

Hi @paulkeogh,

Thanks! I see that I can get a configuration for Elasticsearch 2.3 into the next release (I expect that it will be out this week).


Hi @paulkeogh,

I have released a new version of Rally. After the upgrade your benchmark should work fine now. If anything is not working as expected, please just post here and we'll figure it out.


Notes from my recent CentOS-7 experience YMMV

I needed to have a more recent version of git 2.x (currently can't get that from EPEL on CentOS7 as its version is ancient) to support the '-C' option.

So, I needed to compile git from source.

On that note, I also needed to install curl-devel prior to compiling git, and got the following error before figuring that out:

Cloning into '/home/deploy/.rally/benchmarks/tracks/default'...
fatal: Unable to find remote helper for 'https'
ERROR: Cannot run benchmark
Reason: Could not clone from 'https://github.com/elastic/rally-tracks' to '/home/deploy/.rally/benchmarks/tracks/default'

But, after installing curl-devel and recompiling git from src I was able to start esrally.

Hi @cmcc123,

oh that is too bad. Sorry that it was so much hassle to set up everything. I hope it is running smooth now.

Do you remember which version of git you had installed before? I checked the git changelog before I used "-C" in Rally and I thought it is safe because according to the changelog "-C" is supported since git 1.8.5.


Hi Daniel,
Unfortunately, it looks like our CentOS-7 / EPEL was sporting the ancient git version

cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

git --version
git version


Hi Chris,

thanks for your help and looking up the version. To be honest I fear the missing "-C" option was just the start and other git flags on which Rally is relying are probably missing too.

I see whether I can get git 1.8 installed on a machine and improve the compatibility or if I find blockers on the way I'll at least document the minimum required git version in the docs.