ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
    • Supported Driver Versions
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Search Ask AI
ScyllaDB Docs ScyllaDB Monitoring Download and Install Scylla Monitoring Stack Using Docker Compose
For AI agents: a documentation index is available at https://monitoring.docs.scylladb.com/branch-4.17/llms.txt. A Markdown version of this page is at https://monitoring.docs.scylladb.com/branch-4.17/install/docker-compose.md.

Caution

You're viewing documentation for an unstable version of ScyllaDB Monitoring. Switch to the latest stable version.

Using Docker Compose¶

Scylla-Monitoring Stack is container-based. You can start and stop the Scylla Monitoring Stack with the start-all.sh and kill-all.sh scripts.

Docker Compose is an alternative way to run the same stack. make_compose.py takes the start-all.sh command-line options and writes a docker-compose.yml file, an .env file and the configuration files for the stack that start-all.sh would run with those options.

Warning

docker compose up and start-all.sh are two alternative ways to launch Scylla Monitoring Stack. You should use one method, not both. Run ./kill-all.sh before switching from start-all.sh to Docker Compose.

Prerequisite¶

  • docker with the docker compose plugin.

  • Python 3 with PyYAML (python3-yaml). Only Docker Compose needs Python; start-all.sh does not.

Generate the Compose File¶

Run make_compose.py from the monitoring directory, with the options you would pass to start-all.sh, for example:

./make_compose.py -d /path/to/prometheus/data -v 2025.3 -s prometheus/scylla_servers.yml

make_compose.py accepts every start-all.sh option (see The start-all.sh script), reads env.sh the same way, and rejects an option it cannot express in Docker Compose. It writes:

  • docker-compose.yml, with one service per container start-all.sh runs, with the same container names, so kill-all.sh finds them.

  • .env (0600), with the secrets only: the Grafana admin password, the Grafana renderer token and the Datadog API key.

  • The Prometheus configuration, the Grafana data source and dashboard provisioning, and the Loki, Alloy or Promtail configuration.

Then start the stack:

docker compose up -d

Or let make_compose.py run it, with --compose:

./make_compose.py --compose -d /path/to/prometheus/data -v 2025.3

./start-all.sh --compose [options] does the same.

All the containers start in parallel, so the stack is up sooner than with start-all.sh.

Running make_compose.py again overwrites the generated files. Changing an option and running it again with --compose recreates only the containers whose definition or configuration files changed. Keep your changes in the options, not in the generated files.

Options¶

–compose Also run docker compose up -d --remove-orphans.

–traefik Add traefik, which serves the stack over TLS with mutual authentication. Set PRIVATE_IP (the address traefik listens on) and CERT_DIR (the directory with server.crt, server.key and rootCA.crt) in the environment. --traefik needs -A 127.0.0.1, so traefik is the only way in, and cannot be used with -l. With --compose, traefik starts after the rest of the stack, once start-traefik.sh --check finds no proxied port reachable outside loopback.

–stack id Run a secondary stack. Its Compose project is scylla-monitoring-stack<id>, written to docker-compose.stack<id>.yml and .env.stack<id>, so it does not replace the first one. Pass -f docker-compose.stack<id>.yml --env-file .env.stack<id> to docker compose to act on it.

-D and the per-container --limit, --volume and --param options are translated to Docker Compose settings, for example:

./make_compose.py --limit prometheus,--memory=8g --limit grafana,--cpus=1

Start and Stop¶

To stop the stack, run docker compose down (or ./kill-all.sh) in the monitoring directory. To start it again, run docker compose up -d.

The Configuration File¶

scylla_monitoring_config.py --compose applies a configuration file to a stack run with Docker Compose. See Configure the Stack from One File.

Note

make-compose.sh is deprecated. Use make_compose.py.

Was this page helpful?

PREVIOUS
Deploying Scylla Monitoring Stack Without Docker
NEXT
Configure the Stack from One File
  • Create an issue
  • Edit this page

On this page

  • Using Docker Compose
    • Prerequisite
    • Generate the Compose File
    • Options
    • Start and Stop
    • The Configuration File
ScyllaDB Monitoring
Search Ask AI
  • 4.17
    • 4.17
    • 4.16
    • 4.15
    • 4.14
    • 4.13
    • 4.12
    • 4.11
    • 4.10
    • 4.9
    • 4.8
    • 4.7
    • 4.6
    • 4.5
    • 4.4
    • 4.3
    • 4.2
    • 4.1
    • 4.0
  • Introduction
  • Download and Install
    • Install
    • The start-all.sh script
    • Deploy without Docker
    • Docker Compose
    • Configure from One File
    • System Recommendations
    • Using Thanos
  • User Guide
    • CQL Optimization Dashboard
    • Advisor
      • Some queries use ALLOW FILTERING
      • Some queries use Consistency Level: ALL
      • Some queries use Consistency Level: ANY
      • Some queries are not token-aware
      • Some SELECT queries are non-paged
      • Some queries are non-prepared
      • Compaction takes lots of memory and CPU
      • Some operation failed due to unsatisfied consistency level
      • I/O Errors can indicate a node with a faulty disk
      • Some operations failed on the replica side
      • CQL queries are not balanced among shards
      • Prepared statements cache eviction
      • System Overload
  • Procedures
    • Cloud Users Datadog integration
    • Datadog Integration
    • Alert Manager
      • Alerting
    • Adding and Modifying Dashboards
    • Upgrade Guides
      • Monitoring 4.x to 4.y
      • Monitoring 3.x to 4.y
      • Monitoring 3.x to 3.y
      • Monitoring 2.x to 3.y
      • Monitoring 2.x to 2.y
      • Monitoring 1.x to 2.x
  • Upgrade
    • Monitoring 4.x to 4.y
    • Monitoring 3.x to 4.y
    • Monitoring 3.x to 3.y
    • Monitoring 2.x to 3.y
    • Monitoring 2.x to 2.y
    • Monitoring 1.x to 2.x
  • Troubleshooting
    • Troubleshooting
    • Troubleshooting Guide for Scylla Manager and Scylla Monitor Integration
  • Reference
    • Support Matrix
    • Interfaces
  • GitHub Project
Docs Tutorials University Contact Us About Us
© 2026, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 26 October 2026.
Powered by Sphinx 9.1.0 & ScyllaDB Theme 1.9.3