From cb67313c1e14b6eca057bdfc7722bc11506b7a2a Mon Sep 17 00:00:00 2001 From: Yang Yu Date: Wed, 2 May 2018 16:52:11 +0800 Subject: Restructure monitoring scripts Restructure the monitoring scripts and modify the scripts to remove the redundance Change-Id: Ib4a5d7bea2dc455ec03ad61780b6caf06831daa8 Signed-off-by: Yang Yu --- .../dashboard/automated_dashboard_datasource.py | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 monitor/dashboard/automated_dashboard_datasource.py (limited to 'monitor/dashboard/automated_dashboard_datasource.py') diff --git a/monitor/dashboard/automated_dashboard_datasource.py b/monitor/dashboard/automated_dashboard_datasource.py new file mode 100644 index 00000000..48f9710c --- /dev/null +++ b/monitor/dashboard/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__) +MONITOR_DASHBOARD = "/home/opnfv/bottlenecks/monitor/dashboard/" + + +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, +# MONITOR_DASHBOARD + 'prometheus_system_rev1.json') +_create_dashboard(ip_address, 3000, + MONITOR_DASHBOARD + 'prototype_dashboard_collapsible.json') -- cgit 1.2.3-korg