eole-prometheus/postservice/88_grafana

52 lines
1.4 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import requests
import json
from creole.client import CreoleClient
creole = c = CreoleClient()
grafanaHost = creole.get_creole('srvGrafanaIP','127.0.0.1')
grafanaPort = creole.get_creole('srvGrafanaPort', '3000')
grafanaURL = os.path.join('http://', '%s:%s' % (grafanaHost, grafanaPort))
grafanaUser = "admin"
grafanaPasswd = creole.get_creole('grafana_admin_passwd')
datasource_name = creole.get_creole('promDataSource',"prometheus")
promHost = creole.get_creole('addresse_ip_eth0')
promPort = '9090'
session = requests.Session()
login_post = session.post (
os.path.join(grafanaURL, 'login'),
data=json.dumps({
'user': grafanaUser,
'email': '',
'password': grafanaPasswd
}),
headers={'content-type': 'application/json'}
)
# Get list of datasources
datasources_get = session.get(os.path.join(grafanaURL, 'api', 'datasources'))
datasources = datasources_get.json()
if datasources['message'] == "Unauthorized" :
exit(34)
# Add new datasource
datasources_put = session.put(
os.path.join(grafanaURL, 'api', 'datasources'),
data=json.dumps({
'access': 'direct',
'name': datasource_name,
'type': 'prometheus',
'url': 'http://%s:%u' % (promHost, promPort),
'basicAuth': 'false',
'withCredentials': 'false'
}),
headers={'content-type': 'application/json'}
)