Browse Source

More development dashboards (#16550)

* Dev: more dev dashboards and structure

* Moving gdev dashboards around into folders and aligning tags
Torkel Ödegaard 6 years ago
parent
commit
844ec82eb0
28 changed files with 4410 additions and 752 deletions
  1. 1 1
      devenv/dashboards.yaml
  2. 14 67
      devenv/dev-dashboards/alerting/testdata_alerts.json
  3. 7 46
      devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_compare.json
  4. 1 1
      devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v2.json
  5. 1 1
      devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v5.json
  6. 1 1
      devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v6.json
  7. 1 1
      devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v6_filebeat.json
  8. 5 30
      devenv/dev-dashboards/datasource-mssql/mssql_fakedata.json
  9. 17 77
      devenv/dev-dashboards/datasource-mssql/mssql_unittest.json
  10. 5 34
      devenv/dev-dashboards/datasource-mysql/mysql_fakedata.json
  11. 17 77
      devenv/dev-dashboards/datasource-mysql/mysql_unittest.json
  12. 1 1
      devenv/dev-dashboards/datasource-postgres/postgres_fakedata.json
  13. 18 80
      devenv/dev-dashboards/datasource-postgres/postgres_unittest.json
  14. 1103 0
      devenv/dev-dashboards/datasource-testdata/demo1.json
  15. 1365 0
      devenv/dev-dashboards/feature-templating/testdata-repeating.json
  16. 171 0
      devenv/dev-dashboards/home.json
  17. 475 0
      devenv/dev-dashboards/panel-bargauge/animated_demo.json
  18. 367 0
      devenv/dev-dashboards/panel-bargauge/gradient_demo.json
  19. 393 0
      devenv/dev-dashboards/panel-bargauge/many_modes_demo.json
  20. 388 0
      devenv/dev-dashboards/panel-bargauge/retro_led_demo.json
  21. 2 2
      devenv/dev-dashboards/panel-gauge/gauge-multi-series.json
  22. 4 30
      devenv/dev-dashboards/panel-gauge/gauge_tests.json
  23. 2 2
      devenv/dev-dashboards/panel-graph/graph-time-regions.json
  24. 3 27
      devenv/dev-dashboards/panel-graph/graph_tests.json
  25. 9 57
      devenv/dev-dashboards/panel-polystat/polystat_test.json
  26. 9 57
      devenv/dev-dashboards/panel-singlestat/singlestat_test.json
  27. 27 134
      devenv/dev-dashboards/panel-table/table_tests.json
  28. 3 26
      devenv/dev-dashboards/scenarios/slow_queries_and_annotations.json

+ 1 - 1
devenv/dashboards.yaml

@@ -4,6 +4,6 @@ providers:
  - name: 'gdev dashboards'
  - name: 'gdev dashboards'
    folder: 'gdev dashboards'
    folder: 'gdev dashboards'
    type: file
    type: file
-   updateIntervalSeconds: 15
+   updateIntervalSeconds: 60
    options:
    options:
      path: devenv/dev-dashboards
      path: devenv/dev-dashboards

+ 14 - 67
devenv/dev-dashboards/testdata_alerts.json → devenv/dev-dashboards/alerting/testdata_alerts.json

@@ -22,17 +22,11 @@
         "conditions": [
         "conditions": [
           {
           {
             "evaluator": {
             "evaluator": {
-              "params": [
-                60
-              ],
+              "params": [60],
               "type": "gt"
               "type": "gt"
             },
             },
             "query": {
             "query": {
-              "params": [
-                "A",
-                "5m",
-                "now"
-              ]
+              "params": ["A", "5m", "now"]
             },
             },
             "reducer": {
             "reducer": {
               "params": [],
               "params": [],
@@ -149,17 +143,11 @@
         "conditions": [
         "conditions": [
           {
           {
             "evaluator": {
             "evaluator": {
-              "params": [
-                177
-              ],
+              "params": [177],
               "type": "gt"
               "type": "gt"
             },
             },
             "query": {
             "query": {
-              "params": [
-                "A",
-                "5m",
-                "now"
-              ]
+              "params": ["A", "5m", "now"]
             },
             },
             "reducer": {
             "reducer": {
               "params": [],
               "params": [],
@@ -278,20 +266,14 @@
         "conditions": [
         "conditions": [
           {
           {
             "evaluator": {
             "evaluator": {
-              "params": [
-                1
-              ],
+              "params": [1],
               "type": "gt"
               "type": "gt"
             },
             },
             "operator": {
             "operator": {
               "type": "and"
               "type": "and"
             },
             },
             "query": {
             "query": {
-              "params": [
-                "A",
-                "15m",
-                "now"
-              ]
+              "params": ["A", "15m", "now"]
             },
             },
             "reducer": {
             "reducer": {
               "params": [],
               "params": [],
@@ -409,20 +391,14 @@
         "conditions": [
         "conditions": [
           {
           {
             "evaluator": {
             "evaluator": {
-              "params": [
-                177
-              ],
+              "params": [177],
               "type": "gt"
               "type": "gt"
             },
             },
             "operator": {
             "operator": {
               "type": "and"
               "type": "and"
             },
             },
             "query": {
             "query": {
-              "params": [
-                "A",
-                "15m",
-                "now"
-              ]
+              "params": ["A", "15m", "now"]
             },
             },
             "reducer": {
             "reducer": {
               "params": [],
               "params": [],
@@ -540,20 +516,14 @@
         "conditions": [
         "conditions": [
           {
           {
             "evaluator": {
             "evaluator": {
-              "params": [
-                100
-              ],
+              "params": [100],
               "type": "gt"
               "type": "gt"
             },
             },
             "operator": {
             "operator": {
               "type": "and"
               "type": "and"
             },
             },
             "query": {
             "query": {
-              "params": [
-                "A",
-                "5m",
-                "now"
-              ]
+              "params": ["A", "5m", "now"]
             },
             },
             "reducer": {
             "reducer": {
               "params": [],
               "params": [],
@@ -670,9 +640,7 @@
   "revision": 2,
   "revision": 2,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "grafana-test"
-  ],
+  "tags": ["gdev", "alerting"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -681,32 +649,11 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "browser",
   "timezone": "browser",
   "title": "Alerting with TestData",
   "title": "Alerting with TestData",
   "uid": "7MeksYbmk",
   "uid": "7MeksYbmk",
   "version": 7
   "version": 7
-}
+}

+ 7 - 46
devenv/dev-dashboards/datasource_tests_elasticsearch_compare.json → devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_compare.json

@@ -21,10 +21,7 @@
   "links": [
   "links": [
     {
     {
       "icon": "external link",
       "icon": "external link",
-      "tags": [
-        "gdev",
-        "elasticsearch"
-      ],
+      "tags": ["gdev", "elasticsearch", "datasource-test"],
       "type": "dashboards"
       "type": "dashboards"
     }
     }
   ],
   ],
@@ -1824,13 +1821,7 @@
                   "id": "1",
                   "id": "1",
                   "meta": {},
                   "meta": {},
                   "settings": {
                   "settings": {
-                    "percents": [
-                      25,
-                      50,
-                      75,
-                      95,
-                      99
-                    ]
+                    "percents": [25, 50, 75, 95, 99]
                   },
                   },
                   "type": "percentiles"
                   "type": "percentiles"
                 }
                 }
@@ -1941,13 +1932,7 @@
                   "meta": {},
                   "meta": {},
                   "settings": {
                   "settings": {
                     "missing": null,
                     "missing": null,
-                    "percents": [
-                      25,
-                      50,
-                      75,
-                      95,
-                      99
-                    ]
+                    "percents": [25, 50, 75, 95, 99]
                   },
                   },
                   "type": "percentiles"
                   "type": "percentiles"
                 }
                 }
@@ -5858,10 +5843,7 @@
   "refresh": false,
   "refresh": false,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "elasticsearch"
-  ],
+  "tags": ["gdev", "elasticsearch"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -5901,32 +5883,11 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Datasource tests - Elasticsearch comparison",
   "title": "Datasource tests - Elasticsearch comparison",
   "uid": "fuFWehBmk",
   "uid": "fuFWehBmk",
   "version": 4
   "version": 4
-}
+}

+ 1 - 1
devenv/dev-dashboards/datasource_tests_elasticsearch_v2.json → devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v2.json

@@ -645,7 +645,7 @@
   ],
   ],
   "schemaVersion": 18,
   "schemaVersion": 18,
   "style": "dark",
   "style": "dark",
-  "tags": ["elasticsearch", "gdev"],
+  "tags": ["elasticsearch", "gdev", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {

+ 1 - 1
devenv/dev-dashboards/datasource_tests_elasticsearch_v5.json → devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v5.json

@@ -648,7 +648,7 @@
   ],
   ],
   "schemaVersion": 18,
   "schemaVersion": 18,
   "style": "dark",
   "style": "dark",
-  "tags": ["elasticsearch", "gdev"],
+  "tags": ["elasticsearch", "gdev", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {

+ 1 - 1
devenv/dev-dashboards/datasource_tests_elasticsearch_v6.json → devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v6.json

@@ -645,7 +645,7 @@
   ],
   ],
   "schemaVersion": 18,
   "schemaVersion": 18,
   "style": "dark",
   "style": "dark",
-  "tags": ["elasticsearch", "gdev"],
+  "tags": ["elasticsearch", "gdev", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {

+ 1 - 1
devenv/dev-dashboards/datasource_tests_elasticsearch_v6_filebeat.json → devenv/dev-dashboards/datasource-elasticsearch/elasticsearch_v6_filebeat.json

@@ -226,7 +226,7 @@
   ],
   ],
   "schemaVersion": 18,
   "schemaVersion": 18,
   "style": "dark",
   "style": "dark",
-  "tags": ["gdev", "elasticsearch"],
+  "tags": ["gdev", "elasticsearch", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {

+ 5 - 30
devenv/dev-dashboards/datasource_tests_mssql_fakedata.json → devenv/dev-dashboards/datasource-mssql/mssql_fakedata.json

@@ -319,11 +319,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -346,7 +342,7 @@
   ],
   ],
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": ["gdev", "mssql", "fake-data-gen"],
+  "tags": ["gdev", "mssql", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -486,32 +482,11 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Datasource tests - MSSQL",
   "title": "Datasource tests - MSSQL",
   "uid": "86Js1xRmk",
   "uid": "86Js1xRmk",
   "version": 1
   "version": 1
-}
+}

+ 17 - 77
devenv/dev-dashboards/datasource_tests_mssql_unittest.json → devenv/dev-dashboards/datasource-mssql/mssql_unittest.json

@@ -90,11 +90,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -143,11 +139,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -197,11 +189,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -251,11 +239,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -305,11 +289,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -2124,9 +2104,7 @@
         "mode": "series",
         "mode": "series",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2212,9 +2190,7 @@
         "mode": "series",
         "mode": "series",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2299,9 +2275,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2387,9 +2361,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2474,9 +2446,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2562,9 +2532,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2649,9 +2617,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2737,9 +2703,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2768,10 +2732,7 @@
   "refresh": false,
   "refresh": false,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "mssql"
-  ],
+  "tags": ["gdev", "mssql", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -2871,32 +2832,11 @@
     "to": "2018-03-15T13:55:01.000Z"
     "to": "2018-03-15T13:55:01.000Z"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Datasource tests - MSSQL (unit test)",
   "title": "Datasource tests - MSSQL (unit test)",
   "uid": "GlAqcPgmz",
   "uid": "GlAqcPgmz",
   "version": 2
   "version": 2
-}
+}

+ 5 - 34
devenv/dev-dashboards/datasource_tests_mysql_fakedata.json → devenv/dev-dashboards/datasource-mysql/mysql_fakedata.json

@@ -323,11 +323,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -352,11 +348,7 @@
   ],
   ],
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "fake-data-gen",
-    "mysql"
-  ],
+  "tags": ["gdev", "mysql", "datasource-tags"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -502,32 +494,11 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Datasource tests - MySQL",
   "title": "Datasource tests - MySQL",
   "uid": "DGsCac3kz",
   "uid": "DGsCac3kz",
   "version": 8
   "version": 8
-}
+}

+ 17 - 77
devenv/dev-dashboards/datasource_tests_mysql_unittest.json → devenv/dev-dashboards/datasource-mysql/mysql_unittest.json

@@ -90,11 +90,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -143,11 +139,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -197,11 +189,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -251,11 +239,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -305,11 +289,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -1938,9 +1918,7 @@
         "mode": "series",
         "mode": "series",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2026,9 +2004,7 @@
         "mode": "series",
         "mode": "series",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2113,9 +2089,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2201,9 +2175,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2288,9 +2260,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2376,9 +2346,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2463,9 +2431,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2551,9 +2517,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2582,10 +2546,7 @@
   "refresh": false,
   "refresh": false,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "mysql"
-  ],
+  "tags": ["gdev", "mysql", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -2683,32 +2644,11 @@
     "to": "2018-03-15T13:55:01.000Z"
     "to": "2018-03-15T13:55:01.000Z"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Datasource tests - MySQL (unittest)",
   "title": "Datasource tests - MySQL (unittest)",
   "uid": "Hmf8FDkmz",
   "uid": "Hmf8FDkmz",
   "version": 2
   "version": 2
-}
+}

+ 1 - 1
devenv/dev-dashboards/datasource_tests_postgres_fakedata.json → devenv/dev-dashboards/datasource-postgres/postgres_fakedata.json

@@ -347,7 +347,7 @@
   ],
   ],
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": ["gdev", "fake-data-gen", "postgres"],
+  "tags": ["gdev", "postgres", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {

+ 18 - 80
devenv/dev-dashboards/datasource_tests_postgres_unittest.json → devenv/dev-dashboards/datasource-postgres/postgres_unittest.json

@@ -90,11 +90,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -143,11 +139,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -197,11 +189,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -251,11 +239,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -305,11 +289,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -1914,9 +1894,7 @@
         "mode": "series",
         "mode": "series",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2002,9 +1980,7 @@
         "mode": "series",
         "mode": "series",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2089,9 +2065,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2177,9 +2151,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2264,9 +2236,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2352,9 +2322,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2439,9 +2407,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "current"
-        ]
+        "values": ["current"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2527,9 +2493,7 @@
         "mode": "histogram",
         "mode": "histogram",
         "name": null,
         "name": null,
         "show": true,
         "show": true,
-        "values": [
-          "total"
-        ]
+        "values": ["total"]
       },
       },
       "yaxes": [
       "yaxes": [
         {
         {
@@ -2558,10 +2522,7 @@
   "refresh": false,
   "refresh": false,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "postgres"
-  ],
+  "tags": ["gdev", "postgres", "datasource-test"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -2570,9 +2531,7 @@
           "selected": true,
           "selected": true,
           "tags": [],
           "tags": [],
           "text": "All",
           "text": "All",
-          "value": [
-            "$__all"
-          ]
+          "value": ["$__all"]
         },
         },
         "datasource": "gdev-postgres-ds-tests",
         "datasource": "gdev-postgres-ds-tests",
         "hide": 0,
         "hide": 0,
@@ -2663,32 +2622,11 @@
     "to": "2018-03-15T13:55:01.000Z"
     "to": "2018-03-15T13:55:01.000Z"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Datasource tests - Postgres (unittest)",
   "title": "Datasource tests - Postgres (unittest)",
   "uid": "vHQdlVziz",
   "uid": "vHQdlVziz",
   "version": 1
   "version": 1
-}
+}

+ 1103 - 0
devenv/dev-dashboards/datasource-testdata/demo1.json

@@ -0,0 +1,1103 @@
+{
+  "annotations": {
+    "enable": false,
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 1,
+  "links": [],
+  "panels": [
+    {
+      "aliasColors": {
+        "cpu": "#E24D42",
+        "memory": "#1f78c1",
+        "statsd.fakesite.counters.session_start.desktop.count": "#6ED0E0"
+      },
+      "annotate": {
+        "enable": false
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "editable": true,
+      "fill": 3,
+      "grid": {
+        "max": null,
+        "min": 0
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 0
+      },
+      "id": 4,
+      "interactive": true,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": true,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "legend_counts": true,
+      "lines": true,
+      "linewidth": 2,
+      "nullPointMode": "connected",
+      "options": false,
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "resolution": 100,
+      "scale": 1,
+      "seriesOverrides": [
+        {
+          "alias": "cpu",
+          "fill": 0,
+          "lines": true,
+          "yaxis": 2,
+          "zindex": 2
+        },
+        {
+          "alias": "memory",
+          "pointradius": 2,
+          "points": true
+        }
+      ],
+      "spaceLength": 10,
+      "spyable": true,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "alias": "memory",
+          "hide": false,
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "target": "alias(movingAverage(scaleToSeconds(apps.fakesite.web_server_01.counters.request_status.code_302.count, 10), 20), 'cpu')"
+        },
+        {
+          "alias": "cpu",
+          "refId": "B",
+          "scenarioId": "random_walk",
+          "target": "alias(statsd.fakesite.counters.session_start.desktop.count, 'memory')"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "timezone": "browser",
+      "title": "Memory / CPU",
+      "tooltip": {
+        "msResolution": false,
+        "query_as_alias": true,
+        "shared": false,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "percent",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      },
+      "zerofill": true
+    },
+    {
+      "aliasColors": {
+        "logins": "#5195ce",
+        "logins (-1 day)": "#447EBC",
+        "logins (-1 hour)": "#705da0"
+      },
+      "annotate": {
+        "enable": false
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "editable": true,
+      "fill": 1,
+      "grid": {
+        "max": null,
+        "min": 0
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 8,
+        "y": 0
+      },
+      "id": 3,
+      "interactive": true,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "legend_counts": true,
+      "lines": true,
+      "linewidth": 1,
+      "nullPointMode": "connected",
+      "options": false,
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "resolution": 100,
+      "scale": 1,
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "spyable": true,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "alias": "logins",
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "target": "alias(movingAverage(scaleToSeconds(apps.fakesite.web_server_01.counters.requests.count, 1), 2), 'logins')"
+        },
+        {
+          "alias": "logins (-1h)",
+          "refId": "B",
+          "scenarioId": "random_walk",
+          "target": "alias(movingAverage(timeShift(scaleToSeconds(apps.fakesite.web_server_01.counters.requests.count, 1), '1h'), 2), 'logins (-1 hour)')"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": "1h",
+      "timezone": "browser",
+      "title": "logins",
+      "tooltip": {
+        "msResolution": false,
+        "query_as_alias": true,
+        "shared": false,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      },
+      "zerofill": true
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["#629e51", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)"],
+      "editable": true,
+      "error": false,
+      "format": "bytes",
+      "gauge": {
+        "maxValue": 300,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 4,
+        "x": 16,
+        "y": 0
+      },
+      "id": 22,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "scale(apps.backend.backend_01.counters.requests.count, 0.4)"
+        }
+      ],
+      "thresholds": "200,270",
+      "title": "Memory",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 4,
+        "x": 20,
+        "y": 0
+      },
+      "id": 16,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "apps.backend.backend_02.counters.requests.count"
+        }
+      ],
+      "thresholds": "100,270",
+      "title": "Sign ups",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["#629e51", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 300,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 4,
+        "x": 16,
+        "y": 4
+      },
+      "id": 21,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "scale(apps.backend.backend_01.counters.requests.count, 0.8)"
+        }
+      ],
+      "thresholds": "200,270",
+      "title": "Logouts",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 4,
+        "x": 20,
+        "y": 4
+      },
+      "id": 17,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "apps.backend.backend_04.counters.requests.count"
+        }
+      ],
+      "thresholds": "100,270",
+      "title": "Sign outs",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "aliasColors": {
+        "web_server_01": "#badff4",
+        "web_server_02": "#5195ce",
+        "web_server_03": "#1f78c1",
+        "web_server_04": "#0a437c"
+      },
+      "annotate": {
+        "enable": false
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "editable": true,
+      "fill": 6,
+      "grid": {
+        "max": null,
+        "min": 0
+      },
+      "gridPos": {
+        "h": 11,
+        "w": 16,
+        "x": 0,
+        "y": 7
+      },
+      "id": 2,
+      "interactive": true,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "legend_counts": true,
+      "lines": true,
+      "linewidth": 1,
+      "nullPointMode": "connected",
+      "options": false,
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "resolution": 100,
+      "scale": 1,
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "spyable": true,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "alias": "web_server_01",
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "target": "aliasByNode(movingAverage(scaleToSeconds(apps.fakesite.*.counters.requests.count, 1), 2), 2)"
+        },
+        {
+          "alias": "web_server_02",
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "web_server_03",
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "web_server_04",
+          "refId": "D",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "timezone": "browser",
+      "title": "server requests",
+      "tooltip": {
+        "msResolution": false,
+        "query_as_alias": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      },
+      "zerofill": true
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["#629e51", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 300,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 4,
+        "x": 16,
+        "y": 7
+      },
+      "id": 26,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "scale(apps.backend.backend_01.counters.requests.count, 0.2)"
+        }
+      ],
+      "thresholds": "200,270",
+      "title": "Google hits",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 4,
+        "x": 20,
+        "y": 7
+      },
+      "id": 15,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "scale(apps.backend.backend_01.counters.requests.count, 0.7)"
+        }
+      ],
+      "thresholds": "100,270",
+      "title": "Logins",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 4,
+        "x": 20,
+        "y": 10
+      },
+      "id": 18,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "scale(apps.backend.backend_03.counters.requests.count, 0.3)"
+        }
+      ],
+      "thresholds": "100,270",
+      "title": "Support calls",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": ["#629e51", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)"],
+      "editable": true,
+      "error": false,
+      "format": "none",
+      "gauge": {
+        "maxValue": 300,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 13
+      },
+      "id": 24,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": true,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "target": "scale(apps.backend.backend_01.counters.requests.count, 0.2)"
+        }
+      ],
+      "thresholds": "200,270",
+      "title": "Google hits",
+      "type": "singlestat",
+      "valueFontSize": "100%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "aliasColors": {
+        "upper_25": "#F9E2D2",
+        "upper_50": "#F2C96D",
+        "upper_75": "#EAB839"
+      },
+      "annotate": {
+        "enable": false
+      },
+      "bars": true,
+      "dashLength": 10,
+      "dashes": false,
+      "editable": true,
+      "fill": 1,
+      "grid": {
+        "max": null,
+        "min": 0
+      },
+      "gridPos": {
+        "h": 11,
+        "w": 24,
+        "x": 0,
+        "y": 18
+      },
+      "id": 5,
+      "interactive": true,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": false,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "legend_counts": true,
+      "lines": false,
+      "linewidth": 2,
+      "nullPointMode": "connected",
+      "options": false,
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "resolution": 100,
+      "scale": 1,
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "spyable": true,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": "",
+          "target": "aliasByNode(summarize(statsd.fakesite.timers.ads_timer.*, '4min', 'avg'), 4)"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "timezone": "browser",
+      "title": "client side full page load",
+      "tooltip": {
+        "msResolution": false,
+        "query_as_alias": true,
+        "shared": false,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "ms",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      },
+      "zerofill": true
+    }
+  ],
+  "refresh": false,
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": ["gdev", "demo"],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-1h",
+    "to": "now"
+  },
+  "timepicker": {
+    "collapse": false,
+    "enable": true,
+    "notice": false,
+    "now": true,
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "status": "Stable",
+    "time_options": ["5m", "15m", "1h", "2h", " 6h", "12h", "24h", "2d", "7d", "30d"],
+    "type": "timepicker"
+  },
+  "timezone": "browser",
+  "title": "TestData - Demo Dashboard",
+  "uid": "000000003",
+  "version": 2
+}

