#!/usr/bin/env python3 import os # Create monitoring directory structure repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) monitoring_dir = os.path.join(repo_root, 'monitoring') grafana_dir = os.path.join(monitoring_dir, 'grafana') datasources_dir = os.path.join(grafana_dir, 'provisioning', 'datasources') providers_dir = os.path.join(grafana_dir, 'provisioning', 'dashboards') os.makedirs(datasources_dir, exist_ok=True) os.makedirs(providers_dir, exist_ok=True) # Essential datasource configurations datasources = { 'prometheus.yml': """apiVersion: 1 datasources: - name: Prometheus type: prometheus access: proxy url: http://prometheus:9090 isDefault: true editable: true jsonData: timeInterval: "5s" """, 'loki.yml': """apiVersion: 1 datasources: - name: Loki type: loki access: proxy url: http://loki:3100 editable: true jsonData: maxLines: 1000 """, 'dashboards.yml': """apiVersion: 1 providers: - name: 'default' orgId: 1 folder: '' type: file disableDeletion: false updateIntervalSeconds: 10 allowUiUpdates: true options: path: /var/lib/grafana/dashboards """ } # Write configuration files for filename, content in datasources.items(): if filename == 'dashboards.yml': path = os.path.join(providers_dir, filename) else: path = os.path.join(datasources_dir, filename) with open(path, 'w') as f: f.write(content) print("Monitoring setup completed!")