fetch_ml/scripts/dev/setup-monitoring.py

62 lines
No EOL
1.5 KiB
Python

#!/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!")