services: lgtm: image: grafana/otel-lgtm:${OTEL_LGTM_VERSION:-latest} restart: unless-stopped environment: # Grafana admin credentials GF_SECURITY_ADMIN_USER: ${GF_ADMIN_USER:-admin} GF_SECURITY_ADMIN_PASSWORD: ${GF_ADMIN_PASSWORD:-admin} # Enable verbose container logging for specific components ENABLE_LOGS_GRAFANA: ${ENABLE_LOGS_GRAFANA:-false} ENABLE_LOGS_LOKI: ${ENABLE_LOGS_LOKI:-false} ENABLE_LOGS_PROMETHEUS: ${ENABLE_LOGS_PROMETHEUS:-false} ENABLE_LOGS_TEMPO: ${ENABLE_LOGS_TEMPO:-false} ENABLE_LOGS_PYROSCOPE: ${ENABLE_LOGS_PYROSCOPE:-false} ENABLE_LOGS_OTELCOL: ${ENABLE_LOGS_OTELCOL:-false} ENABLE_LOGS_ALL: ${ENABLE_LOGS_ALL:-false} # eBPF auto-instrumentation (OBI) # Requires Linux kernel 5.8+ with BTF support ENABLE_OBI: ${ENABLE_OBI:-false} # Forward telemetry to an external OTLP endpoint (e.g., Grafana Cloud) OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT:-} OTEL_EXPORTER_OTLP_HEADERS: ${OTEL_EXPORTER_OTLP_HEADERS:-} # Enable Tempo MCP server for AI tool integration TEMPO_EXTRA_ARGS: ${TEMPO_EXTRA_ARGS:-} # Extra CLI args for individual backends (optional) PROMETHEUS_EXTRA_ARGS: ${PROMETHEUS_EXTRA_ARGS:-} LOKI_EXTRA_ARGS: ${LOKI_EXTRA_ARGS:-} TEMPO_EXTRA_ARGS_V2: ${TEMPO_EXTRA_ARGS_V2:-} PYROSCOPE_EXTRA_ARGS: ${PYROSCOPE_EXTRA_ARGS:-} OTELCOL_EXTRA_ARGS: ${OTELCOL_EXTRA_ARGS:-} ports: # Grafana dashboard - ${EXPOSE_GRAFANA_PORT:-3000}:3000 # OpenTelemetry Collector - OTLP gRPC - ${EXPOSE_OTLP_GRPC_PORT:-4317}:4317 # OpenTelemetry Collector - OTLP HTTP - ${EXPOSE_OTLP_HTTP_PORT:-4318}:4318 # Prometheus - ${EXPOSE_PROMETHEUS_PORT:-9090}:9090 # Tempo HTTP query endpoint - ${EXPOSE_TEMPO_HTTP_PORT:-3200}:3200 # Pyroscope - ${EXPOSE_PYROSCOPE_PORT:-4040}:4040 volumes: # Persistent storage for all backend data - ./lgtm-data:/data # If OBI (eBPF) is enabled, these capabilities are needed # Uncomment the cap_add and network_mode when ENABLE_OBI=true # cap_add: # - SYS_ADMIN # - BPF # network_mode: host # pid: host networks: - lgtm - pipeline - swag # healthcheck: # test: # [ # "CMD", # "wget", # "--no-verbose", # "--tries=1", # "--spider", # "http://localhost:3000/api/health", # ] # interval: 15s # timeout: 5s # retries: 10 # start_period: 30s networks: lgtm: name: lgtm driver: bridge pipeline: name: pipeline external: true swag: name: swag external: true volumes: {}