docker-compose-metrics.yaml
143 lines
| 4.2 KiB
| text/x-yaml
|
YamlLexer
r14 | ||||
volumes: | ||||
r23 | prometheus_data: | |||
labels: | ||||
"keep": 1 | ||||
r14 | ||||
r23 | grafana_data: | |||
labels: | ||||
"keep": 1 | ||||
r14 | ||||
services: | ||||
statsd-exporter: | ||||
r378 | image: prom/statsd-exporter:v0.26.0 | |||
r23 | restart: always | |||
r14 | command: [ | |||
r19 | '--statsd.mapping-config=/etc/statsd/statsd.yaml', | |||
r14 | '--statsd.listen-udp=:9125', | |||
'--web.listen-address=:9102' | ||||
] | ||||
networks: | ||||
- rhodecode_network | ||||
r23 | # ports: | |||
# - "9125:9125/udp" | ||||
# - "9102:9102" | ||||
r14 | volumes: | |||
r19 | - ./config/statsd-exporter:/etc/statsd | |||
r23 | labels: | |||
- "traefik.enable=false" | ||||
- "traefik.http.services.statsd-exporter.loadbalancer.server.port=9125" | ||||
- "traefik.http.services.statsd-exporter.loadbalancer.server.port=9102" | ||||
r15 | ||||
node-exporter: | ||||
r378 | image: prom/node-exporter:v1.7.0 | |||
r15 | 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 | ||||
r23 | restart: always | |||
# ports: | ||||
# - "9100:9100" | ||||
r15 | volumes: | |||
- "/proc:/host/proc:ro" | ||||
- "/sys:/host/sys:ro" | ||||
- "/:/rootfs:ro" | ||||
r23 | labels: | |||
- "traefik.enable=false" | ||||
- "traefik.http.services.node-exporter.loadbalancer.server.port=9100" | ||||
r14 | ||||
prometheus: | ||||
r378 | image: prom/prometheus:v2.48.1 | |||
r23 | restart: always | |||
r14 | command: | |||
- "--config.file=/etc/prometheus/prometheus.yml" | ||||
- "--storage.tsdb.path=/prometheus" | ||||
r79 | - "--storage.tsdb.retention.time=24h" | |||
r14 | - "--web.console.libraries=/etc/prometheus/console_libraries" | |||
- "--web.console.templates=/etc/prometheus/consoles" | ||||
- "--web.enable-lifecycle" | ||||
r23 | # ports: | |||
# - "9090:9090" | ||||
r14 | networks: | |||
- rhodecode_network | ||||
r70 | extra_hosts: | |||
- "host.docker.internal:host-gateway" | ||||
r14 | volumes: | |||
- ./config/prometheus:/etc/prometheus | ||||
- prometheus_data:/prometheus | ||||
r23 | labels: | |||
- "traefik.enable=false" | ||||
- "traefik.http.services.prometheus.loadbalancer.server.port=9090" | ||||
r14 | ||||
grafana: | ||||
r378 | image: grafana/grafana:9.5.15 | |||
r23 | restart: always | |||
r157 | 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} | ||||
r23 | # ports: | |||
# - "3000:3000" | ||||
r14 | volumes: | |||
- grafana_data:/var/lib/grafana | ||||
r23 | - ./config/grafana:/etc/grafana | |||
r14 | networks: | |||
- rhodecode_network | ||||
r70 | extra_hosts: | |||
- "host.docker.internal:host-gateway" | ||||
r23 | labels: | |||
- "traefik.enable=true" | ||||
- "traefik.http.routers.grafana.entrypoints=http" | ||||
r73 | - "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" | ||||
r42 | # SSL + proxy prefix example, should be put into .custom/docker-compose-metrics.override.yaml | |||
r73 | #- "traefik.http.routers.grafana.entrypoints=http,https" | |||
r15 | ||||
loki: | ||||
r378 | image: grafana/loki:2.9.3 | |||
r23 | restart: always | |||
r57 | # ports: | |||
# - "3100:3100" | ||||
r23 | # - "9095:9095" | |||
r15 | command: [ | |||
"-config.file=/etc/loki/loki-config.yaml" | ||||
] | ||||
networks: | ||||
- rhodecode_network | ||||
r70 | extra_hosts: | |||
- "host.docker.internal:host-gateway" | ||||
r15 | volumes: | |||
- ./config/loki:/etc/loki | ||||
r57 | # 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" | ||||
r73 | - "traefik.http.routers.loki.service=loki-web" | |||
- "traefik.http.services.loki-web.loadbalancer.server.port=3100" | ||||
r15 | ||||
promtail: | ||||
r378 | image: grafana/promtail:2.9.3 | |||
r15 | command: [ | |||
"-config.file=/etc/promtail/promtail-config.yaml" | ||||
] | ||||
networks: | ||||
- rhodecode_network | ||||
volumes: | ||||
- /var/log:/var/log | ||||
r19 | - ./config/promtail:/etc/promtail | |||