+ 1365 - 0
devenv/dev-dashboards/feature-templating/testdata-repeating.json

@@ -0,0 +1,1365 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "iteration": 1554990747424,
+  "links": [],
+  "panels": [
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 0,
+        "y": 0
+      },
+      "id": 7,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": "Servers",
+      "repeatDirection": "h",
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server1",
+          "value": "server1"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 6,
+        "y": 0
+      },
+      "id": 8,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server2",
+          "value": "server2"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 12,
+        "y": 0
+      },
+      "id": 9,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server3",
+          "value": "server3"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 18,
+        "y": 0
+      },
+      "id": 10,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server4",
+          "value": "server4"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 0,
+        "y": 4
+      },
+      "id": 11,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server5",
+          "value": "server5"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 6,
+        "y": 4
+      },
+      "id": 12,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server6",
+          "value": "server6"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 12,
+        "y": 4
+      },
+      "id": 13,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server7",
+          "value": "server7"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
+      "datasource": "gdev-testdata",
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 18,
+        "y": 4
+      },
+      "id": 14,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "maxPerRow": 4,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 7,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server8",
+          "value": "server8"
+        }
+      },
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk",
+          "stringInput": ""
+        }
+      ],
+      "thresholds": "50,90",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 0,
+        "y": 8
+      },
+      "id": 2,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": "Servers",
+      "repeatDirection": "h",
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server1",
+          "value": "server1"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 6,
+        "y": 8
+      },
+      "id": 15,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server2",
+          "value": "server2"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 12,
+        "y": 8
+      },
+      "id": 16,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server3",
+          "value": "server3"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 18,
+        "y": 8
+      },
+      "id": 17,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server4",
+          "value": "server4"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 0,
+        "y": 13
+      },
+      "id": 18,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server5",
+          "value": "server5"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 6,
+        "y": 13
+      },
+      "id": 19,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server6",
+          "value": "server6"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 12,
+        "y": 13
+      },
+      "id": 20,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server7",
+          "value": "server7"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    },
+    {
+      "datasource": "gdev-testdata",
+      "gridPos": {
+        "h": 5,
+        "w": 6,
+        "x": 18,
+        "y": 13
+      },
+      "id": 21,
+      "links": [],
+      "maxPerRow": 4,
+      "nullPointMode": "null",
+      "options": {
+        "baseColor": "#299c46",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "auto",
+        "showThresholdLabels": false,
+        "showThresholdMarkers": true,
+        "thresholds": [
+          {
+            "color": "#7EB26D",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "#ef843c",
+            "index": 1,
+            "value": 75
+          },
+          {
+            "color": "#e24d42",
+            "index": 2,
+            "value": 90
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": "2",
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "ms"
+        }
+      },
+      "pluginVersion": "6.1.0-pre",
+      "repeat": null,
+      "repeatDirection": "h",
+      "repeatIteration": 1554990747424,
+      "repeatPanelId": 2,
+      "scopedVars": {
+        "Servers": {
+          "selected": false,
+          "text": "server8",
+          "value": "server8"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "1,20,90,30,5,0"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "$Servers",
+      "type": "gauge"
+    }
+  ],
+  "refresh": false,
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": ["gdev", "templating"],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {
+          "tags": [],
+          "text": "All",
+          "value": ["$__all"]
+        },
+        "hide": 0,
+        "includeAll": true,
+        "label": null,
+        "multi": true,
+        "name": "Servers",
+        "options": [
+          {
+            "selected": true,
+            "text": "All",
+            "value": "$__all"
+          },
+          {
+            "selected": false,
+            "text": "server1",
+            "value": "server1"
+          },
+          {
+            "selected": false,
+            "text": "server2",
+            "value": "server2"
+          },
+          {
+            "selected": false,
+            "text": "server3",
+            "value": "server3"
+          },
+          {
+            "selected": false,
+            "text": "server4",
+            "value": "server4"
+          },
+          {
+            "selected": false,
+            "text": "server5",
+            "value": "server5"
+          },
+          {
+            "selected": false,
+            "text": "server6",
+            "value": "server6"
+          },
+          {
+            "selected": false,
+            "text": "server7",
+            "value": "server7"
+          },
+          {
+            "selected": false,
+            "text": "server8",
+            "value": "server8"
+          }
+        ],
+        "query": "server1,server2,server3,server4,server5,server6,server7,server8",
+        "skipUrlSync": false,
+        "type": "custom"
+      }
+    ]
+  },
+  "time": {
+    "from": "now-1h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
+  },
+  "timezone": "",
+  "title": "TestData Repeating Panels",
+  "uid": "Ei74RD9mz",
+  "version": 1
+}

