version: "3" services: tempo: image: grafana/tempo:3.0.3 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.29.1 configs: - source: blackbox_config target: /etc/blackbox_exporter/config.yml networks: - prometheus_network alertmanager: image: prom/alertmanager:v0.34.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 docker-proxy-otel: image: tecnativa/docker-socket-proxy:v0.5.0 environment: CONTAINERS: 1 INFO: 1 VERSION: 1 PING: 1 # docker_stats écoute /events pour suivre les conteneurs (sinon 403) EVENTS: 1 POST: 0 EXEC: 0 IMAGES: 0 VOLUMES: 0 NETWORKS: 0 SECRETS: 0 CONFIGS: 0 SWARM: 0 SERVICES: 0 TASKS: 0 NODES: 0 SYSTEM: 0 PLUGINS: 0 SESSION: 0 AUTH: 0 BUILD: 0 COMMIT: 0 DISTRIBUTION: 0 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro networks: - prometheus_network deploy: resources: limits: memory: 64M otel-collector: image: otel/opentelemetry-collector-contrib:0.164.0 configs: - source: otel_collector_config target: /etc/otelcol-contrib/config.yaml volumes: - /:/hostfs:ro - /proc:/hostfs/proc:ro - /sys:/hostfs/sys:ro - /dev:/hostfs/dev:ro - /run:/hostfs/run:ro deploy: resources: limits: memory: 768M networks: - prometheus_network prometheus: image: prom/prometheus:v3.15.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 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