version: "3.9" services: grafana: image: ${GRAFANA_IMAGE} container_name: ${GRAFANA_CONTAINER_NAME} hostname: ${GRAFANA_CONTAINER_NAME} restart: always environment: - GF_PATHS_DATA=/var/lib/grafana/data - GF_PATHS_LOGS=/var/log/grafana - GF_PATHS_PLUGINS=/var/lib/grafana/plugins - GF_PATHS_PROVISIONING=/etc/grafana/provisioning - GF_AUTH_ANONYMOUS_ENABLED=false - GF_USERS_ALLOW_SIGN_UP=false - GF_USERS_ALLOW_ORG_CREATE=false - GF_SERVER_ROOT_URL=/grafana # - GF_SERVE_FROM_SUB_PATH=true volumes: ## - ./configs/grafana-configs/grafana.ini:/etc/grafana/grafana.ini # - ./configs/grafana-configs/ldap.toml:/etc/grafana/ldap.toml - ./configs/grafana-configs/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml - ./data/grafana-backup:/backup - ./data/grafana-storage:/var/lib/grafana ports: - 3000:3000 networks: - loki - proxy loki: image: ${LOKI_IMAGE} container_name: ${LOKI_CONTAINER_NAME} hostname: ${LOKI_CONTAINER_NAME} restart: always command: -config.file=/etc/loki/local-config.yaml volumes: - ./data/loki-storage:/loki - ./configs/loki-configs/local-config.yaml:/etc/loki/local-config.yaml ports: - 3100:3100 - 9095:9095 networks: - loki - proxy prometheus: image: ${PROMETHEUS_IMAGE} container_name: ${PROMETHEUS_CONTAINER_NAME} hostname: ${PROMETHEUS_CONTAINER_NAME} restart: always environment: TZ: "Asia/Irkutsk" volumes: - ./data/prometheus-storage:/prometheus - ./configs/prometheus-configs/prometheus.yaml:/etc/prometheus/prometheus.yaml command: - '--config.file=/etc/prometheus/prometheus.yaml' - '--storage.tsdb.retention.time=15d' ports: - 9090:9090 networks: - loki - proxy tempo: image: ${TEMPO_IMAGE} container_name: ${TEMPO_CONTAINER_NAME} hostname: ${TEMPO_CONTAINER_NAME} user: "1000" restart: always volumes: - ./config/tempo/tempo.yaml:/etc/tempo.yaml - ./data/tempo-storage:/tmp/tempo command: - '--config.file=etc/tempo.yaml' ports: - "4317:4317" # otlp grpc. - "3200:3200" # native port for Grafana data source networks: - loki - proxy otel-collector: image: ${OTEL-COLLECTOR_IMAGE} container_name: ${OTEL-COLLECTOR_CONTAINER_NAME} hostname: ${OTEL-COLLECTOR_CONTAINER_NAME} command: - '--config=/etc/otel-collector-config.yaml' volumes: - ./configs/otel-collector-configs/config.yaml:/etc/otel-collector-config.yaml ports: # - "8888:8888" # Prometheus metrics exposed by the collector for scrape - "8889:8889" # Prometheus exporter metrics - "13133:13133" # health_check extension - "4317:4317" # OTLP gRPC receiver - "4318:4318" # OTLP http receiver networks: - loki - proxy networks: loki: name: loki proxy: name: proxy