llm-optimizer-processor 0.1.1

Data processing and transformation pipeline
Documentation
# Docker Compose configuration for OpenTelemetry testing
#
# This sets up an OTLP collector with Jaeger backend for viewing traces
# and Prometheus for viewing metrics.
#
# Usage:
#   docker-compose -f docker-compose.telemetry.yml up -d
#
# Access:
#   Jaeger UI:     http://localhost:16686
#   Prometheus UI: http://localhost:9090
#   OTLP gRPC:     localhost:4317
#   OTLP HTTP:     localhost:4318

version: '3.8'

services:
  # OpenTelemetry Collector
  otel-collector:
    image: otel/opentelemetry-collector-contrib:0.91.0
    container_name: otel-collector
    command: ["--config=/etc/otel-collector-config.yaml"]
    volumes:
      - ./telemetry-config/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 metrics
      - "13133:13133" # Health check
    depends_on:
      - jaeger
      - prometheus
    networks:
      - telemetry

  # Jaeger for distributed tracing
  jaeger:
    image: jaegertracing/all-in-one:1.51
    container_name: jaeger
    environment:
      - COLLECTOR_OTLP_ENABLED=true
    ports:
      - "16686:16686" # Jaeger UI
      - "14250:14250" # Jaeger gRPC
      - "14268:14268" # Jaeger HTTP
    networks:
      - telemetry

  # Prometheus for metrics
  prometheus:
    image: prom/prometheus:v2.48.0
    container_name: prometheus
    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'
    volumes:
      - ./telemetry-config/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus-data:/prometheus
    ports:
      - "9090:9090"
    networks:
      - telemetry

  # Grafana for visualization (optional)
  grafana:
    image: grafana/grafana:10.2.2
    container_name: grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_USERS_ALLOW_SIGN_UP=false
    volumes:
      - grafana-data:/var/lib/grafana
      - ./telemetry-config/grafana-datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml
    ports:
      - "3000:3000"
    depends_on:
      - prometheus
      - jaeger
    networks:
      - telemetry

networks:
  telemetry:
    driver: bridge

volumes:
  prometheus-data:
  grafana-data: