Coach running drills to train qdrant deployments
  • Rust 97.2%
  • Shell 1.8%
  • Dockerfile 1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Arnaud Gourlay 2277fa15f0
Merge pull request #37 from qdrant/dependabot/cargo/security-updates-8681492501
Bump rustls from 0.23.43 to 0.23.46 in the security-updates group across 1 directory
2026-11-02 13:04:02 +01:00
.github Merge pull request #25 from qdrant/dependabot/github_actions/slackapi/slack-github-action-4.0.0 2026-07-30 17:42:14 +02:00
src Spread high_concurrency workers over several gRPC connections 2026-08-26 11:55:18 +02:00
.dockerignore add docker files 2022-11-18 12:23:23 +01:00
.gitignore add dedicated grpc health check timeout 2022-12-22 12:41:03 +01:00
Cargo.lock Merge pull request #37 from qdrant/dependabot/cargo/security-updates-8681492501 2026-11-02 13:04:02 +01:00
Cargo.toml fix clippy 2026-08-19 15:09:52 +02:00
coach-things.sh run qdrant in single node cluster mode 2025-10-20 11:39:11 +02:00
Dockerfile Bump lukemathwalker/cargo-chef 2026-10-30 17:13:53 +00:00
README.md misc fixes 2026-04-28 17:58:43 +02:00

coach

A coach running drills against a qdrant deployment (single node & distributed).

Those drills are run continuously to detect unexpected behaviors over a long period of time.

drills

  • collections_churn: drill that keeps on creating and deleting the same collections.
  • points_churn: drill that creates and deletes points in a collection.
  • points_search: drill that performs search requests on a collection.
  • points_upsert: drill that consistently updates the same points.
  • collection_snapshot_churn: drill that keeps on creating and deleting the same collection snapshot.
  • toggle_indexing: drill that toggles indexing once it is populated.
  • high_concurrency: drill that performs high concurrency requests on a collection.
  • large_retrieve: drill that retrieves a large number of points on a collection.
  • collection_concurrent_lifecycle: drill that performs concurrent collection lifecycle operations.
  • points_optional_vectors: drill that creates points with no data at first.

usage

Tool for coaching Qdrant instances

Usage: coach [OPTIONS]

Options:
      --uris <URIS>
          Qdrant gRPC service URIs (can be used several times to specify several URIs) [default: http://localhost:6334]
  -p, --parallel-drills <PARALLEL_DRILLS>
          Number of parallel drills to run [default: 2]
      --replication-factor <REPLICATION_FACTOR>
          Replication factor for collections [default: 1]
      --shard-number <SHARD_NUMBER>
          Number of shards for collections (`0` let the cluster decide) [default: 0]
      --write-consistency-factor <WRITE_CONSISTENCY_FACTOR>
          Writing consistency factor for collections [default: 1]
      --indexing-threshold <INDEXING_THRESHOLD>
          Optimizer indexing threshold
      --memmap-threshold <MEMMAP_THRESHOLD>
          Maximum size (in KiloBytes) of vectors to store in-memory per segment
      --recreate-collection
          Always create collection before the first run of a drill
      --use-scalar-quantization
          Whether to use scalar quantization for vectors
      --vectors-on-disk
          If true - serve vectors from disk. If set to false, the vectors will be loaded in RAM
      --payload-on-disk
          If true - point's payload will not be stored in memory
      --hnsw-on-disk
          If set to false, the index will be stored in RAM
      --max-indexing-threads <MAX_INDEXING_THREADS>
          Number of parallel threads used for background index building
      --stop-at-first-error
          Stop all drills at the first error encountered
      --only-healthcheck
          Only run the healthcheck for the input URI, no drills executed
      --health-check-delay-ms <HEALTH_CHECK_DELAY_MS>
          Delay between health checks [default: 100]
      --ignored-drills <IGNORED_DRILLS>
          Name of the drills to ignore
      --drills-to-run <DRILLS_TO_RUN>
          Name of the drills to run, ignore others
      --grpc-timeout-ms <GRPC_TIMEOUT_MS>
          Timeout of gRPC client [default: 5000]
      --grpc-health-check-timeout-ms <GRPC_HEALTH_CHECK_TIMEOUT_MS>
          Timeout of gRPC health client [default: 50]
  -h, --help
          Print help
  -V, --version
          Print version

e.g for a distributed deployment

./coach --uris "http://localhost:6334" \
        --uris "http://localhost:6344" \
        --uris "http://localhost:6354" \
        --recreate-collection \
        --replication-factor 2 \
        --indexing-threshold 1000

docker

Docker image available on Docker Hub.

# Download image
docker pull qdrant/coach:latest
# Run the tool
docker run qdrant/coach ./coach

API key

export QDRANT_API_KEY='X3CXTPlA....lLZi8y5gA'

or -e QDRANT_API_KEY='X3CXTPlA....lLZi8y5gA' with Docker.