Files
infra/docker-compose.observability.yml
T

160 lines
4.2 KiB
YAML

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