|
|
|
|
|
volumes:
|
|
|
|
|
|
prometheus_data:
|
|
|
labels:
|
|
|
"keep": 1
|
|
|
|
|
|
grafana_data:
|
|
|
labels:
|
|
|
"keep": 1
|
|
|
|
|
|
services:
|
|
|
|
|
|
statsd-exporter:
|
|
|
image: prom/statsd-exporter:v0.26.1
|
|
|
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.8.0
|
|
|
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.51.2
|
|
|
restart: always
|
|
|
command:
|
|
|
- "--config.file=/etc/prometheus/prometheus.yml"
|
|
|
- "--storage.tsdb.path=/prometheus"
|
|
|
- "--storage.tsdb.retention.time=24h"
|
|
|
- "--web.console.libraries=/etc/prometheus/console_libraries"
|
|
|
- "--web.console.templates=/etc/prometheus/consoles"
|
|
|
- "--web.enable-lifecycle"
|
|
|
# ports:
|
|
|
# - "9090:9090"
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
extra_hosts:
|
|
|
- "host.docker.internal:host-gateway"
|
|
|
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.5.18
|
|
|
restart: always
|
|
|
environment:
|
|
|
RC_DB_USER: ${DB_USER:?must-specify-db-user}
|
|
|
RC_DB_PASSWORD: ${DB_PASSWORD:?must-specify-db-password}
|
|
|
RC_DB_NAME: ${DB_NAME:?must-specify-db-name}
|
|
|
# ports:
|
|
|
# - "3000:3000"
|
|
|
volumes:
|
|
|
- grafana_data:/var/lib/grafana
|
|
|
- ./config/grafana:/etc/grafana
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
extra_hosts:
|
|
|
- "host.docker.internal:host-gateway"
|
|
|
labels:
|
|
|
- "traefik.enable=true"
|
|
|
- "traefik.http.routers.grafana.entrypoints=http"
|
|
|
- "traefik.http.routers.grafana.priority=20"
|
|
|
- "traefik.http.routers.grafana.rule=Host(`${RC_HOSTNAME:?must-specify-rhodecode-hostname}`) && PathPrefix(`/_grafana`)"
|
|
|
- "traefik.http.routers.grafana.service=grafana-web"
|
|
|
- "traefik.http.services.grafana-web.loadbalancer.server.port=3000"
|
|
|
# SSL + proxy prefix example, should be put into .custom/docker-compose-metrics.override.yaml
|
|
|
#- "traefik.http.routers.grafana.entrypoints=http,https"
|
|
|
|
|
|
loki:
|
|
|
image: grafana/loki:2.9.8
|
|
|
restart: always
|
|
|
# ports:
|
|
|
# - "3100:3100"
|
|
|
# - "9095:9095"
|
|
|
command: [
|
|
|
"-config.file=/etc/loki/loki-config.yaml"
|
|
|
]
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
extra_hosts:
|
|
|
- "host.docker.internal:host-gateway"
|
|
|
volumes:
|
|
|
- ./config/loki:/etc/loki
|
|
|
# optionally mount host container to scrape docker logs...
|
|
|
# - /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
|
labels:
|
|
|
# Loki port is the only one that needs explicitly
|
|
|
# be exposed because of logging driver host-only working mode
|
|
|
- "traefik.enable=true"
|
|
|
- "traefik.http.routers.loki.entrypoints=loki"
|
|
|
- "traefik.http.routers.loki.rule=PathPrefix(`/`)"
|
|
|
- "traefik.http.routers.loki.middlewares=basic-auth@file"
|
|
|
- "traefik.http.routers.loki.service=loki-web"
|
|
|
- "traefik.http.services.loki-web.loadbalancer.server.port=3100"
|
|
|
|
|
|
promtail:
|
|
|
image: grafana/promtail:2.9.8
|
|
|
command: [
|
|
|
"-config.file=/etc/promtail/promtail-config.yaml"
|
|
|
]
|
|
|
networks:
|
|
|
- rhodecode_network
|
|
|
volumes:
|
|
|
- /var/log:/var/log
|
|
|
- ./config/promtail:/etc/promtail
|
|
|
|