+ 171 - 0
devenv/dev-dashboards/home.json

@@ -0,0 +1,171 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "links": [],
+  "panels": [
+    {
+      "folderId": null,
+      "gridPos": {
+        "h": 26,
+        "w": 6,
+        "x": 0,
+        "y": 0
+      },
+      "headings": false,
+      "id": 7,
+      "limit": 100,
+      "links": [],
+      "query": "",
+      "recent": false,
+      "search": false,
+      "starred": true,
+      "tags": [],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Starred",
+      "type": "dashlist"
+    },
+    {
+      "folderId": null,
+      "gridPos": {
+        "h": 13,
+        "w": 6,
+        "x": 6,
+        "y": 0
+      },
+      "headings": false,
+      "id": 8,
+      "limit": 1000,
+      "links": [],
+      "query": "",
+      "recent": false,
+      "search": true,
+      "starred": false,
+      "tags": ["panel-demo"],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "tag: panel-demo",
+      "type": "dashlist"
+    },
+    {
+      "folderId": null,
+      "gridPos": {
+        "h": 13,
+        "w": 6,
+        "x": 12,
+        "y": 0
+      },
+      "headings": false,
+      "id": 2,
+      "limit": 1000,
+      "links": [],
+      "query": "",
+      "recent": false,
+      "search": true,
+      "starred": false,
+      "tags": ["panel-tests"],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "tag: panel-tests",
+      "type": "dashlist"
+    },
+    {
+      "folderId": null,
+      "gridPos": {
+        "h": 26,
+        "w": 6,
+        "x": 18,
+        "y": 0
+      },
+      "headings": false,
+      "id": 5,
+      "limit": 1000,
+      "links": [],
+      "query": "",
+      "recent": false,
+      "search": true,
+      "starred": false,
+      "tags": ["gdev", "datasource-test"],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Data source tests",
+      "type": "dashlist"
+    },
+    {
+      "folderId": null,
+      "gridPos": {
+        "h": 13,
+        "w": 6,
+        "x": 6,
+        "y": 13
+      },
+      "headings": false,
+      "id": 3,
+      "limit": 1000,
+      "links": [],
+      "query": "",
+      "recent": false,
+      "search": true,
+      "starred": false,
+      "tags": ["gdev", "demo"],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "tag: dashboard-demo",
+      "type": "dashlist"
+    },
+    {
+      "folderId": null,
+      "gridPos": {
+        "h": 13,
+        "w": 6,
+        "x": 12,
+        "y": 13
+      },
+      "headings": false,
+      "id": 4,
+      "limit": 1000,
+      "links": [],
+      "query": "",
+      "recent": false,
+      "search": true,
+      "starred": false,
+      "tags": ["templating", "gdev"],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "tag: templating",
+      "type": "dashlist"
+    }
+  ],
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": [],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-6h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
+  },
+  "timezone": "",
+  "title": "Grafana Dev Overview & Home",
+  "uid": "j6T00KRZz",
+  "version": 5
+}

