Files
symon/docker-compose/docker-compose.yml

145 lines
3.3 KiB
YAML

services:
otel-collector:
image: otel/opentelemetry-collector-contrib:latest
container_name: otel-collector
command: ["--config=/etc/otel-collector-config.yml"]
volumes:
- ./otel-collector-config.yml:/etc/otel-collector-config.yml
ports:
- "4317:4317" # gRPC
- "4318:4318" # HTTP
- "8889:8889" # Prometheus metrics endpoint
networks:
- observ-net
labels:
logging: "promtail"
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./rules:/etc/prometheus/rules
ports:
- "9090:9090" # Interfaccia Web di Prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
depends_on:
- otel-collector
networks:
- observ-net
labels:
logging: "promtail"
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_SECURITY_ADMIN_USER=admin
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
depends_on:
- prometheus
networks:
- observ-net
labels:
logging: "promtail"
promtail:
image: grafana/promtail:2.9.3
container_name: promtail
restart: unless-stopped
environment:
TZ: Europe/Rome
volumes:
- ./promtail-config.yml:/etc/promtail/config.yml:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- observ-net
depends_on:
- loki
loki:
image: grafana/loki:latest
container_name: loki
user: "0"
ports:
- "3100:3100"
volumes:
- ./loki-config.yml:/etc/loki/local-config.yaml
- ./loki-data:/loki
command: -config.file=/etc/loki/local-config.yaml
restart: unless-stopped
networks:
- observ-net
labels:
logging: "promtail"
tempo:
image: grafana/tempo:latest
container_name: tempo
user: "0"
command: ["-config.file=/etc/tempo.yml"]
volumes:
- ./tempo-config.yml:/etc/tempo.yml
- tempo-data:/tmp/tempo
ports:
- "3200:3200" # Tempo HTTP
- "4317" # OTLP gRPC
- "4318" # OTLP HTTP
restart: unless-stopped
networks:
- observ-net
labels:
logging: "promtail"
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--path.rootfs=/rootfs'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
ports:
- "9100:9100"
restart: unless-stopped
networks:
- observ-net
labels:
logging: "promtail"
pyroscope:
image: grafana/pyroscope:latest
container_name: pyroscope
ports:
- "4040:4040" # Pyroscope UI and API
volumes:
- pyroscope-data:/var/lib/pyroscope
restart: unless-stopped
networks:
- observ-net
labels:
logging: "promtail"
environment:
- PYROSCOPE_LOG_LEVEL=info
volumes:
grafana-storage:
tempo-data:
pyroscope-data:
networks:
observ-net:
driver: bridge