Files
renovate-sh-app[bot]zeekayrenovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
b848492cf1 chore(deps): update grafana/grafana docker tag to v12.3.3 (#6517)
| datasource | package         | from   | to     |
| ---------- | --------------- | ------ | ------ |
| docker     | grafana/grafana | 12.3.2 | 12.3.3 |

Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
Co-authored-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
2026-02-22 00:55:26 -08:00

268 lines
7.1 KiB
YAML

services:
# tempo, backend and kafka
distributor:
image: &tempoImage grafana/tempo:latest
depends_on:
- redpanda
command: "-target=distributor -config.file=/etc/tempo.yaml"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200:3200"
- "4317:4317"
- "4318:4318"
live-store-zone-a-0:
image: *tempoImage
depends_on:
- distributor
command: "-target=live-store -config.file=/etc/tempo.yaml -live-store.instance-availability-zone=zone-a"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3201:3200" # tempo
hostname: live-store-zone-a-0
live-store-zone-a-1:
image: *tempoImage
depends_on:
- distributor
command: "-target=live-store -config.file=/etc/tempo.yaml -live-store.instance-availability-zone=zone-a"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
hostname: live-store-zone-a-1
live-store-zone-b-0:
image: *tempoImage
depends_on:
- distributor
command: "-target=live-store -config.file=/etc/tempo.yaml -live-store.instance-availability-zone=zone-b"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
hostname: live-store-zone-b-0
live-store-zone-b-1:
image: *tempoImage
depends_on:
- distributor
command: "-target=live-store -config.file=/etc/tempo.yaml -live-store.instance-availability-zone=zone-b"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
hostname: live-store-zone-b-1
query-frontend:
image: *tempoImage
command: "-target=query-frontend -config.file=/etc/tempo.yaml -log.level=debug"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200:3200" # tempo
querier:
image: *tempoImage
command: "-target=querier -config.file=/etc/tempo.yaml -log.level=debug"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
backend-scheduler:
image: *tempoImage
depends_on:
- minio
command: "-target=backend-scheduler -config.file=/etc/tempo.yaml"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
backend-worker-0:
image: *tempoImage
depends_on:
- backend-scheduler
hostname: backend-worker-0
command: "-target=backend-worker -config.file=/etc/tempo.yaml"
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
metrics-generator-0:
image: *tempoImage
depends_on:
- distributor
command: "-target=metrics-generator -config.file=/etc/tempo.yaml"
hostname: metrics-generator-0
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
metrics-generator-1:
image: *tempoImage
depends_on:
- distributor
command: "-target=metrics-generator -config.file=/etc/tempo.yaml"
hostname: metrics-generator-1
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
block-builder-0:
image: *tempoImage
depends_on:
- distributor
command: "-target=block-builder -config.file=/etc/tempo.yaml"
hostname: block-builder-0
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
block-builder-1:
image: *tempoImage
depends_on:
- distributor
command: "-target=block-builder -config.file=/etc/tempo.yaml"
hostname: block-builder-1
restart: always
volumes:
- ./tempo.yaml:/etc/tempo.yaml
ports:
- "3200"
minio:
image: minio/minio:latest
environment:
- MINIO_ACCESS_KEY=tempo
- MINIO_SECRET_KEY=supersecret
ports:
- "9001:9001"
entrypoint:
- sh
- -euc
- mkdir -p /data/tempo && minio server /data --console-address ':9001'
redpanda:
image: redpandadata/redpanda:latest
ports:
- "9092:9092" # Kafka API for clients
command: >
redpanda start --overprovisioned
--mode=dev-container
--kafka-addr=PLAINTEXT://0.0.0.0:9092
--advertise-kafka-addr=PLAINTEXT://redpanda:9092
# this is a hack to force there to always be a topic with 2 partitions so the example works
# todo: remove this once we properly always set the partitions correctly
redpanda-init:
image: redpandadata/redpanda:latest
depends_on:
- redpanda
entrypoint: [ "/bin/bash", "-c" ]
command:
- |
# Wait for Redpanda to be ready
until rpk cluster info --brokers redpanda:9092 2>/dev/null; do
echo "Waiting for Redpanda to be ready..."
sleep 2
done
# Create topic with a partition if it doesn't exist and then add 1 to force 2 total
rpk topic create tempo-ingest --partitions 1 --brokers redpanda:9092 || true
rpk topic add-partitions tempo-ingest --num 1 --brokers redpanda:9092 || true
echo "Topic tempo-ingest created with 2 partitions ... probably"
redpanda-console:
image: docker.redpanda.com/redpandadata/console:v3.5.0@sha256:b2cbdd93dee412142f95a61488118f33b8e31ea576bfb3ce625fbaffbdf0803a
environment:
- CONFIG_FILEPATH=/etc/redpanda/redpanda-console-config.yaml
volumes:
- ./redpanda-console.yaml:/etc/redpanda/redpanda-console-config.yaml
ports:
- "8080:8080"
depends_on:
- redpanda
# ingest pipeline
k6-tracing:
image: ghcr.io/grafana/xk6-client-tracing:v0.0.9
environment:
- ENDPOINT=alloy:4317
restart: always
depends_on:
- alloy
alloy:
image: grafana/alloy:v1.13.0@sha256:6616111d70b3c75d5aa177e0584a523403eaba0eb3b177cb387302c2206d5221
volumes:
- ./config.alloy:/etc/alloy/config.alloy
command:
- run
- /etc/alloy/config.alloy
- --storage.path=/var/lib/alloy/data
- --server.http.listen-addr=0.0.0.0:12345
environment:
- ALLOY_OTLP_UPSTREAM=distributor:4317
ports:
- "12345:12345"
depends_on:
- distributor
# supporting services - metrics and visualization
prometheus:
image: prom/prometheus:latest
command:
- --config.file=/etc/prometheus.yaml
- --web.enable-remote-write-receiver
- --enable-feature=exemplar-storage
- --enable-feature=native-histograms
volumes:
- ./prometheus.yaml:/etc/prometheus.yaml
ports:
- "9090:9090"
grafana:
image: grafana/grafana:12.3.3@sha256:9e1e77ade304069aee3196e9a4f210830e96e80ce9a2640891eccc324b152faf
volumes:
- ./grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_DISABLE_LOGIN_FORM=true
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor metricsSummary
ports:
- "3000:3000"
vulture:
image: grafana/tempo-vulture:latest
restart: always
command:
[
"-prometheus-listen-address=:8080",
"-tempo-query-url=http://query-frontend:3200",
"-tempo-push-url=http://distributor:4317",
]
depends_on:
- distributor