Merge "Grafana Dashboard customization script"
authorYu Yang (Gabriel) <Gabriel.yuyang@huawei.com>
Mon, 2 Apr 2018 04:08:13 +0000 (04:08 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 2 Apr 2018 04:08:14 +0000 (04:08 +0000)
monitor/custom-dashboard.py [new file with mode: 0644]
monitor/custom-query-dashboard.json [new file with mode: 0644]

diff --git a/monitor/custom-dashboard.py b/monitor/custom-dashboard.py
new file mode 100644 (file)
index 0000000..48173f8
--- /dev/null
@@ -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 (file)
index 0000000..8ee8357
--- /dev/null
@@ -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
+        }
+    ]
+}