+ 475 - 0
devenv/dev-dashboards/panel-bargauge/animated_demo.json

@@ -0,0 +1,475 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "links": [],
+  "panels": [
+    {
+      "gridPos": {
+        "h": 7,
+        "w": 18,
+        "x": 0,
+        "y": 0
+      },
+      "id": 7,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "vertical",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "E",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "10003,33333"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 22,
+        "w": 6,
+        "x": 18,
+        "y": 0
+      },
+      "id": 8,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 55
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 95
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "R",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "S",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 15,
+        "w": 11,
+        "x": 0,
+        "y": 7
+      },
+      "id": 6,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "blue",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "green",
+            "index": 1,
+            "value": 20
+          },
+          {
+            "color": "orange",
+            "index": 2,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 3,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "celsius"
+        }
+      },
+      "targets": [
+        {
+          "alias": "Inside",
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "alias": "Outhouse",
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Area B",
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Basement",
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Garage",
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Attic",
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Temperature",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 15,
+        "w": 7,
+        "x": 11,
+        "y": 7
+      },
+      "id": 9,
+      "links": [],
+      "options": {
+        "displayMode": "basic",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "blue",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "green",
+            "index": 1,
+            "value": 20
+          },
+          {
+            "color": "orange",
+            "index": 2,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 3,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "celsius"
+        }
+      },
+      "targets": [
+        {
+          "alias": "Inside",
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "alias": "Outhouse",
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Area B",
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Basement",
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Garage",
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Attic",
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Temperature",
+      "type": "bargauge"
+    }
+  ],
+  "refresh": false,
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": ["gdev", "bargauge", "panel-demo"],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-30m",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": ["1s", "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
+  },
+  "timezone": "",
+  "title": "Bar Gauge Animated Demo",
+  "uid": "k5IUwQeikaa",
+  "version": 4
+}

