def import_gnet_dashboard_for_prometheus_datasource( api_token, gnet_id, prometheus_datasource_name): dashboard_json = None input_json = dict() result = get_gnet_dashboard(api_token, gnet_id) if result[0] == requests.codes.ok: io = StringIO(result[1]) res = json.load(io) dashboard_json = res.get("json") input_json = dashboard_json["__inputs"][0] input_json['value'] = prometheus_datasource_name payload = { 'dashboard': dashboard_json, 'inputs': [input_json], 'overwrite': True } uri = 'http://{0}:{1}/api/dashboards/import'.format( GRAFANA_INFO['host'], GRAFANA_INFO['port']) r = requests.post(uri, headers=get_auth_headers(api_token), data=json.dumps(payload)) return (r.status_code, r.text)
def create_datasource(api_token, data_source_name, data_source_type, url, access='proxy', basic_auth=False): uri = 'http://{0}:{1}/api/datasources'.format(GRAFANA_INFO['host'], GRAFANA_INFO['port']) payload = { 'name': data_source_name, 'type': data_source_type, 'url': url, 'access': access, 'basicAuth': basic_auth } r = requests.post(uri, headers=get_auth_headers(api_token), data=json.dumps(payload)) return (r.status_code, r.text)
def import_dashboard_for_prometheus_datasource_from_file( api_token, json_file_name, prometheus_datasource_name): dashboard_json = None input_json = dict() fd = open(json_file_path, 'r') dashboard_json = json.load(fd) input_json = dashboard_json["__inputs"][0] input_json['value'] = prometheus_datasource_name payload = { 'dashboard': dashboard_json, 'inputs': [input_json], 'overwrite': True } uri = 'http://{0}:{1}/api/dashboards/import'.format( GRAFANA_INFO['host'], GRAFANA_INFO['port']) r = requests.post(uri, headers=get_auth_headers(api_token), data=json.dumps(payload)) return (r.status_code, r.text)
def get_gnet_dashboard(api_token, gnet_id): uri = 'http://{0}:{1}/api/gnet/dashboards/{2}'.format( GRAFANA_INFO['host'], GRAFANA_INFO['port'], gnet_id) r = requests.get(uri, headers=get_auth_headers(api_token)) return (r.status_code, r.text)
def delete_dashboard(api_token, dashboard_slug): uri = 'http://{0}:{1}/api/dashboards/db/{2}'.format( GRAFANA_INFO['host'], GRAFANA_INFO['port'], dashboard_slug) r = requests.delete(uri, headers=get_auth_headers(api_token)) return (r.status_code, r.text)
def delete_datasource_by_id(api_token, datasource_id): uri = 'http://{0}:{1}/api/datasources/{2}'.format(GRAFANA_INFO['host'], GRAFANA_INFO['port'], datasource_id) r = requests.delete(uri, headers=get_auth_headers(api_token)) return (r.status_code, r.text)
def get_datasources(api_token): uri = 'http://{0}:{1}/api/datasources'.format(GRAFANA_INFO['host'], GRAFANA_INFO['port']) r = requests.get(uri, headers=get_auth_headers(api_token)) return (r.status_code, r.text)