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