services:
minio:
image: minio/minio:latest
ports:
- "${MINIO_API_PORT:-9000}:9000"
- "${MINIO_CONSOLE_PORT:-9001}:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
volumes:
- minio-data:/data
command: server /data --console-address ":9001"
networks:
otlp_net:
aliases:
- otlp.minio
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
minio-init:
image: minio/mc:latest
depends_on:
minio:
condition: service_healthy
networks:
otlp_net:
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set myminio http://minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-minioadmin};
/usr/bin/mc mb myminio/${S3_BUCKET:-otlp} --ignore-existing;
/usr/bin/mc anonymous set download myminio/${S3_BUCKET:-otlp};
echo 'MinIO bucket ready';
"
otlp2parquet:
build: .
depends_on:
minio:
condition: service_healthy
minio-init:
condition: service_completed_successfully
networks:
otlp_net:
ports:
- "${HTTP_PORT:-4318}:4318"
environment:
OTLP2PARQUET_STORAGE_BACKEND: ${STORAGE_BACKEND:-s3}
OTLP2PARQUET_S3_BUCKET: ${S3_BUCKET:-otlp}
OTLP2PARQUET_S3_REGION: ${S3_REGION:-us-east-1}
OTLP2PARQUET_S3_ENDPOINT: ${S3_ENDPOINT:-http://minio:9000}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-minioadmin}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-minioadmin}
OTLP2PARQUET_HTTP_PORT: 4318
OTLP2PARQUET_HTTP_HOST: 0.0.0.0
RUST_LOG: ${RUST_LOG:-debug}
OTLP2PARQUET_BATCHING_ENABLED: ${BATCHING_ENABLED:-false}
OTLP2PARQUET_PREFIX: ${OTLP2PARQUET_PREFIX:-}
restart: unless-stopped
telemetrygen-traces:
image: ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:latest
networks:
otlp_net:
depends_on:
- otlp2parquet
command:
- traces
- --otlp-endpoint=otlp2parquet:4318
- --otlp-http
- --otlp-insecure
- --duration=inf - --rate=2 - --service=telemetrygen-traces
- --status-code=Ok
restart: unless-stopped
telemetrygen-metrics:
image: ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:latest
depends_on:
- otlp2parquet
networks:
otlp_net:
command:
- metrics
- --otlp-endpoint=otlp2parquet:4318
- --otlp-http
- --otlp-insecure
- --duration=inf - --rate=2 - --service=telemetrygen-metrics
restart: unless-stopped
telemetrygen-logs:
image: ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:latest
depends_on:
- otlp2parquet
networks:
otlp_net:
command:
- logs
- --otlp-endpoint=otlp2parquet:4318
- --otlp-http
- --otlp-insecure
- --duration=inf - --rate=2 - --service=telemetrygen-logs
restart: unless-stopped
volumes:
minio-data:
networks:
otlp_net: