mirror of
https://github.com/gravitl/netmaker.git
synced 2026-04-23 00:17:10 +08:00
84 lines
3.1 KiB
YAML
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: { }
|