Files
netmaker/compose/docker-compose.pro.yml
T

84 lines
3.1 KiB
YAML

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:latest
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: { }