From 5053b1c137d1d22678a416abbaf4dd4cce3e5285 Mon Sep 17 00:00:00 2001 From: Rutuja Surve Date: Tue, 30 Jan 2018 16:52:33 +0000 Subject: Grafana Dashboard customization script JIRA: BOTTLENECK-182 Customization of dashboard with respect to query for a particular panel Change-Id: Ic8730c2fc1540fc41d1206b4610beb7b304825ae Signed-off-by: Rutuja Surve --- monitor/custom-dashboard.py | 31 +++++++++++++++++++++++++++++++ monitor/custom-query-dashboard.json | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 monitor/custom-dashboard.py create mode 100644 monitor/custom-query-dashboard.json diff --git a/monitor/custom-dashboard.py b/monitor/custom-dashboard.py new file mode 100644 index 00000000..48173f8e --- /dev/null +++ b/monitor/custom-dashboard.py @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (c) 2018 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 json + +def customize_query(filename, rowtitle, panelname, expr): + with open(filename, 'r+') as f: + data = json.load(f) + x = data['rows'] #this is an array of the rows of the dashboard + for y in x: + if y['title'] == rowtitle: + pan = y['panels'] + for i in range(len(pan)-1) : + z = pan[i] + if z['title'] == panelname: + tar = z['targets'] + for a in tar: + a['expr'] = expr + f.seek(0) # <--- reset file position to start + json.dump(data, f, indent=4) + f.truncate() + +customize_query("/home/opnfv/bottlenecks/monitor/custom-query-dashboard.json", + "Dashboard Row", "Memory Usage per Container", "Sample Prometheus Query") + diff --git a/monitor/custom-query-dashboard.json b/monitor/custom-query-dashboard.json new file mode 100644 index 00000000..8ee83570 --- /dev/null +++ b/monitor/custom-query-dashboard.json @@ -0,0 +1,36 @@ +{ + "rows": [ + { + "repeat": null, + "titleSize": "h6", + "repeatIteration": null, + "title": "Dashboard Row", + "height": 150, + "repeatRowId": null, + "panels": [ + { + "title": "Memory Usage per Container", + "aliasColors": {}, + "id": 31, + "cacheTimeout": null, + "valueName": "current", + "targets": [ + { + "hide": false, + "expr": "Pre-existing Query", + "step": 1800, + "legendFormat": "", + "intervalFactor": 2, + "refId": "A" + } + ] + }, + { + "content": "Sample Content" + } + ], + "showTitle": false, + "collapse": true + } + ] +} -- cgit 1.2.3-korg