62 lines
No EOL
1.5 KiB
Python
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!") |