services:
prometheus:
image: prom/prometheus
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yaml
- prometheus-data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yaml
- --storage.tsdb.path=/prometheus
- --web.console.libraries=/etc/prometheus/console_libraries
- --web.console.templates=/etc/prometheus/consoles
- --web.enable-remote-write-receiver
- --enable-feature=exemplar-storage
- --enable-feature=native-histograms
- --web.enable-lifecycle
deploy:
resources:
limits:
cpus: '0.5'
memory: '1G'
reservations:
cpus: '0.25'
memory: '512M'
networks:
- monitoring
grafana:
image: grafana/grafana-enterprise:latest
container_name: grafana
volumes:
- ./grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
- grafana-data:/var/lib/grafana
environment:
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
deploy:
resources:
limits:
cpus: '1'
memory: '1024M'
reservations:
cpus: '0.5'
memory: '512M'
ports:
- "3000:3000"
networks:
- monitoring
cadvisor:
container_name: cadvisor
image: gcr.io/cadvisor/cadvisor:latest
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- "/:/rootfs"
- "/var/run:/var/run"
- "/sys:/sys"
- "/var/lib/docker/:/var/lib/docker"
- "/dev/disk/:/dev/disk"
privileged: true
devices:
- "/dev/kmsg"
deploy:
resources:
limits:
cpus: '0.5'
memory: '1G'
reservations:
cpus: '0.25'
memory: '512M'
networks:
- monitoring
loki:
image: grafana/loki:latest
container_name: loki
restart: unless-stopped
volumes:
- loki-data:/loki
- ./loki-config.yaml:/etc/loki/loki-config.yaml
command: -config.file=/etc/loki/loki-config.yaml
ports:
- 3100:3100
deploy:
resources:
limits:
cpus: '0.5'
memory: '1G'
reservations:
cpus: '0.25'
memory: '512M'
networks:
- monitoring
volumes:
prometheus-data:
grafana-data:
loki-data:
networks:
monitoring:
name: monitoring
driver: bridge