services: prometheus: container_name: prometheus image: prom/prometheus:latest environment: - METRICS_USERNAME=${METRICS_USERNAME:-netmaker} - METRICS_SECRET=${METRICS_SECRET} - NETMAKER_METRICS_TARGET=${NETMAKER_METRICS_TARGET:-http://netmaker-exporter:8085} - PROMETHEUS_RETENTION_TIME=${PROMETHEUS_RETENTION_TIME:-15d} - PROMETHEUS_RETENTION_SIZE=${PROMETHEUS_RETENTION_SIZE:-0} volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml.tmpl:ro - prometheus-data:/prometheus entrypoint: /bin/sh command: - -c - | cp /etc/prometheus/prometheus.yml.tmpl /etc/prometheus/prometheus.rendered.yml url="$${NETMAKER_METRICS_TARGET}" if echo "$${url}" | grep -q '://'; then scheme="$${url%%://*}"; target="$${url#*://}" else scheme="https"; target="$${url}" fi sed -i "s~NETMAKER_METRICS_TARGET~$${target}~g" /etc/prometheus/prometheus.rendered.yml sed -i "s~__SCHEME__~$${scheme}~g" /etc/prometheus/prometheus.rendered.yml sed -i "s~METRICS_USERNAME~$${METRICS_USERNAME}~g" /etc/prometheus/prometheus.rendered.yml sed -i "s~METRICS_SECRET~$${METRICS_SECRET}~g" /etc/prometheus/prometheus.rendered.yml exec /bin/prometheus \ --config.file=/etc/prometheus/prometheus.rendered.yml \ --storage.tsdb.path=/prometheus \ --storage.tsdb.retention.time=$${PROMETHEUS_RETENTION_TIME:-15d} \ --storage.tsdb.retention.size=$${PROMETHEUS_RETENTION_SIZE:-0} restart: unless-stopped grafana: container_name: grafana image: grafana/grafana:latest environment: - PROMETHEUS_HOST=${PROMETHEUS_HOST:-http://prometheus:9090} volumes: - ./grafana/grafana.ini:/etc/grafana/grafana.ini:ro - ./grafana/datasource.yaml:/etc/grafana/provisioning/datasources/datasource.yaml:ro - ./grafana/dashboard-config.yaml:/etc/grafana/provisioning/dashboards/dashboard-config.yaml:ro - ./grafana/dashboard.json:/var/lib/grafana/dashboards/dashboard.json:ro - grafana-data:/var/lib/grafana restart: unless-stopped netmaker-exporter: container_name: netmaker-exporter image: gravitl/netmaker-exporter:v1.0.0 env_file: ./netmaker.env environment: - PROMETHEUS_HOST=${PROMETHEUS_HOST:-http://prometheus:9090} # The domain/host IP indicating the mq broker address - BROKER_ENDPOINT=ws://mq:1883 #wss://broker.${NM_DOMAIN} - API_PORT=${EXPORTER_API_PORT} - SERVER_NAME=${NM_DOMAIN} restart: always depends_on: - netmaker # - clickhouse # # clickhouse: # container_name: clickhouse # image: clickhouse/clickhouse-server:latest # env_file: ./netmaker.env # restart: always # environment: # - CLICKHOUSE_DB=${CLICKHOUSE_DB} # - CLICKHOUSE_USER=${CLICKHOUSE_USER} # - CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASS} # volumes: # - clickhouse_data:/var/lib/clickhouse # - clickhouse_logs:/var/log/clickhouse-server volumes: prometheus-data: { } grafana-data: { } # clickhouse_data: { } # clickhouse_logs: { }