+ 367 - 0
devenv/dev-dashboards/panel-bargauge/gradient_demo.json

@@ -0,0 +1,367 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "links": [],
+  "panels": [
+    {
+      "gridPos": {
+        "h": 7,
+        "w": 18,
+        "x": 0,
+        "y": 0
+      },
+      "id": 7,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "vertical",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "E",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "10003,33333"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 20,
+        "w": 6,
+        "x": 18,
+        "y": 0
+      },
+      "id": 8,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 65
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 95
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "R",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "S",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 13,
+        "w": 18,
+        "x": 0,
+        "y": 7
+      },
+      "id": 6,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "blue",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "green",
+            "index": 1,
+            "value": 20
+          },
+          {
+            "color": "orange",
+            "index": 2,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 3,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "celsius"
+        }
+      },
+      "targets": [
+        {
+          "alias": "Inside",
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "alias": "Outhouse",
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Area B",
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Basement",
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Garage",
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Attic",
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Temperature",
+      "type": "bargauge"
+    }
+  ],
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": ["gdev", "bargauge", "panel-demo"],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-6h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
+  },
+  "timezone": "",
+  "title": "Bar Gauge Gradient Demo",
+  "uid": "RndRQw6mz",
+  "version": 3
+}

+ 393 - 0
devenv/dev-dashboards/panel-bargauge/many_modes_demo.json

