Files
netmaker/compose/docker-compose.pro.yml
T
Abhishek Kondur e9675343a1 NM-241: Simplify grafana and Prometheus Setup, install script dir (#3868)
* NM-241: add metrics secret to install script

* NM-241: add install directory, download grafana files

* NM-241: update exporter setup

* NM-241: update exporter env vars

* NM-241: update volume

* NM-241: update promethues and grafana volumes

* NM-241: remove caddy domain for prom

* NM-241: rm graph grafana dashboard

* NM-241: add container name to prom and grafana

* NM-241: avoid creating new sub install folders
2026-03-02 11:23:48 +04:00

82 lines
2.8 KiB
YAML

services:
prometheus:
container_name: prometheus
image: prom/prometheus:latest
environment:
- 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 /tmp/prometheus.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" /tmp/prometheus.yml
sed -i "s~__SCHEME__~$${scheme}~g" /tmp/prometheus.yml
sed -i "s~METRICS_SECRET~$${METRICS_SECRET}~g" /tmp/prometheus.yml
exec /bin/prometheus \
--config.file=/tmp/prometheus.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: { }