Metric Records

Apache Solr Benchmark stores metrics as individual JSON documents. When the filesystem metrics store is active (the default), each document is appended as a single line to ~/.solr-benchmark/benchmarks/test-runs/<run-id>/metrics.jsonl.

The following example shows a single service_time record produced during a bulk-index operation on the nyc_taxis workload:

{
  "@timestamp": 1691702842821,
  "relative-time-ms": 65.9,
  "test-run-id": "8c43ee4c-cb34-494b-81b2-181be244f832",
  "test-run-timestamp": "20230810T212711Z",
  "environment": "local",
  "workload": "nyc_taxis",
  "test_procedure": "append-no-conflicts",
  "cluster-config-instance": "external",
  "name": "service_time",
  "value": 42.3,
  "unit": "ms",
  "sample-type": "normal",
  "meta": {
    "collection": "nyc_taxis",
    "took": 13,
    "success": true,
    "success-count": 125,
    "error-count": 0
  },
  "task": "bulk-index",
  "operation": "bulk-index",
  "operation-type": "bulk"
}

Field reference

Field Description
@timestamp The timestamp of when the sample was taken, in milliseconds since the Unix epoch. For request-related measurements this marks the moment Solr Benchmark issued the request.
relative-time-ms The relative time since the start of the benchmark, in milliseconds. This is useful for aligning time-series data across multiple test runs because it is always measured from the same benchmark-internal zero point.
test-run-id A UUID that uniquely identifies this invocation of the workload. Every metric record from a single run shares the same value.
test-run-timestamp The timestamp of when the workload was invoked, always expressed in UTC (for example 20230810T212711Z).
environment The name of the benchmark environment, as set in the configuration. Different benchmark environments can be distinguished using this field when analyzing metrics from multiple setups.
workload The name of the workload that produced this metric (for example nyc_taxis or geonames).
test_procedure The name of the test procedure (challenge) that was executed within the workload.
cluster-config-instance The name of the cluster configuration instance used during this run (for example external, docker, defaults).
name The metric key that identifies what was measured. See Metric Keys for the complete list.
value The measured value.
unit The unit of the measurement, such as ms, bytes, ops/s, or an empty string for dimensionless counts.
sample-type Either warmup or normal. Only normal samples are included in the reported percentiles and summaries. Warmup samples are collected for priming the benchmark but excluded from results.
task The name of the workload task that produced this sample (corresponds to an operation defined in the workload).
operation The operation name within the task (often the same as task).
operation-type The operation type as registered by the runner, for example bulk, search, commit, or telemetry.
meta Supplementary context recorded alongside the measurement. Contents vary by operation type — see below.

The meta object

The meta object carries additional context that is specific to the type of operation that produced the record. Common fields include:

Field Description
success true if the operation completed without an error; false if Solr returned an error or the request timed out.
success-count For bulk operations, the number of documents successfully indexed in this batch.
error-count For bulk operations, the number of documents that failed to index in this batch.
collection The Solr collection name targeted by the operation.
took The QTime value reported by Solr, in milliseconds.
hits For search operations, the total number of matching documents reported by Solr.
tag_* Any key–value pairs supplied via --user-tag are stored with a tag_ prefix, for example tag_intention: baseline.

Telemetry records (collected by background polling devices) carry additional node-level context in meta, such as the Solr node name.