@@ -0,0 +1,393 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "links": [],
+  "panels": [
+    {
+      "gridPos": {
+        "h": 7,
+        "w": 22,
+        "x": 0,
+        "y": 0
+      },
+      "id": 7,
+      "links": [],
+      "options": {
+        "displayMode": "lcd",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "vertical",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "E",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "10003,33333"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 20,
+        "w": 2,
+        "x": 22,
+        "y": 0
+      },
+      "id": 11,
+      "links": [],
+      "options": {
+        "displayMode": "lcd",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "vertical",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "red",
+            "index": 1,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "percent"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Progress",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 13,
+        "w": 10,
+        "x": 0,
+        "y": 7
+      },
+      "id": 6,
+      "links": [],
+      "options": {
+        "displayMode": "gradient",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "blue",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "green",
+            "index": 1,
+            "value": 20
+          },
+          {
+            "color": "orange",
+            "index": 2,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 3,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "celsius"
+        }
+      },
+      "targets": [
+        {
+          "alias": "Inside",
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "alias": "Outhouse",
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Area B",
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Basement",
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Garage",
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Attic",
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Temperature",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 13,
+        "w": 12,
+        "x": 10,
+        "y": 7
+      },
+      "id": 8,
+      "links": [],
+      "options": {
+        "displayMode": "basic",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "purple",
+            "index": 1,
+            "value": 50
+          },
+          {
+            "color": "blue",
+            "index": 2,
+            "value": 70
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    }
+  ],
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": ["gdev", "bargauge", "panel-demo"],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-6h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
+  },
+  "timezone": "",
+  "title": "Bar Gauge All Modes Demo",
+  "uid": "zt2f6NgZzaa",
+  "version": 1
+}

+ 388 - 0
devenv/dev-dashboards/panel-bargauge/retro_led_demo.json

@@ -0,0 +1,388 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "links": [],
+  "panels": [
+    {
+      "gridPos": {
+        "h": 8,
+        "w": 22,
+        "x": 0,
+        "y": 0
+      },
+      "id": 7,
+      "links": [],
+      "options": {
+        "displayMode": "lcd",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "vertical",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "E",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "10003,33333"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "G",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 21,
+        "w": 2,
+        "x": 22,
+        "y": 0
+      },
+      "id": 11,
+      "links": [],
+      "options": {
+        "displayMode": "lcd",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "vertical",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "red",
+            "index": 1,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "percent"
+        }
+      },
+      "targets": [
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Progress",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 13,
+        "w": 10,
+        "x": 0,
+        "y": 8
+      },
+      "id": 6,
+      "links": [],
+      "options": {
+        "displayMode": "lcd",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 40
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 80
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "celsius"
+        }
+      },
+      "targets": [
+        {
+          "alias": "Inside",
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "alias": "Outhouse",
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Area B",
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Basement",
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Garage",
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "alias": "Attic",
+          "refId": "E",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "F",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Temperature",
+      "type": "bargauge"
+    },
+    {
+      "gridPos": {
+        "h": 13,
+        "w": 12,
+        "x": 10,
+        "y": 8
+      },
+      "id": 8,
+      "links": [],
+      "options": {
+        "displayMode": "lcd",
+        "maxValue": 100,
+        "minValue": 0,
+        "orientation": "horizontal",
+        "thresholds": [
+          {
+            "color": "green",
+            "index": 0,
+            "value": null
+          },
+          {
+            "color": "orange",
+            "index": 1,
+            "value": 85
+          },
+          {
+            "color": "red",
+            "index": 2,
+            "value": 95
+          }
+        ],
+        "valueMappings": [],
+        "valueOptions": {
+          "decimals": null,
+          "prefix": "",
+          "stat": "mean",
+          "suffix": "",
+          "unit": "watt"
+        }
+      },
+      "targets": [
+        {
+          "refId": "H",
+          "scenarioId": "csv_metric_values",
+          "stringInput": "100,100,100"
+        },
+        {
+          "refId": "A",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "B",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "C",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "D",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "I",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "J",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "K",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "L",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "M",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "N",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "O",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "P",
+          "scenarioId": "random_walk"
+        },
+        {
+          "refId": "Q",
+          "scenarioId": "random_walk"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Usage",
+      "type": "bargauge"
+    }
+  ],
+  "schemaVersion": 18,
+  "style": "dark",
+  "tags": ["gdev", "bargauge", "panel-demo"],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-6h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
+  },
+  "timezone": "",
+  "title": "Bar Gauge LED Demo",
+  "uid": "0G3rbkqmkaa",
+  "version": 42
+}

+ 2 - 2
devenv/dev-dashboards/panel_tests_multiseries_gauge.json → devenv/dev-dashboards/panel-gauge/gauge-multi-series.json

@@ -277,7 +277,7 @@
   ],
   ],
   "schemaVersion": 17,
   "schemaVersion": 17,
   "style": "dark",
   "style": "dark",
