145 lines
3.3 KiB
YAML
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 |