{"id":13605009,"url":"https://github.com/elastic/rally","last_synced_at":"2025-05-13T17:09:54.356Z","repository":{"id":261787225,"uuid":"47140131","full_name":"elastic/rally","owner":"elastic","description":"Macrobenchmarking framework for Elasticsearch","archived":false,"fork":false,"pushed_at":"2025-04-14T13:27:44.000Z","size":9444,"stargazers_count":1985,"open_issues_count":121,"forks_count":315,"subscribers_count":375,"default_branch":"master","last_synced_at":"2025-05-12T00:17:42.430Z","etag":null,"topics":["elasticsearch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elastic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-11-30T19:11:43.000Z","updated_at":"2025-05-07T13:06:22.000Z","dependencies_parsed_at":"2025-01-03T06:30:15.167Z","dependency_job_id":"a6f6ad0a-a7e5-4f57-a943-3d7579fdef6c","html_url":"https://github.com/elastic/rally","commit_stats":{"total_commits":2469,"total_committers":82,"mean_commits":"30.109756097560975","dds":"0.31510733090319965","last_synced_commit":"0cc6bd5b2bb532f619afe224a3b71f16a930a4e4"},"previous_names":["elastic/rally"],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Frally","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Frally/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Frally/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elastic%2Frally/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elastic","download_url":"https://codeload.github.com/elastic/rally/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253655523,"owners_count":21943063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elasticsearch"],"created_at":"2024-08-01T19:00:53.639Z","updated_at":"2025-05-13T17:09:49.341Z","avatar_url":"https://github.com/elastic.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg alt=\"Rally logo\" src=\"https://raw.githubusercontent.com/elastic/rally/master/docs/rally-logo.svg\" width=\"350px\"\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eRally\u003c/h1\u003e\n\nRally is the macrobenchmarking framework for Elasticsearch\n\n## What is Rally?\n\nYou want to benchmark Elasticsearch? Then Rally is for you. It can help you with the following tasks:\n\n* Setup and teardown of an Elasticsearch cluster for benchmarking\n* Management of benchmark data and specifications even across Elasticsearch versions\n* Running benchmarks and recording results\n* Finding performance problems by attaching so-called telemetry devices\n* Comparing performance results\n\nWe have also put considerable effort in Rally to ensure that benchmarking data are reproducible.\n\n## Quick Start\n\nRally is developed for Unix and is actively tested on Linux and macOS. Rally supports [benchmarking Elasticsearch clusters running on Windows](http://esrally.readthedocs.io/en/stable/recipes.html#benchmarking-an-existing-cluster) but Rally itself needs to be installed on machines running Unix.\n\n### Installing Rally\n\n**Note**: If you actively develop on Elasticsearch, we recommend that you [install Rally in development mode](https://esrally.readthedocs.io/en/latest/developing.html#installation-instructions-for-development) instead as Elasticsearch is fast moving and Rally always adapts accordingly to the latest main version.\n\nInstall Python 3.9+ including `pip3`, git 1.9+ and an [appropriate JDK to run Elasticsearch](https://www.elastic.co/support/matrix#matrix_jvm). Be sure that `JAVA_HOME` points to that JDK. Then run the following command, optionally prefixed by `sudo` if necessary:\n\n    pip3 install esrally\n\n\nIf you have any trouble or need more detailed instructions, please look in the [detailed installation guide](https://esrally.readthedocs.io/en/latest/install.html).\n\n## Run your first race\n\nNow we're ready to run our first race:\n\n    esrally race --distribution-version=6.0.0 --track=geonames\n\nThis will download Elasticsearch 6.0.0 and run Rally's default track - the [geonames track](https://github.com/elastic/rally-tracks/tree/master/geonames) - against it. After the race, a summary report is written to the command line:\n\n    ------------------------------------------------------\n        _______             __   _____\n       / ____(_)___  ____ _/ /  / ___/_________  ________\n      / /_  / / __ \\/ __ `/ /   \\__ \\/ ___/ __ \\/ ___/ _ \\\n     / __/ / / / / / /_/ / /   ___/ / /__/ /_/ / /  /  __/\n    /_/   /_/_/ /_/\\__,_/_/   /____/\\___/\\____/_/   \\___/\n    ------------------------------------------------------\n\n    |                         Metric |                 Task |     Value |   Unit |\n    |-------------------------------:|---------------------:|----------:|-------:|\n    |            Total indexing time |                      |   28.0997 |    min |\n    |               Total merge time |                      |   6.84378 |    min |\n    |             Total refresh time |                      |   3.06045 |    min |\n    |               Total flush time |                      |  0.106517 |    min |\n    |      Total merge throttle time |                      |   1.28193 |    min |\n    |               Median CPU usage |                      |     471.6 |      % |\n    |             Total Young Gen GC |                      |    16.237 |      s |\n    |               Total Old Gen GC |                      |     1.796 |      s |\n    |                     Index size |                      |   2.60124 |     GB |\n    |                  Total written |                      |   11.8144 |     GB |\n    |         Heap used for segments |                      |   14.7326 |     MB |\n    |       Heap used for doc values |                      |  0.115917 |     MB |\n    |            Heap used for terms |                      |   13.3203 |     MB |\n    |            Heap used for norms |                      | 0.0734253 |     MB |\n    |           Heap used for points |                      |    0.5793 |     MB |\n    |    Heap used for stored fields |                      |  0.643608 |     MB |\n    |                  Segment count |                      |        97 |        |\n    |                 Min Throughput |         index-append |   31925.2 | docs/s |\n    |              Median Throughput |         index-append |   39137.5 | docs/s |\n    |                 Max Throughput |         index-append |   39633.6 | docs/s |\n    |      50.0th percentile latency |         index-append |   872.513 |     ms |\n    |      90.0th percentile latency |         index-append |   1457.13 |     ms |\n    |      99.0th percentile latency |         index-append |   1874.89 |     ms |\n    |       100th percentile latency |         index-append |   2711.71 |     ms |\n    | 50.0th percentile service time |         index-append |   872.513 |     ms |\n    | 90.0th percentile service time |         index-append |   1457.13 |     ms |\n    | 99.0th percentile service time |         index-append |   1874.89 |     ms |\n    |  100th percentile service time |         index-append |   2711.71 |     ms |\n    |                           ...  |                  ... |       ... |    ... |\n    |                           ...  |                  ... |       ... |    ... |\n    |                 Min Throughput |     painless_dynamic |   2.53292 |  ops/s |\n    |              Median Throughput |     painless_dynamic |   2.53813 |  ops/s |\n    |                 Max Throughput |     painless_dynamic |   2.54401 |  ops/s |\n    |      50.0th percentile latency |     painless_dynamic |    172208 |     ms |\n    |      90.0th percentile latency |     painless_dynamic |    310401 |     ms |\n    |      99.0th percentile latency |     painless_dynamic |    341341 |     ms |\n    |      99.9th percentile latency |     painless_dynamic |    344404 |     ms |\n    |       100th percentile latency |     painless_dynamic |    344754 |     ms |\n    | 50.0th percentile service time |     painless_dynamic |    393.02 |     ms |\n    | 90.0th percentile service time |     painless_dynamic |   407.579 |     ms |\n    | 99.0th percentile service time |     painless_dynamic |   430.806 |     ms |\n    | 99.9th percentile service time |     painless_dynamic |   457.352 |     ms |\n    |  100th percentile service time |     painless_dynamic |   459.474 |     ms |\n\n    ----------------------------------\n    [INFO] SUCCESS (took 2634 seconds)\n    ----------------------------------\n\n\n## Getting help\n\n* Quick help: `esrally --help`\n* Look in [Rally's user guide](https://esrally.readthedocs.io/) for more information\n* Ask questions about Rally in the [Rally Discuss forum](https://discuss.elastic.co/tags/c/elastic-stack/elasticsearch/rally).\n* File improvements or bug reports in our [Github repo](https://github.com/elastic/rally/issues).\n\n## How to Contribute\n\nSee all details in the [contributor guidelines](https://github.com/elastic/rally/blob/master/CONTRIBUTING.md).\n\n\n## License\n\nThis software is licensed under the Apache License, version 2 (\"ALv2\"), quoted below.\n\nCopyright 2015-2021 Elasticsearch \u003chttps://www.elastic.co\u003e\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\n\n\u003e http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Frally","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felastic%2Frally","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felastic%2Frally/lists"}