From: Yu Yang (Gabriel) Date: Mon, 2 Apr 2018 04:08:13 +0000 (+0000) Subject: Merge "Grafana Dashboard customization script" X-Git-Tag: opnfv-6.0.0~3 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=c4a33d033497629b5e0b2ef1b269742eb26b0502;hp=d10c4644d44f707998c7f05dc72ec4913576b752;p=bottlenecks.git Merge "Grafana Dashboard customization script" --- 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 + } + ] +}