Files
infra/docker-compose.observability.yml
T
qpismont ede28f6d12 Extend monitoring and update portfolio
Add hostmetrics receiver and OTel Collector telemetry, and move
Alertmanager and Blackbox scraping to the collector. Raise collector
memory limits, restrict Blackbox to HTTP 200, and add collector and
Caddy down alerts with inhibition. Update portfolio title and copy.
2026-08-05 19:49:18 +00:00

134 lines
3.5 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
volumes:
- /:/hostfs:ro
- /proc:/hostfs/proc:ro
- /sys:/hostfs/sys:ro
- /dev:/hostfs/dev:ro
- /run:/hostfs/run:ro
deploy:
resources:
limits:
memory: 512M
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