-  "tags": [],
+  "tags": ["panel-tests", "gdev", "gauge"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -290,7 +290,7 @@
     "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
     "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
-  "title": "Multi series gauges",
+  "title": "Panel Tests - Gauge Multi Series",
   "uid": "szkuR1umk",
   "uid": "szkuR1umk",
   "version": 7
   "version": 7
 }
 }

+ 4 - 30
devenv/dev-dashboards/panel_tests_gauge.json → devenv/dev-dashboards/panel-gauge/gauge_tests.json

@@ -1160,10 +1160,7 @@
   "refresh": false,
   "refresh": false,
   "schemaVersion": 17,
   "schemaVersion": 17,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "panel-tests"
-  ],
+  "tags": ["gdev", "panel-tests"],
   "templating": {
   "templating": {
     "list": [
     "list": [
       {
       {
@@ -1172,9 +1169,7 @@
           "selected": true,
           "selected": true,
           "tags": [],
           "tags": [],
           "text": "All",
           "text": "All",
-          "value": [
-            "$__all"
-          ]
+          "value": ["$__all"]
         },
         },
         "hide": 0,
         "hide": 0,
         "includeAll": true,
         "includeAll": true,
@@ -1219,29 +1214,8 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Panel Tests - Gauge",
   "title": "Panel Tests - Gauge",

+ 2 - 2
devenv/dev-dashboards/panel_tests_graph_time_regions.json → devenv/dev-dashboards/panel-graph/graph-time-regions.json

@@ -561,7 +561,7 @@
   "refresh": false,
   "refresh": false,
   "schemaVersion": 18,
   "schemaVersion": 18,
   "style": "dark",
   "style": "dark",
-  "tags": ["gdev", "panel-tests"],
+  "tags": ["gdev", "panel-tests", "graph"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -574,7 +574,7 @@
     "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
     "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "browser",
   "timezone": "browser",
-  "title": "Panel Tests - Graph (Time Regions)",
+  "title": "Panel Tests - Graph Time Regions",
   "uid": "XMjIZPmik",
   "uid": "XMjIZPmik",
   "version": 9
   "version": 9
 }
 }

+ 3 - 27
devenv/dev-dashboards/panel_tests_graph.json → devenv/dev-dashboards/panel-graph/graph_tests.json

@@ -1632,10 +1632,7 @@
   "revision": 8,
   "revision": 8,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "panel-tests"
-  ],
+  "tags": ["gdev", "panel-tests", "graph"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -1644,29 +1641,8 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "browser",
   "timezone": "browser",
   "title": "Panel Tests - Graph",
   "title": "Panel Tests - Graph",

+ 9 - 57
devenv/dev-dashboards/panel_tests_polystat.json → devenv/dev-dashboards/panel-polystat/polystat_test.json

@@ -28,11 +28,7 @@
           "value": "triggered"
           "value": "triggered"
         }
         }
       ],
       ],
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "d3DivId": "d3_svg_4",
       "d3DivId": "d3_svg_4",
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": 2,
       "decimals": 2,
@@ -115,11 +111,7 @@
       },
       },
       "id": 4,
       "id": 4,
       "links": [],
       "links": [],
-      "notcolors": [
-        "rgba(245, 54, 54, 0.9)",
-        "rgba(237, 129, 40, 0.89)",
-        "rgba(50, 172, 45, 0.97)"
-      ],
+      "notcolors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
       "operatorName": "avg",
       "operatorName": "avg",
       "operatorOptions": [
       "operatorOptions": [
         {
         {
@@ -1114,11 +1106,7 @@
           "value": "triggered"
           "value": "triggered"
         }
         }
       ],
       ],
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "d3DivId": "d3_svg_5",
       "d3DivId": "d3_svg_5",
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": 2,
       "decimals": 2,
@@ -1201,11 +1189,7 @@
       },
       },
       "id": 5,
       "id": 5,
       "links": [],
       "links": [],
-      "notcolors": [
-        "rgba(245, 54, 54, 0.9)",
-        "rgba(237, 129, 40, 0.89)",
-        "rgba(50, 172, 45, 0.97)"
-      ],
+      "notcolors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
       "operatorName": "avg",
       "operatorName": "avg",
       "operatorOptions": [
       "operatorOptions": [
         {
         {
@@ -2221,11 +2205,7 @@
           "value": "triggered"
           "value": "triggered"
         }
         }
       ],
       ],
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "d3DivId": "d3_svg_2",
       "d3DivId": "d3_svg_2",
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": 2,
       "decimals": 2,
@@ -2308,11 +2288,7 @@
       },
       },
       "id": 2,
       "id": 2,
       "links": [],
       "links": [],
