From 3c283c8e5d73bd33f9df81eeedc41c1d8367e44a Mon Sep 17 00:00:00 2001 From: ozanunal0 Date: Wed, 9 Jul 2025 18:12:49 +0300 Subject: [PATCH] add complete data persistence for Grafana and Prometheus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add persistent volumes for grafana_data and prometheus_data - Create Grafana provisioning configuration for automatic Prometheus datasource - Add dashboard provisioning setup with proper directory structure - Eliminate need to manually configure Grafana-Prometheus connection - Data now persists across container restarts (API keys, metrics, dashboards) - Grafana automatically connects to Prometheus on startup Key files: - grafana/provisioning/datasources/prometheus.yml: Auto-configures Prometheus datasource - grafana/provisioning/dashboards/dashboard.yml: Dashboard provisioning config - Updated docker-compose.yml with persistent volumes and volume mounts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- docker-compose.yml | 5 +++++ grafana/provisioning/dashboards/dashboard.yml | 12 ++++++++++++ grafana/provisioning/datasources/prometheus.yml | 14 ++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 grafana/provisioning/dashboards/dashboard.yml create mode 100644 grafana/provisioning/datasources/prometheus.yml diff --git a/docker-compose.yml b/docker-compose.yml index 1d3c94a..a8936d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,6 +24,7 @@ services: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus depends_on: - gateway networks: @@ -41,6 +42,9 @@ services: - GF_INSTALL_PLUGINS= volumes: - grafana_data:/var/lib/grafana + - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources + - ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards + - ./grafana/dashboards:/var/lib/grafana/dashboards depends_on: - prometheus networks: @@ -48,6 +52,7 @@ services: volumes: grafana_data: + prometheus_data: networks: shared-app-network: diff --git a/grafana/provisioning/dashboards/dashboard.yml b/grafana/provisioning/dashboards/dashboard.yml new file mode 100644 index 0000000..35c89ff --- /dev/null +++ b/grafana/provisioning/dashboards/dashboard.yml @@ -0,0 +1,12 @@ +apiVersion: 1 + +providers: + - name: 'default' + orgId: 1 + folder: '' + type: file + disableDeletion: false + updateIntervalSeconds: 10 + allowUiUpdates: true + options: + path: /var/lib/grafana/dashboards \ No newline at end of file diff --git a/grafana/provisioning/datasources/prometheus.yml b/grafana/provisioning/datasources/prometheus.yml new file mode 100644 index 0000000..c822538 --- /dev/null +++ b/grafana/provisioning/datasources/prometheus.yml @@ -0,0 +1,14 @@ +apiVersion: 1 + +datasources: + - name: Prometheus + type: prometheus + access: proxy + url: http://prometheus:9090 + isDefault: true + editable: true + uid: prometheus-uid + jsonData: + timeInterval: 5s + queryTimeout: 60s + httpMethod: GET \ No newline at end of file