mirror of
https://github.com/hanzoai/traces.git
synced 2026-10-30 18:20:41 +00:00
| 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>
268 lines
7.1 KiB
YAML
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
|