From 742fc9ab94ede1187c9146e5336e28fe84d510c5 Mon Sep 17 00:00:00 2001 From: Yang Yu Date: Wed, 2 May 2018 12:14:49 +0800 Subject: Style-check for monitoring scripts Fix the style-check errors for monitoring scripts. In another patch, the scripts will be restructured according the dicretory structure. Change-Id: I4149b18177fa1bdeb1b12a84ecad3d7d0b78260b Signed-off-by: Yang Yu --- monitor/automated_dashboard_datasource.py | 71 +++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 monitor/automated_dashboard_datasource.py (limited to 'monitor/automated_dashboard_datasource.py') diff --git a/monitor/automated_dashboard_datasource.py b/monitor/automated_dashboard_datasource.py new file mode 100644 index 00000000..ee605049 --- /dev/null +++ b/monitor/automated_dashboard_datasource.py @@ -0,0 +1,71 @@ +############################################################################## +# Copyright (c) 2017 Huawei Tech and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import logging +import socket +import requests +from oslo_serialization import jsonutils + + +logger = logging.getLogger(__name__) + + +def _create_dashboard(ip, port, path): + url = 'http://admin:admin@{}:{}/api/dashboards/db'.format(ip, port) + logger.info("Fetched IP for dashboard creation!") + with open(path) as f: + data = jsonutils.load(f) + try: + post(url, {"dashboard": data}) + logger.info("Trying to post dashboard json!") + except Exception: + logger.info("Create dashboard failed") + raise + + +def _create_data_source(ip, port): + url = 'http://admin:admin@{}:{}/api/datasources'.format(ip, port) + logger.info("Fetched URL for datasource") + data = { + "name": "automated-ds", + "type": "prometheus", + "access": "direct", + "url": "http://{}:9090".format(ip), + } + try: + post(url, data) + logger.info("Trying to post datasource") + + except Exception: + logger.info("Create Datasources failed") + raise + + +def post(url, data): + data = jsonutils.dump_as_bytes(data) + logger.info("In post method for dumping data") + headers = {'Content-Type': 'application/json'} + try: + response = requests.post(url, data=data, headers=headers) + result = response.json() + logger.debug('The result is: %s', result) + logger.info("Trying to post") + return result + except Exception as e: + logger.info("Failed post" + str(e)) + raise + + +ip_address = socket.gethostbyname(socket.gethostname()) +_create_data_source(ip_address, 3000) +_create_dashboard(ip_address, 3000, '/var/lib/grafana/' + + 'dashboards/' + + 'prometheus_system_rev1.json') +_create_dashboard(ip_address, 3000, + 'prototype_dashboard_collapsible.json') -- cgit 1.2.3-korg