An open API service indexing awesome lists of open source software.

https://github.com/apache/solr-orbit

Apache Solr Orbit macrobenchmarking framework
https://github.com/apache/solr-orbit

apache benchmarking macrobenchmark performance python solr

Last synced: 21 days ago
JSON representation

Apache Solr Orbit macrobenchmarking framework

Awesome Lists containing this project

README

          

# Apache Solr Orbit

Apache Solr Orbit is a macrobenchmarking framework for [Apache Solr](https://solr.apache.org/).

It is a fork/port of [Rally](https://github.com/elastic/rally)/[Opensearch Benchmark](https://github.com/opensearch-project/opensearch-benchmark), ported to work with Apache Solr.

## Documentation

Full documentation is available in [`docs/`](docs/) folder of this repository. Build the docs with jekyll.
A public documentation site is available at [https://apache.github.io/solr-orbit/](https://apache.github.io/solr-orbit/).

**This is a Work in Progress**

## What is Apache Solr Orbit?

If you are looking to performance test Apache Solr, this tool can help you with:

* Running performance benchmarks and recording results
* Setting up and tearing down Solr clusters for benchmarking (local distribution, build-from-source or Docker, including nightly builds)
* Managing benchmark workloads (collections, configsets, search operations)
* Run same workload against multiple Solr versions or multiple cluster-configurations (heap size, GC settings, etc.)
* Collecting JVM, node, and collection metrics via telemetry devices
* Output results for each run in JSON format, suitable for analysis and dashboarding
* Assist in converting existing OpenSearch Benchmark workloads to Solr format

## Quick Start

### Install

**NOTE**: We do not offer the tool as a python package yet

```bash
pip install -e .
```

### Run a benchmark against a Solr version in Docker

```bash
solr-orbit run \
--pipeline=docker \
--distribution-version=9.10.1 \
--workload=nyc_taxis \
--test-mode
```

**Note**: Defaults to cloud mode (SolrCloud with embedded ZooKeeper).

### Provision Solr locally, then benchmark

```bash
solr-orbit run \
--pipeline=from-distribution \
--distribution-version=9.10.1 \
--workload=nyc_taxis \
--test-mode
```

**Note**: Always uses cloud mode (SolrCloud with embedded ZooKeeper).

### Provision Solr from source, then benchmark

```bash
solr-orbit run \
--pipeline=from-sources \
--distribution-version=9.10.1 \
--workload=nyc_taxis \
--test-mode
```

## Workload format

See [Workload Reference](https://apache.github.io/solr-orbit/reference/workloads/) in the documentation for the full `workload.json` format, including `collections`, `corpora`, `operations`, and `test-procedures`.

Pre-built workloads are available at [https://github.com/apache/solr-orbit-workloads](https://github.com/apache/solr-orbit-workloads). Feel free to
contribute your own with a pull request!

## Result output

Each test-run outputs a **test_run.json**, a complete canonical record of the benchmark run including:
- Benchmark metadata (version, environment, pipeline, user tags)
- Workload and test procedure information
- Cluster configuration specification (heap size, GC settings, all variables)
- Detailed operation metrics (throughput, latency, error rates)
- System metrics (GC times, merge times, segment counts, etc.)

This output can be used for further analysis, comparison and dashboarding.

## License

Apache License, Version 2.0. See [LICENSE](LICENSE) for the full text.

This product includes software developed by the OpenSearch Contributors, and
prior to that by Elasticsearch (Rally). Full attribution is in [NOTICE](NOTICE).