88 lines
2.2 KiB
YAML
88 lines
2.2 KiB
YAML
# Docker Compose setup for AgentDB Observability Stack
|
|
#
|
|
# Includes:
|
|
# - OpenTelemetry Collector
|
|
# - Prometheus (metrics storage)
|
|
# - Jaeger (trace storage and UI)
|
|
# - Grafana (visualization)
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
# OpenTelemetry Collector
|
|
otel-collector:
|
|
image: otel/opentelemetry-collector-contrib:latest
|
|
command: ['--config=/etc/otel-collector-config.yaml']
|
|
volumes:
|
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
ports:
|
|
- '4317:4317' # OTLP gRPC receiver
|
|
- '4318:4318' # OTLP HTTP receiver
|
|
- '8888:8888' # Prometheus metrics exposed by the collector
|
|
- '8889:8889' # Prometheus exporter
|
|
- '13133:13133' # Health check
|
|
- '55679:55679' # ZPages
|
|
environment:
|
|
- ENVIRONMENT=development
|
|
networks:
|
|
- observability
|
|
|
|
# Prometheus
|
|
prometheus:
|
|
image: prom/prometheus:latest
|
|
command:
|
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
- '--storage.tsdb.path=/prometheus'
|
|
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
|
|
- '--web.console.templates=/usr/share/prometheus/consoles'
|
|
- '--web.enable-lifecycle'
|
|
volumes:
|
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
|
- prometheus-data:/prometheus
|
|
ports:
|
|
- '9090:9090'
|
|
networks:
|
|
- observability
|
|
depends_on:
|
|
- otel-collector
|
|
|
|
# Jaeger
|
|
jaeger:
|
|
image: jaegertracing/all-in-one:latest
|
|
ports:
|
|
- '16686:16686' # Jaeger UI
|
|
- '14250:14250' # Jaeger gRPC
|
|
- '14268:14268' # Jaeger HTTP
|
|
environment:
|
|
- COLLECTOR_OTLP_ENABLED=true
|
|
- SPAN_STORAGE_TYPE=memory
|
|
networks:
|
|
- observability
|
|
|
|
# Grafana
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
ports:
|
|
- '3000:3000'
|
|
environment:
|
|
- GF_SECURITY_ADMIN_USER=admin
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- GF_USERS_ALLOW_SIGN_UP=false
|
|
volumes:
|
|
- grafana-data:/var/lib/grafana
|
|
- ./grafana/provisioning:/etc/grafana/provisioning
|
|
- ./grafana/dashboards:/var/lib/grafana/dashboards
|
|
networks:
|
|
- observability
|
|
depends_on:
|
|
- prometheus
|
|
- jaeger
|
|
|
|
volumes:
|
|
prometheus-data:
|
|
grafana-data:
|
|
|
|
networks:
|
|
observability:
|
|
driver: bridge
|