Loading .env +1 −0 Original line number Diff line number Diff line PUBLIC_HOSTNAME=localhost DOCKER_GWBRIDGE_IP=172.18.0.1 JOBS=pushgateway:9091 .gitlab-ci.yml +50 −0 Original line number Diff line number Diff line stages: - check_rules - deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy Loading @@ -14,6 +15,17 @@ variables: STACK: metric SERVICES_TO_CHECK: metric_dockerd-exporter metric_cadvisor metric_grafana metric_alertmanager metric_unsee metric_node-exporter metric_prometheus check-rule-dev: stage: check_rules script: - > docker run -v $(pwd)/prometheus/rules:/tmp dnanexus/promtool:1.0 check rules /tmp/swarm_task.rules.yml environment: name: dev only: - dev deploy-dev: stage: deploy variables: Loading @@ -24,17 +36,35 @@ deploy-dev: DOCKER_GWBRIDGE_IP: ${DEV_DOCKER_GWBRIDGE_IP} UI_AUTH: ${DEV_UI_AUTH} PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} SLACK_URL: ${SLACK_URL} SLACK_CHANNEL: ${DEV_SLACK_CHANNEL} SLACK_USER: ${SLACK_USER} script: - create-nets.sh metric-net - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} ADMIN_USER=${ADMIN_USER} ADMIN_PASSWORD=${ADMIN_PASSWORD} DOCKER_GWBRIDGE_IP=${DOCKER_GWBRIDGE_IP} UI_AUTH=${UI_AUTH} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} SLACK_URL=${SLACK_URL} SLACK_CHANNEL=${SLACK_CHANNEL} SLACK_USER=${SLACK_USER} environment: name: dev only: - dev when: manual check-rule-supporting-branch: stage: check_rules script: - > docker run -v $(pwd)/prometheus/rules:/tmp dnanexus/promtool:1.0 check rules /tmp/swarm_task.rules.yml environment: name: dev only: - branches except: - master - dev deploy-supporting-branch: stage: deploy variables: Loading @@ -45,11 +75,15 @@ deploy-supporting-branch: DOCKER_GWBRIDGE_IP: ${DEV_DOCKER_GWBRIDGE_IP} UI_AUTH: ${DEV_UI_AUTH} PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} SLACK_URL: ${SLACK_URL} SLACK_CHANNEL: ${DEV_SLACK_CHANNEL} SLACK_USER: ${SLACK_USER} script: - create-nets.sh metric-net - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} ADMIN_USER=${ADMIN_USER} ADMIN_PASSWORD=${ADMIN_PASSWORD} DOCKER_GWBRIDGE_IP=${DOCKER_GWBRIDGE_IP} UI_AUTH=${UI_AUTH} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} SLACK_URL=${SLACK_URL} SLACK_CHANNEL=${SLACK_CHANNEL} SLACK_USER=${SLACK_USER} environment: name: dev only: Loading @@ -59,6 +93,18 @@ deploy-supporting-branch: - dev when: manual check-rule-pro: stage: check_rules script: - > docker run -v $(pwd)/prometheus/rules:/tmp dnanexus/promtool:1.0 check rules /tmp/swarm_task.rules.yml environment: name: pro only: - master deploy-pro: stage: deploy variables: Loading @@ -69,11 +115,15 @@ deploy-pro: DOCKER_GWBRIDGE_IP: ${PRO_DOCKER_GWBRIDGE_IP} UI_AUTH: ${PRO_UI_AUTH} PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} SLACK_URL: ${SLACK_URL} SLACK_CHANNEL: ${PRO_SLACK_CHANNEL} SLACK_USER: ${SLACK_USER} script: - create-nets.sh metric-net - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} ADMIN_USER=${ADMIN_USER} ADMIN_PASSWORD=${ADMIN_PASSWORD} DOCKER_GWBRIDGE_IP=${DOCKER_GWBRIDGE_IP} UI_AUTH=${UI_AUTH} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} SLACK_URL=${SLACK_URL} SLACK_CHANNEL=${SLACK_CHANNEL} SLACK_USER=${SLACK_USER} environment: name: pro only: Loading docker-compose.dev.yml +2 −147 Original line number Diff line number Diff line version: '3.5' services: dockerd-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M cadvisor: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M grafana: ports: - target: 3000 published: 18004 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "3000" traefik.docker.network: traefik-net traefik.frontend.rule: Host:grafana.${PUBLIC_HOSTNAME} traefik.backend: grafana placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M alertmanager: ports: - target: 9093 published: 9093 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "9093" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:alertmanager.${PUBLIC_HOSTNAME} traefik.backend: alertmanager placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M unsee: ports: - target: 8080 published: 9094 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "8080" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:unsee.${PUBLIC_HOSTNAME} traefik.backend: unsee restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M node-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M prometheus: ports: - target: 9090 published: 9090 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "9090" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:prometheus.${PUBLIC_HOSTNAME} traefik.backend: prometheus placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 512M reservations: memory: 128M volumes: prometheus: name: prometheus-vol pushgateway: name: pushgateway-vol grafana: name: grafana-vol Loading docker-compose.prod.yml +3 −123 Original line number Diff line number Diff line version: '3.5' services: dockerd-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M cadvisor: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M grafana: deploy: mode: replicated replicas: 1 labels: traefik.port: "3000" traefik.docker.network: traefik-net traefik.frontend.rule: Host:grafana.${PUBLIC_HOSTNAME} traefik.backend: grafana placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M alertmanager: pushgateway: deploy: mode: replicated replicas: 1 labels: traefik.port: "9093" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:alertmanager.${PUBLIC_HOSTNAME} traefik.backend: alertmanager placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M unsee: deploy: mode: replicated replicas: 1 labels: traefik.port: "8080" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:unsee.${PUBLIC_HOSTNAME} traefik.backend: unsee restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M node-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M prometheus: deploy: mode: replicated replicas: 1 labels: traefik.port: "9090" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:prometheus.${PUBLIC_HOSTNAME} traefik.backend: prometheus placement: constraints: - node.role == worker restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 512M reservations: memory: 128M volumes: prometheus: name: prometheus-vol driver: "cloudstor:aws" driver_opts: backing: relocatable size: 5 ebstype: gp2 pushgateway: name: pushgateway-vol grafana: name: grafana-vol Loading docker-compose.tmpl.yml +112 −20 Original line number Diff line number Diff line Loading @@ -12,6 +12,17 @@ services: configs: - source: dockerd_config target: /etc/caddy/Caddyfile deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M cadvisor: image: google/cadvisor Loading @@ -24,6 +35,17 @@ services: - /var/run:/var/run - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M grafana: image: stefanprodan/swarmprom-grafana:5.0.1 Loading @@ -31,6 +53,7 @@ services: - GF_SECURITY_ADMIN_USER=${ADMIN_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin} - GF_USERS_ALLOW_SIGN_UP=false - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-piechart-panel #- GF_SERVER_ROOT_URL=${GF_SERVER_ROOT_URL:-localhost} #- GF_SMTP_ENABLED=${GF_SMTP_ENABLED:-false} #- GF_SMTP_FROM_ADDRESS=${GF_SMTP_FROM_ADDRESS:-grafana@test.com} Loading @@ -45,6 +68,23 @@ services: - grafana:/var/lib/grafana - grafana-etc:/etc/grafana - grafana-log:/var/log/grafana deploy: mode: replicated replicas: 1 labels: traefik.port: "3000" traefik.docker.network: traefik-net traefik.frontend.rule: Host:grafana.${PUBLIC_HOSTNAME} traefik.backend: grafana restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M alertmanager: image: stefanprodan/swarmprom-alertmanager:v0.14.0 Loading @@ -60,6 +100,27 @@ services: - traefik-net volumes: - alertmanager:/alertmanager deploy: mode: replicated replicas: 1 labels: traefik.port: "9093" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:alertmanager.${PUBLIC_HOSTNAME} traefik.backend: alertmanager placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M unsee: image: cloudflare/unsee:v0.8.0 Loading @@ -68,6 +129,24 @@ services: - traefik-net environment: - "ALERTMANAGER_URIS=default:http://alertmanager:9093" deploy: mode: replicated replicas: 1 labels: traefik.port: "8080" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:unsee.${PUBLIC_HOSTNAME} traefik.backend: unsee restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M node-exporter: image: stefanprodan/swarmprom-node-exporter:v0.15.2 Loading @@ -89,26 +168,45 @@ services: - /sys:/host/sys:ro - /:/rootfs:ro - /etc/hostname:/etc/nodename deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M prometheus: image: stefanprodan/swarmprom-prometheus:v2.2.0-rc.0 pushgateway: image: prom/pushgateway command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--storage.tsdb.path=/prometheus' - '--storage.tsdb.retention=30d' user: "0:0" - '--persistence.file=/db/metrics' networks: - metric-net - traefik-net volumes: - prometheus:/prometheus configs: - source: node_rules target: /etc/prometheus/swarm_node.rules.yml - source: task_rules target: /etc/prometheus/swarm_task.rules.yml - pushgateway:/db deploy: mode: replicated replicas: 1 labels: traefik.port: "9091" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:pushgateway.${PUBLIC_HOSTNAME} traefik.backend: pushgateway restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M networks: metric-net: Loading @@ -120,9 +218,3 @@ networks: configs: dockerd_config: file: ./swarmprom/dockerd-exporter/Caddyfile node_rules: file: ./swarmprom/prometheus/rules/swarm_node.rules.yml task_rules: file: ./swarmprom/prometheus/rules/swarm_task.rules.yml Loading
.env +1 −0 Original line number Diff line number Diff line PUBLIC_HOSTNAME=localhost DOCKER_GWBRIDGE_IP=172.18.0.1 JOBS=pushgateway:9091
.gitlab-ci.yml +50 −0 Original line number Diff line number Diff line stages: - check_rules - deploy image: registry.gitlab.com/redmic-project/docker/docker-deploy Loading @@ -14,6 +15,17 @@ variables: STACK: metric SERVICES_TO_CHECK: metric_dockerd-exporter metric_cadvisor metric_grafana metric_alertmanager metric_unsee metric_node-exporter metric_prometheus check-rule-dev: stage: check_rules script: - > docker run -v $(pwd)/prometheus/rules:/tmp dnanexus/promtool:1.0 check rules /tmp/swarm_task.rules.yml environment: name: dev only: - dev deploy-dev: stage: deploy variables: Loading @@ -24,17 +36,35 @@ deploy-dev: DOCKER_GWBRIDGE_IP: ${DEV_DOCKER_GWBRIDGE_IP} UI_AUTH: ${DEV_UI_AUTH} PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} SLACK_URL: ${SLACK_URL} SLACK_CHANNEL: ${DEV_SLACK_CHANNEL} SLACK_USER: ${SLACK_USER} script: - create-nets.sh metric-net - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} ADMIN_USER=${ADMIN_USER} ADMIN_PASSWORD=${ADMIN_PASSWORD} DOCKER_GWBRIDGE_IP=${DOCKER_GWBRIDGE_IP} UI_AUTH=${UI_AUTH} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} SLACK_URL=${SLACK_URL} SLACK_CHANNEL=${SLACK_CHANNEL} SLACK_USER=${SLACK_USER} environment: name: dev only: - dev when: manual check-rule-supporting-branch: stage: check_rules script: - > docker run -v $(pwd)/prometheus/rules:/tmp dnanexus/promtool:1.0 check rules /tmp/swarm_task.rules.yml environment: name: dev only: - branches except: - master - dev deploy-supporting-branch: stage: deploy variables: Loading @@ -45,11 +75,15 @@ deploy-supporting-branch: DOCKER_GWBRIDGE_IP: ${DEV_DOCKER_GWBRIDGE_IP} UI_AUTH: ${DEV_UI_AUTH} PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME} SLACK_URL: ${SLACK_URL} SLACK_CHANNEL: ${DEV_SLACK_CHANNEL} SLACK_USER: ${SLACK_USER} script: - create-nets.sh metric-net - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} ADMIN_USER=${ADMIN_USER} ADMIN_PASSWORD=${ADMIN_PASSWORD} DOCKER_GWBRIDGE_IP=${DOCKER_GWBRIDGE_IP} UI_AUTH=${UI_AUTH} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} SLACK_URL=${SLACK_URL} SLACK_CHANNEL=${SLACK_CHANNEL} SLACK_USER=${SLACK_USER} environment: name: dev only: Loading @@ -59,6 +93,18 @@ deploy-supporting-branch: - dev when: manual check-rule-pro: stage: check_rules script: - > docker run -v $(pwd)/prometheus/rules:/tmp dnanexus/promtool:1.0 check rules /tmp/swarm_task.rules.yml environment: name: pro only: - master deploy-pro: stage: deploy variables: Loading @@ -69,11 +115,15 @@ deploy-pro: DOCKER_GWBRIDGE_IP: ${PRO_DOCKER_GWBRIDGE_IP} UI_AUTH: ${PRO_UI_AUTH} PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME} SLACK_URL: ${SLACK_URL} SLACK_CHANNEL: ${PRO_SLACK_CHANNEL} SLACK_USER: ${SLACK_USER} script: - create-nets.sh metric-net - > deploy.sh COMPOSE_FILE=${COMPOSE_FILE} ADMIN_USER=${ADMIN_USER} ADMIN_PASSWORD=${ADMIN_PASSWORD} DOCKER_GWBRIDGE_IP=${DOCKER_GWBRIDGE_IP} UI_AUTH=${UI_AUTH} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME} SLACK_URL=${SLACK_URL} SLACK_CHANNEL=${SLACK_CHANNEL} SLACK_USER=${SLACK_USER} environment: name: pro only: Loading
docker-compose.dev.yml +2 −147 Original line number Diff line number Diff line version: '3.5' services: dockerd-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M cadvisor: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M grafana: ports: - target: 3000 published: 18004 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "3000" traefik.docker.network: traefik-net traefik.frontend.rule: Host:grafana.${PUBLIC_HOSTNAME} traefik.backend: grafana placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M alertmanager: ports: - target: 9093 published: 9093 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "9093" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:alertmanager.${PUBLIC_HOSTNAME} traefik.backend: alertmanager placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M unsee: ports: - target: 8080 published: 9094 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "8080" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:unsee.${PUBLIC_HOSTNAME} traefik.backend: unsee restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M node-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M prometheus: ports: - target: 9090 published: 9090 mode: host deploy: mode: replicated replicas: 1 labels: traefik.port: "9090" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:prometheus.${PUBLIC_HOSTNAME} traefik.backend: prometheus placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 512M reservations: memory: 128M volumes: prometheus: name: prometheus-vol pushgateway: name: pushgateway-vol grafana: name: grafana-vol Loading
docker-compose.prod.yml +3 −123 Original line number Diff line number Diff line version: '3.5' services: dockerd-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M cadvisor: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M grafana: deploy: mode: replicated replicas: 1 labels: traefik.port: "3000" traefik.docker.network: traefik-net traefik.frontend.rule: Host:grafana.${PUBLIC_HOSTNAME} traefik.backend: grafana placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M alertmanager: pushgateway: deploy: mode: replicated replicas: 1 labels: traefik.port: "9093" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:alertmanager.${PUBLIC_HOSTNAME} traefik.backend: alertmanager placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M unsee: deploy: mode: replicated replicas: 1 labels: traefik.port: "8080" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:unsee.${PUBLIC_HOSTNAME} traefik.backend: unsee restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M node-exporter: deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M prometheus: deploy: mode: replicated replicas: 1 labels: traefik.port: "9090" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:prometheus.${PUBLIC_HOSTNAME} traefik.backend: prometheus placement: constraints: - node.role == worker restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 512M reservations: memory: 128M volumes: prometheus: name: prometheus-vol driver: "cloudstor:aws" driver_opts: backing: relocatable size: 5 ebstype: gp2 pushgateway: name: pushgateway-vol grafana: name: grafana-vol Loading
docker-compose.tmpl.yml +112 −20 Original line number Diff line number Diff line Loading @@ -12,6 +12,17 @@ services: configs: - source: dockerd_config target: /etc/caddy/Caddyfile deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M cadvisor: image: google/cadvisor Loading @@ -24,6 +35,17 @@ services: - /var/run:/var/run - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M grafana: image: stefanprodan/swarmprom-grafana:5.0.1 Loading @@ -31,6 +53,7 @@ services: - GF_SECURITY_ADMIN_USER=${ADMIN_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin} - GF_USERS_ALLOW_SIGN_UP=false - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-piechart-panel #- GF_SERVER_ROOT_URL=${GF_SERVER_ROOT_URL:-localhost} #- GF_SMTP_ENABLED=${GF_SMTP_ENABLED:-false} #- GF_SMTP_FROM_ADDRESS=${GF_SMTP_FROM_ADDRESS:-grafana@test.com} Loading @@ -45,6 +68,23 @@ services: - grafana:/var/lib/grafana - grafana-etc:/etc/grafana - grafana-log:/var/log/grafana deploy: mode: replicated replicas: 1 labels: traefik.port: "3000" traefik.docker.network: traefik-net traefik.frontend.rule: Host:grafana.${PUBLIC_HOSTNAME} traefik.backend: grafana restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M alertmanager: image: stefanprodan/swarmprom-alertmanager:v0.14.0 Loading @@ -60,6 +100,27 @@ services: - traefik-net volumes: - alertmanager:/alertmanager deploy: mode: replicated replicas: 1 labels: traefik.port: "9093" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:alertmanager.${PUBLIC_HOSTNAME} traefik.backend: alertmanager placement: constraints: - node.role == manager restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M unsee: image: cloudflare/unsee:v0.8.0 Loading @@ -68,6 +129,24 @@ services: - traefik-net environment: - "ALERTMANAGER_URIS=default:http://alertmanager:9093" deploy: mode: replicated replicas: 1 labels: traefik.port: "8080" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:unsee.${PUBLIC_HOSTNAME} traefik.backend: unsee restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M node-exporter: image: stefanprodan/swarmprom-node-exporter:v0.15.2 Loading @@ -89,26 +168,45 @@ services: - /sys:/host/sys:ro - /:/rootfs:ro - /etc/hostname:/etc/nodename deploy: mode: global restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M prometheus: image: stefanprodan/swarmprom-prometheus:v2.2.0-rc.0 pushgateway: image: prom/pushgateway command: - '--config.file=/etc/prometheus/prometheus.yml' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--storage.tsdb.path=/prometheus' - '--storage.tsdb.retention=30d' user: "0:0" - '--persistence.file=/db/metrics' networks: - metric-net - traefik-net volumes: - prometheus:/prometheus configs: - source: node_rules target: /etc/prometheus/swarm_node.rules.yml - source: task_rules target: /etc/prometheus/swarm_task.rules.yml - pushgateway:/db deploy: mode: replicated replicas: 1 labels: traefik.port: "9091" traefik.docker.network: traefik-net traefik.frontend.auth.basic: ${UI_AUTH} traefik.frontend.rule: Host:pushgateway.${PUBLIC_HOSTNAME} traefik.backend: pushgateway restart_policy: delay: 1m window: 3m resources: limits: cpus: '0.5' memory: 128M reservations: memory: 64M networks: metric-net: Loading @@ -120,9 +218,3 @@ networks: configs: dockerd_config: file: ./swarmprom/dockerd-exporter/Caddyfile node_rules: file: ./swarmprom/prometheus/rules/swarm_node.rules.yml task_rules: file: ./swarmprom/prometheus/rules/swarm_task.rules.yml