-      "notcolors": [
-        "rgba(245, 54, 54, 0.9)",
-        "rgba(237, 129, 40, 0.89)",
-        "rgba(50, 172, 45, 0.97)"
-      ],
+      "notcolors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
       "operatorName": "avg",
       "operatorName": "avg",
       "operatorOptions": [
       "operatorOptions": [
         {
         {
@@ -3300,10 +3276,7 @@
   ],
   ],
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "panel-test",
-    "gdev"
-  ],
+  "tags": ["panel-test", "gdev", "polystat"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -3312,29 +3285,8 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Panel Tests - Polystat",
   "title": "Panel Tests - Polystat",

+ 9 - 57
devenv/dev-dashboards/panel_tests_singlestat.json → devenv/dev-dashboards/panel-singlestat/singlestat_test.json

@@ -21,11 +21,7 @@
       "cacheTimeout": null,
       "cacheTimeout": null,
       "colorBackground": false,
       "colorBackground": false,
       "colorValue": true,
       "colorValue": true,
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": null,
       "decimals": null,
       "description": "",
       "description": "",
@@ -106,11 +102,7 @@
       "colorBackground": false,
       "colorBackground": false,
       "colorPrefix": false,
       "colorPrefix": false,
       "colorValue": true,
       "colorValue": true,
-      "colors": [
-        "#d44a3a",
-        "rgba(237, 129, 40, 0.89)",
-        "#299c46"
-      ],
+      "colors": ["#d44a3a", "rgba(237, 129, 40, 0.89)", "#299c46"],
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": null,
       "decimals": null,
       "description": "",
       "description": "",
@@ -191,11 +183,7 @@
       "colorBackground": true,
       "colorBackground": true,
       "colorPrefix": false,
       "colorPrefix": false,
       "colorValue": false,
       "colorValue": false,
-      "colors": [
-        "#d44a3a",
-        "rgba(237, 129, 40, 0.89)",
-        "#299c46"
-      ],
+      "colors": ["#d44a3a", "rgba(237, 129, 40, 0.89)", "#299c46"],
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": null,
       "decimals": null,
       "description": "",
       "description": "",
@@ -276,11 +264,7 @@
       "colorBackground": false,
       "colorBackground": false,
       "colorPrefix": false,
       "colorPrefix": false,
       "colorValue": true,
       "colorValue": true,
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": null,
       "decimals": null,
       "description": "",
       "description": "",
@@ -361,11 +345,7 @@
       "colorBackground": false,
       "colorBackground": false,
       "colorPrefix": false,
       "colorPrefix": false,
       "colorValue": true,
       "colorValue": true,
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": null,
       "decimals": null,
       "description": "",
       "description": "",
@@ -446,11 +426,7 @@
       "colorBackground": false,
       "colorBackground": false,
       "colorPrefix": false,
       "colorPrefix": false,
       "colorValue": true,
       "colorValue": true,
-      "colors": [
-        "#299c46",
-        "rgba(237, 129, 40, 0.89)",
-        "#d44a3a"
-      ],
+      "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
       "datasource": "gdev-testdata",
       "datasource": "gdev-testdata",
       "decimals": null,
       "decimals": null,
       "description": "",
       "description": "",
@@ -531,10 +507,7 @@
   "revision": 8,
   "revision": 8,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "panel-tests"
-  ],
+  "tags": ["gdev", "panel-tests"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -543,29 +516,8 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "browser",
   "timezone": "browser",
   "title": "Panel Tests - Singlestat",
   "title": "Panel Tests - Singlestat",

+ 27 - 134
devenv/dev-dashboards/panel_tests_table.json → devenv/dev-dashboards/panel-table/table_tests.json

@@ -46,49 +46,31 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "cell",
           "colorMode": "cell",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorCell",
           "pattern": "ColorCell",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "currencyUSD"
           "unit": "currencyUSD"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "value",
           "colorMode": "value",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorValue",
           "pattern": "ColorValue",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "Bps"
           "unit": "Bps"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -159,49 +141,31 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "cell",
           "colorMode": "cell",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorCell",
           "pattern": "ColorCell",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "currencyUSD"
           "unit": "currencyUSD"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "value",
           "colorMode": "value",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorValue",
           "pattern": "ColorValue",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "Bps"
           "unit": "Bps"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -259,30 +223,19 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "row",
           "colorMode": "row",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "/Color/",
           "pattern": "/Color/",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "currencyUSD"
           "unit": "currencyUSD"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -334,49 +287,31 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "cell",
           "colorMode": "cell",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorCell",
           "pattern": "ColorCell",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "currencyUSD"
           "unit": "currencyUSD"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "value",
           "colorMode": "value",
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorValue",
           "pattern": "ColorValue",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "Bps"
           "unit": "Bps"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -434,11 +369,7 @@
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "cell",
           "colorMode": "cell",
-          "colors": [
-            "rgba(245, 54, 54, 0.5)",
-            "rgba(237, 129, 40, 0.5)",
-            "rgba(50, 172, 45, 0.5)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.5)", "rgba(237, 129, 40, 0.5)", "rgba(50, 172, 45, 0.5)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "link": true,
           "link": true,
@@ -447,42 +378,28 @@
           "linkUrl": "http://www.grafana.com",
           "linkUrl": "http://www.grafana.com",
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorCell",
           "pattern": "ColorCell",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "currencyUSD"
           "unit": "currencyUSD"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": "value",
           "colorMode": "value",
-          "colors": [
-            "rgba(245, 54, 54, 0.5)",
-            "rgba(237, 129, 40, 0.5)",
-            "rgba(50, 172, 45, 0.5)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.5)", "rgba(237, 129, 40, 0.5)", "rgba(50, 172, 45, 0.5)"],
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "dateFormat": "YYYY-MM-DD HH:mm:ss",
           "decimals": 2,
           "decimals": 2,
           "link": true,
           "link": true,
           "linkUrl": "http://www.grafana.com",
           "linkUrl": "http://www.grafana.com",
           "mappingType": 1,
           "mappingType": 1,
           "pattern": "ColorValue",
           "pattern": "ColorValue",
-          "thresholds": [
-            "5",
-            "10"
-          ],
+          "thresholds": ["5", "10"],
           "type": "number",
           "type": "number",
           "unit": "Bps"
           "unit": "Bps"
         },
         },
         {
         {
           "alias": "",
           "alias": "",
           "colorMode": null,
           "colorMode": null,
-          "colors": [
-            "rgba(245, 54, 54, 0.9)",
-            "rgba(237, 129, 40, 0.89)",
-            "rgba(50, 172, 45, 0.97)"
-          ],
+          "colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
           "decimals": 2,
           "decimals": 2,
           "pattern": "/.*/",
           "pattern": "/.*/",
           "thresholds": [],
           "thresholds": [],
@@ -516,10 +433,7 @@
   "revision": 8,
   "revision": 8,
   "schemaVersion": 16,
   "schemaVersion": 16,
   "style": "dark",
   "style": "dark",
-  "tags": [
-    "gdev",
-    "panel-tests"
-  ],
+  "tags": ["gdev", "panel-tests"],
   "templating": {
   "templating": {
     "list": []
     "list": []
   },
   },
@@ -528,32 +442,11 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "browser",
   "timezone": "browser",
   "title": "Panel Tests - Table",
   "title": "Panel Tests - Table",
   "uid": "pttable",
   "uid": "pttable",
   "version": 2
   "version": 2
-}
+}

+ 3 - 26
devenv/dev-dashboards/panel_tests_slow_queries_and_annotations.json → devenv/dev-dashboards/scenarios/slow_queries_and_annotations.json

@@ -19,9 +19,7 @@
         "matchAny": false,
         "matchAny": false,
         "name": "annotations",
         "name": "annotations",
         "showIn": 0,
         "showIn": 0,
-        "tags": [
-          "asd"
-        ],
+        "tags": ["asd"],
         "type": "tags"
         "type": "tags"
       }
       }
     ]
     ]
@@ -1135,29 +1133,8 @@
     "to": "now"
     "to": "now"
   },
   },
   "timepicker": {
   "timepicker": {
-    "refresh_intervals": [
-      "5s",
-      "10s",
-      "30s",
-      "1m",
-      "5m",
-      "15m",
-      "30m",
-      "1h",
-      "2h",
-      "1d"
-    ],
-    "time_options": [
-      "5m",
-      "15m",
-      "1h",
-      "6h",
-      "12h",
-      "24h",
-      "2d",
-      "7d",
-      "30d"
-    ]
+    "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
+    "time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
   },
   },
   "timezone": "",
   "timezone": "",
   "title": "Panel tests - Slow Queries & Annotations",
   "title": "Panel tests - Slow Queries & Annotations",