Files
infra/docker-compose.observability.yml
T
2026-07-25 15:54:53 +00:00

128 lines
3.4 KiB
YAML

version: "3"
services:
tempo:
image: grafana/tempo:2.10.7
command:
- -config.file=/etc/tempo/tempo.yml
configs:
- source: tempo_config
target: /etc/tempo/tempo.yml
volumes:
- tempodata:/var/tempo
networks:
- prometheus_network
- wireguard_network
perses:
image: persesdev/perses:latest
volumes:
- persesdata:/perses
networks:
- prometheus_network
- wireguard_network
blackbox_exporter:
image: prom/blackbox-exporter:v0.28.0
configs:
- source: blackbox_config
target: /etc/blackbox_exporter/config.yml
networks:
- prometheus_network
alertmanager:
image: prom/alertmanager:v0.33.1
configs:
- source: alertmanager_config
target: /etc/alertmanager/alertmanager.yml
volumes:
- alertmanagerdata:/alertmanager
networks:
- prometheus_network
ntfy:
image: binwiederhier/ntfy
command:
- serve
environment:
TZ: Europe/Paris
volumes:
- ntfydata:/var/lib/ntfy
networks:
- prometheus_network
- reverse_network
otel-collector:
image: otel/opentelemetry-collector-contrib:0.156.0
configs:
- source: otel_collector_config
target: /etc/otelcol-contrib/config.yaml
deploy:
resources:
limits:
memory: 256M
networks:
- prometheus_network
prometheus:
image: prom/prometheus:v3.9.1
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --web.enable-remote-write-receiver
configs:
- source: prometheus_config
target: /etc/prometheus/prometheus.yml
- source: prometheus_rules_config
target: /etc/prometheus/alert.rules.yml
volumes:
- prometheusdata:/prometheus
networks:
- prometheus_network
- wireguard_network
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
networks:
- prometheus_network
configs:
prometheus_config:
name: prometheus_config_${DATETIME}
file: ./prometheus/prometheus.yml
blackbox_config:
name: blackbox_config_${DATETIME}
file: ./blackbox/blackbox.yml
alertmanager_config:
name: alertmanager_config_${DATETIME}
file: ./prometheus/alertmanager/alertmanager.yml
prometheus_rules_config:
name: prometheus_rules_config_${DATETIME}
file: ./prometheus/alert.rules.yml
otel_collector_config:
name: otel_collector_config_${DATETIME}
file: ./otel-collector/config.yaml
tempo_config:
name: tempo_config_${DATETIME}
file: ./tempo/tempo.yml
volumes:
persesdata:
prometheusdata:
ntfydata:
alertmanagerdata:
tempodata:
networks:
reverse_network:
external: true
wireguard_network:
external: true
prometheus_network:
external: true