curated_compose/docker/lgtm/docker-compose.yaml

95 lines
3.2 KiB
YAML
Raw Permalink Normal View History

2026-06-15 21:43:10 -04:00
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: {}