|
|
version: '3.9'
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
prometheus_data:
|
|
|
labels:
|
|
|
"keep": 1
|
|
|
|
|
|
grafana_data:
|
|
|
labels:
|
|
|
"keep": 1
|
|
|
|
|
|
services:
|
|
|
|
|
|
statsd-exporter:
|
|
|
image: prom/statsd-exporter:v0.22.8
|
|
|
restart: always
|
|
|
command: [
|
|
|
'--statsd.mapping-config=/etc/statsd/statsd.yaml',
|
|
|
'--statsd.listen-udp=:9125',
|
|
|
'--web.listen-address=:9102'
|
|
|
]
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
# ports:
|
|
|
# - "9125:9125/udp"
|
|
|
# - "9102:9102"
|
|
|
|
|
|
volumes:
|
|
|
- ./config/statsd-exporter:/etc/statsd
|
|
|
labels:
|
|
|
- "traefik.enable=false"
|
|
|
- "traefik.http.services.statsd-exporter.loadbalancer.server.port=9125"
|
|
|
- "traefik.http.services.statsd-exporter.loadbalancer.server.port=9102"
|
|
|
|
|
|
node-exporter:
|
|
|
image: prom/node-exporter:v1.4.1
|
|
|
command:
|
|
|
- "--path.procfs=/host/proc"
|
|
|
- "--path.rootfs=/rootfs"
|
|
|
- "--path.sysfs=/host/sys"
|
|
|
- "--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)"
|
|
|
- "--collector.systemd"
|
|
|
- "--collector.processes"
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
pid: host
|
|
|
restart: always
|
|
|
# ports:
|
|
|
# - "9100:9100"
|
|
|
volumes:
|
|
|
- "/proc:/host/proc:ro"
|
|
|
- "/sys:/host/sys:ro"
|
|
|
- "/:/rootfs:ro"
|
|
|
labels:
|
|
|
- "traefik.enable=false"
|
|
|
- "traefik.http.services.node-exporter.loadbalancer.server.port=9100"
|
|
|
|
|
|
prometheus:
|
|
|
image: prom/prometheus:v2.40.6
|
|
|
restart: always
|
|
|
command:
|
|
|
- "--config.file=/etc/prometheus/prometheus.yml"
|
|
|
- "--storage.tsdb.path=/prometheus"
|
|
|
- "--web.console.libraries=/etc/prometheus/console_libraries"
|
|
|
- "--web.console.templates=/etc/prometheus/consoles"
|
|
|
- "--storage.tsdb.retention.time=24h"
|
|
|
- "--web.enable-lifecycle"
|
|
|
# ports:
|
|
|
# - "9090:9090"
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
volumes:
|
|
|
- ./config/prometheus:/etc/prometheus
|
|
|
- prometheus_data:/prometheus
|
|
|
labels:
|
|
|
- "traefik.enable=false"
|
|
|
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
|
|
|
|
|
|
grafana:
|
|
|
image: grafana/grafana:9.3.1
|
|
|
restart: always
|
|
|
# ports:
|
|
|
# - "3000:3000"
|
|
|
volumes:
|
|
|
- grafana_data:/var/lib/grafana
|
|
|
- ./config/grafana:/etc/grafana
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
labels:
|
|
|
- "traefik.enable=true"
|
|
|
- "traefik.http.routers.grafana.entrypoints=http"
|
|
|
- "traefik.http.routers.grafana.rule=PathPrefix(`/_grafana`)"
|
|
|
- "traefik.http.routers.grafana.service=grafana-http"
|
|
|
- "traefik.http.services.grafana-http.loadbalancer.server.port=3000"
|
|
|
# SSL + proxy prefix example, should be put into .custom/docker-compose-metrics.override.yaml
|
|
|
#- "traefik.http.routers.grafana-rt.entrypoints=https"
|
|
|
#- "traefik.http.routers.grafana-rt.rule=Host(`metrics.example.com`) && PathPrefix(`/_grafana`)"
|
|
|
#- "traefik.http.routers.grafana-rt.tls=true"
|
|
|
#- "traefik.http.routers.grafana-rt.service=grafana-ssl"
|
|
|
#- "traefik.http.services.grafana-ssl.loadbalancer.server.port=3000"
|
|
|
|
|
|
loki:
|
|
|
image: grafana/loki:2.7.1
|
|
|
restart: always
|
|
|
ports:
|
|
|
# Loki port is the only one that needs explicitly
|
|
|
# be exposed because of logging driver host-only woking mode
|
|
|
- "3100:3100"
|
|
|
# - "9095:9095"
|
|
|
command: [
|
|
|
"-config.file=/etc/loki/loki-config.yaml"
|
|
|
]
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
volumes:
|
|
|
- ./config/loki:/etc/loki
|
|
|
|
|
|
promtail:
|
|
|
image: grafana/promtail:2.7.1
|
|
|
command: [
|
|
|
"-config.file=/etc/promtail/promtail-config.yaml"
|
|
|
]
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
volumes:
|
|
|
- /var/log:/var/log
|
|
|
- logvolume:/var/log_volume
|
|
|
- ./config/promtail:/etc/promtail
|
|
|
labels:
|
|
|
- "traefik.enable=false"
|
|
|
|