services:
grafana:
image: grafana/grafana@sha256:ba93c9d192e58b23e064c7f501d453426ccf4a85065bf25b705ab1e98602bfb1
environment:
GF_AUTH_ANONYMOUS_ENABLED: "false"
GF_INSTALL_PLUGINS: grafana-clickhouse-datasource
GF_LOG_LEVEL: debug
GF_SERVER_ROUTER_LOGGING: "true"
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
ports:
- 3000:3000/tcp
volumes:
- ./testdata/provisioning:/etc/grafana/provisioning
- ./testdata/dashboards:/var/lib/grafana/dashboards
renderer:
image: grafana/grafana-image-renderer:latest@sha256:a3e58eb1fe07482c96d5a7e19eda1c1f272732f29b4d7d20c11a73c889efaed2
ports:
- 8081
prometheus:
image: prom/prometheus@sha256:1f0f50f06acaceb0f5670d2c8a658a599affe7b0d8e78b898c1035653849a702
ports:
- "9090:9090"
entrypoint: /etc/prometheus/entrypoint.sh
volumes:
- ./testdata/prometheus.yml:/etc/prometheus/prometheus.yml
- ./testdata/prometheus-seed.yml:/etc/prometheus/prometheus-seed.yml
- ./testdata/prometheus-entrypoint.sh:/etc/prometheus/entrypoint.sh
loki:
image: grafana/loki:3.6.4@sha256:be31579ac047e9f78b81e48f3b69d3af709e7299b431d5aa78bcda43382f9511
ports:
- "3100:3100"
command: -config.file=/etc/loki/loki-config.yml
volumes:
- ./testdata/loki-config.yml:/etc/loki/loki-config.yml
- ./testdata/loki-rules.yml:/loki/rules/fake/loki-rules.yml
promtail:
image: grafana/promtail:3.6.3@sha256:130b6dd63277d99ce87560c0266c0c30d07bc15ba0a8a590d42215465d4f5363
volumes:
- ./testdata/promtail-config.yml:/etc/promtail/config.yml
- /var/run/docker.sock:/var/run/docker.sock
command: -config.file=/etc/promtail/config.yml
depends_on:
- loki
pyroscope:
image: grafana/pyroscope:1.18.0@sha256:e7edae4fd99dbb8695a1e03d7db96ab247630cf83842407908922b2f66aafc6a
ports:
- 4040:4040
tempo:
image: grafana/tempo:2.10.0-rc.0@sha256:ab73a4fa3586e866be3322507491b66d49c9607592128b72b3aad80e3b355a12
command: ["-config.file=/etc/tempo/tempo-config.yaml"]
volumes:
- ./testdata/tempo-config.yaml:/etc/tempo/tempo-config.yaml
ports:
- "3200:3200" # tempo HTTP API
- "4317:4317" # OTLP gRPC receiver
- "4318:4318" # OTLP HTTP receiver
tempo2:
image: grafana/tempo:2.10.0-rc.0@sha256:ab73a4fa3586e866be3322507491b66d49c9607592128b72b3aad80e3b355a12
command: ["-config.file=/etc/tempo/tempo-config.yaml"]
volumes:
- ./testdata/tempo-config-2.yaml:/etc/tempo/tempo-config.yaml
ports:
- "3201:3201" # tempo instance 2
alertmanager:
image: prom/alertmanager:v0.30.1@sha256:286ad8838533a5a01d89bd09643f43d2b68b65203123b5700e54a8f80ff9c1f4
ports:
- "9093:9093"
volumes:
- ./testdata/alertmanager.yml:/etc/alertmanager/alertmanager.yml
command:
- "--config.file=/etc/alertmanager/alertmanager.yml"
- "--storage.path=/alertmanager"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- "9200:9200"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:9200/_cluster/health | grep -q '\"status\":\"green\"\\|\"status\":\"yellow\"'"]
interval: 10s
timeout: 5s
retries: 10
elasticsearch-seed:
image: curlimages/curl:8.12.1
depends_on:
elasticsearch:
condition: service_healthy
volumes:
- ./testdata/elasticsearch-seed.sh:/seed.sh
entrypoint: ["sh", "/seed.sh"]
localstack:
image: localstack/localstack:4.13@sha256:46302bcb91a7e8008e6394be8afafdbfa40fb77a54d4046a38be35992042d5de
ports:
- "4566:4566"
environment:
SERVICES: cloudwatch,logs
AWS_DEFAULT_REGION: us-east-1
EAGER_SERVICE_LOADING: 1
volumes:
- ./testdata/localstack-init.sh:/etc/localstack/init/ready.d/init.sh
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4566/_localstack/health"]
interval: 10s
timeout: 5s
retries: 5
clickhouse:
image: clickhouse/clickhouse-server:25.10@sha256:8d1a479c36a4556eeb0556ad36141b194cf6a4a4020f9def391c1570fd1570b7
ports:
- "8123:8123"
- "9000:9000"
volumes:
- ./testdata/clickhouse-init.sql:/docker-entrypoint-initdb.d/init.sql
- ./testdata/clickhouse-users.xml:/etc/clickhouse-server/users.d/default-user.xml
healthcheck:
test: ["CMD", "clickhouse-client", "--query", "SELECT 1"]
interval: 10s
timeout: 5s
retries: 5