From 089ea914b6370d61045ef4d510e479902cea1c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20M=C3=BCller?= Date: Tue, 8 Jun 2021 12:31:46 +0200 Subject: [PATCH] updated dashboards --- grafana-dash.json | 24 +- .../files/influxdb-dashboard-cobald.json | 594 +++++++++++++----- 2 files changed, 437 insertions(+), 181 deletions(-) diff --git a/grafana-dash.json b/grafana-dash.json index 6a117d1..12e470e 100644 --- a/grafana-dash.json +++ b/grafana-dash.json @@ -16,7 +16,7 @@ "gnetId": null, "graphTooltip": 0, "id": 1, - "iteration": 1623102934471, + "iteration": 1623146322368, "links": [], "panels": [ { @@ -41,7 +41,7 @@ "datasource": "InfluxDB", "fieldConfig": { "defaults": { - "unit": "short" + "unit": "none" }, "overrides": [] }, @@ -97,7 +97,7 @@ ], "orderByTime": "ASC", "policy": "default", - "query": "from(bucket: \"batleth\")\n |> range(start: 2021-06-07T00:00:00Z, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> filter(fn: (r) => r.tardis_machine_name == \"${machine}\")\n |> group()\n |> window(every: 10s)\n |> reduce(fn: (r, accumulator) => ({\n _value: accumulator._value + (\n if r._value == \"AvailableState\" then 1 \n else if r._value == \"DownState\" then -1 \n else 0)\n }), identity: {_value: 0})\n |> duplicate(column: \"_stop\", as: \"_time\")\n |> window(every: inf) //, timeColumn: \"_time\")\n |> cumulativeSum()\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n// |> reduce(fn: (r, accumulator) => ({r with x: r._value * 2}), identity: {x:0})\n// |> map(fn: (r) => ({r with vnew: r._value*2}))\n// |> integral(unit: 10s, timeColumn: \"_stop\")\n// |> window(every: inf) //, timeColumn: \"_stop\")\n |> yield()", + "query": "from(bucket: \"batleth\")\n |> range(start: 0, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n// |> filter(fn: (r) => r.tardis_machine_name == \"${machine}\")\n |> group(columns: [\"tardis_machine_name\"])\n |> window(every: 10s)\n |> reduce(fn: (r, accumulator) => ({\n _value: accumulator._value + (\n if r._value == \"AvailableState\" then 1 \n else if r._value == \"DownState\" then -1 \n else 0)\n }), identity: {_value: 0})\n |> duplicate(column: \"_stop\", as: \"_time\")\n |> window(every: inf) //, timeColumn: \"_time\")\n |> cumulativeSum()\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n// |> reduce(fn: (r, accumulator) => ({r with x: r._value * 2}), identity: {x:0})\n// |> map(fn: (r) => ({r with vnew: r._value*2}))\n// |> integral(unit: 10s, timeColumn: \"_stop\")\n// |> window(every: inf) //, timeColumn: \"_stop\")\n |> yield()", "queryType": "randomWalk", "refId": "A", "resultFormat": "time_series", @@ -138,7 +138,7 @@ }, "yaxes": [ { - "format": "short", + "format": "none", "label": null, "logBase": 1, "max": null, @@ -221,7 +221,7 @@ ], "orderByTime": "ASC", "policy": "default", - "query": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tardis_pipeline\")\n |> filter(fn: (r) => r._field == \"demand\" or r._field == \"supply\")\n// |> filter(fn: (r) => r._field == \"state\")\n// |> group()\n// |> window(every: 10s)\n// |> duplicate(column: \"_stop\", as: \"_time\")\n// |> window(every: inf) //, timeColumn: \"_time\")\n// |> cumulativeSum()\n |> yield()", + "query": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tardis_pipeline\")\n |> filter(fn: (r) => r._field == \"demand\" or r._field == \"supply\")\n |> drop(columns: [\"host\"])\n |> yield()", "queryType": "randomWalk", "refId": "A", "resultFormat": "time_series", @@ -345,7 +345,7 @@ ], "orderByTime": "ASC", "policy": "default", - "query": "f = (r, accumulator) => ({\n _value: accumulator._value + (if r._value == \"AvailableState\" then 1 else if r._value == \"DownState\" then -1 else 0)\n })\n\nfrom(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> group()\n |> window(every: 10s)\n |> reduce(fn: f, identity: {_value: 0})\n |> duplicate(column: \"_stop\", as: \"_time\")\n |> window(every: inf, timeColumn: \"_time\")\n |> yield()", + "query": "f = (r, accumulator) => ({\n _value: accumulator._value + (if r._value == \"AvailableState\" then 1 else if r._value == \"DownState\" then -1 else 0)\n })\n\nfrom(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> group(columns: [\"tardis_machine_name\"])\n |> window(every: 10s)\n |> reduce(fn: f, identity: {_value: 0})\n |> duplicate(column: \"_stop\", as: \"_time\")\n |> window(every: inf, timeColumn: \"_time\")\n |> yield()", "queryType": "randomWalk", "refId": "A", "resultFormat": "time_series", @@ -469,7 +469,7 @@ ], "orderByTime": "ASC", "policy": "default", - "query": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tardis_pipeline\")\n |> filter(fn: (r) => r._field == \"utilisation\" or r._field == \"allocation\")\n// |> filter(fn: (r) => r._field == \"state\")\n// |> group()\n// |> window(every: 10s)\n// |> duplicate(column: \"_stop\", as: \"_time\")\n// |> window(every: inf) //, timeColumn: \"_time\")\n// |> cumulativeSum()\n |> yield()", + "query": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tardis_pipeline\")\n |> filter(fn: (r) => r._field == \"utilisation\" or r._field == \"allocation\")\n |> keep(columns: [\"_time\", \"_measurement\", \"_field\", \"_value\", \"tardis_machine_name\"])\n |> yield()", "queryType": "randomWalk", "refId": "A", "resultFormat": "time_series", @@ -491,7 +491,9 @@ } ], "thresholds": [], + "timeFrom": null, "timeRegions": [], + "timeShift": null, "title": "pipeline (utilization/allocation)", "tooltip": { "shared": true, @@ -539,8 +541,8 @@ "allValue": null, "current": { "selected": false, - "text": "cobald", - "value": "cobald" + "text": "cobald-pgpobqzyqtlaofdkdgzg", + "value": "cobald-pgpobqzyqtlaofdkdgzg" }, "datasource": "InfluxDB", "definition": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> keep(columns: [\"tardis_machine_name\", \"_time\"])\n |> sort(columns: [\"_time\"], desc: true)\n |> unique(column: \"tardis_machine_name\")", @@ -553,7 +555,7 @@ "name": "machine", "options": [], "query": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> keep(columns: [\"tardis_machine_name\", \"_time\"])\n |> sort(columns: [\"_time\"], desc: true)\n |> unique(column: \"tardis_machine_name\")", - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 0, @@ -566,7 +568,7 @@ ] }, "time": { - "from": "now-30m", + "from": "now-5m", "to": "now" }, "timepicker": {}, diff --git a/roles/cobald/files/influxdb-dashboard-cobald.json b/roles/cobald/files/influxdb-dashboard-cobald.json index 5d9d1db..a420555 100644 --- a/roles/cobald/files/influxdb-dashboard-cobald.json +++ b/roles/cobald/files/influxdb-dashboard-cobald.json @@ -20,19 +20,27 @@ "data": [ { "type": "cell", - "id": "078ad2e135410000" + "id": "07900a722c363000" }, { "type": "cell", - "id": "078ba588b6c10000" + "id": "07900a7236f63000" }, { "type": "cell", - "id": "078ba5e53a810000" + "id": "07900a723cf63000" }, { "type": "cell", - "id": "078c36c747010000" + "id": "07900a7243f63000" + }, + { + "type": "cell", + "id": "079e694f29581000" + }, + { + "type": "cell", + "id": "079e6e037c181000" } ] }, @@ -43,61 +51,7 @@ }, "included": [ { - "id": "078ad2e135410000", - "type": "cell", - "attributes": { - "x": 0, - "y": 0, - "w": 4, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "078ad2e135410000" - } - } - } - }, - { - "id": "078ba588b6c10000", - "type": "cell", - "attributes": { - "x": 0, - "y": 4, - "w": 4, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "078ba588b6c10000" - } - } - } - }, - { - "id": "078ba5e53a810000", - "type": "cell", - "attributes": { - "x": 4, - "y": 4, - "w": 4, - "h": 4 - }, - "relationships": { - "view": { - "data": { - "type": "view", - "id": "078ba5e53a810000" - } - } - } - }, - { - "id": "078c36c747010000", + "id": "07900a722c363000", "type": "cell", "attributes": { "x": 4, @@ -109,14 +63,209 @@ "view": { "data": { "type": "view", - "id": "078c36c747010000" + "id": "07900a722c363000" + } + } + } + }, + { + "id": "07900a7236f63000", + "type": "cell", + "attributes": { + "x": 0, + "y": 0, + "w": 4, + "h": 4 + }, + "relationships": { + "view": { + "data": { + "type": "view", + "id": "07900a7236f63000" + } + } + } + }, + { + "id": "07900a723cf63000", + "type": "cell", + "attributes": { + "x": 4, + "y": 4, + "w": 4, + "h": 4 + }, + "relationships": { + "view": { + "data": { + "type": "view", + "id": "07900a723cf63000" + } + } + } + }, + { + "id": "07900a7243f63000", + "type": "cell", + "attributes": { + "x": 0, + "y": 4, + "w": 4, + "h": 4 + }, + "relationships": { + "view": { + "data": { + "type": "view", + "id": "07900a7243f63000" + } + } + } + }, + { + "id": "079e694f29581000", + "type": "cell", + "attributes": { + "x": 8, + "y": 0, + "w": 4, + "h": 4 + }, + "relationships": { + "view": { + "data": { + "type": "view", + "id": "079e694f29581000" + } + } + } + }, + { + "id": "079e6e037c181000", + "type": "cell", + "attributes": { + "x": 8, + "y": 4, + "w": 4, + "h": 4 + }, + "relationships": { + "view": { + "data": { + "type": "view", + "id": "079e6e037c181000" } } } }, { "type": "view", - "id": "078ad2e135410000", + "id": "07900a722c363000", + "attributes": { + "name": "nodes running", + "properties": { + "shape": "chronograf-v2", + "queries": [ + { + "text": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> group()\n |> window(every: 10s)\n |> reduce(fn: (r, accumulator) => ({\n _value: accumulator._value + (\n if r._value == \"AvailableState\" then 1 \n else if r._value == \"DownState\" then -1 \n else 0)\n }), identity: {_value: 0})\n |> duplicate(column: \"_stop\", as: \"_time\")\n |> window(every: inf) //, timeColumn: \"_time\")\n |> cumulativeSum()\n// |> reduce(fn: (r, accumulator) => ({r with x: r._value * 2}), identity: {x:0})\n// |> map(fn: (r) => ({r with vnew: r._value*2}))\n// |> integral(unit: 10s, timeColumn: \"_stop\")\n// |> window(every: inf) //, timeColumn: \"_stop\")\n |> yield()", + "editMode": "advanced", + "name": "", + "builderConfig": { + "buckets": [], + "tags": [ + { + "key": "_measurement", + "values": [], + "aggregateFunctionType": "filter" + } + ], + "functions": [ + { + "name": "mean" + } + ], + "aggregateWindow": { + "period": "auto", + "fillValues": false + } + } + } + ], + "axes": { + "x": { + "bounds": [ + "", + "" + ], + "label": "", + "prefix": "", + "suffix": "", + "base": "10", + "scale": "linear" + }, + "y": { + "bounds": [ + "", + "" + ], + "label": "", + "prefix": "", + "suffix": "", + "base": "10", + "scale": "linear" + } + }, + "type": "xy", + "legend": {}, + "geom": "line", + "colors": [ + { + "id": "9b960932-18d9-4f57-80ba-24998a06613d", + "type": "scale", + "hex": "#31C0F6", + "name": "Nineteen Eighty Four", + "value": 0 + }, + { + "id": "c1742651-0d5e-4148-b9c0-92beb642417a", + "type": "scale", + "hex": "#A500A5", + "name": "Nineteen Eighty Four", + "value": 0 + }, + { + "id": "756fa8cb-9d9c-4e45-9a4f-f2b106b0216a", + "type": "scale", + "hex": "#FF7E27", + "name": "Nineteen Eighty Four", + "value": 0 + } + ], + "note": "", + "showNoteWhenEmpty": false, + "xColumn": "_time", + "generateXAxisTicks": [], + "xTotalTicks": 0, + "xTickStart": 0, + "xTickStep": 0, + "yColumn": "_value", + "generateYAxisTicks": [], + "yTotalTicks": 0, + "yTickStart": 0, + "yTickStep": 0, + "shadeBelow": false, + "position": "overlaid", + "timeFormat": "", + "hoverDimension": "auto", + "legendColorizeRows": true, + "legendOpacity": 1, + "legendOrientationThreshold": 100000000 + } + } + }, + { + "type": "view", + "id": "07900a7236f63000", "attributes": { "name": "Name this Cell", "properties": { @@ -221,112 +370,7 @@ }, { "type": "view", - "id": "078ba588b6c10000", - "attributes": { - "name": "states", - "properties": { - "shape": "chronograf-v2", - "queries": [ - { - "text": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> group(columns: [\"_value\"], mode: \"by\")\n |> duplicate(column: \"_value\", as: \"state\")\n |> window(every: 10s)\n |> count(column: \"state\")\n |> rename(columns: {\"_value\": \"_field\", \"state\": \"_value\"})\n |> group(columns: [\"_field\"])\n |> yield()", - "editMode": "advanced", - "name": "", - "builderConfig": { - "buckets": [], - "tags": [ - { - "key": "_measurement", - "values": [], - "aggregateFunctionType": "filter" - } - ], - "functions": [ - { - "name": "mean" - } - ], - "aggregateWindow": { - "period": "auto", - "fillValues": false - } - } - } - ], - "axes": { - "x": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - }, - "y": { - "bounds": [ - "", - "" - ], - "label": "", - "prefix": "", - "suffix": "", - "base": "10", - "scale": "linear" - } - }, - "type": "xy", - "legend": {}, - "geom": "line", - "colors": [ - { - "id": "9b960932-18d9-4f57-80ba-24998a06613d", - "type": "scale", - "hex": "#31C0F6", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "c1742651-0d5e-4148-b9c0-92beb642417a", - "type": "scale", - "hex": "#A500A5", - "name": "Nineteen Eighty Four", - "value": 0 - }, - { - "id": "756fa8cb-9d9c-4e45-9a4f-f2b106b0216a", - "type": "scale", - "hex": "#FF7E27", - "name": "Nineteen Eighty Four", - "value": 0 - } - ], - "note": "", - "showNoteWhenEmpty": false, - "xColumn": "_stop", - "generateXAxisTicks": [], - "xTotalTicks": 0, - "xTickStart": 0, - "xTickStep": 0, - "yColumn": "_value", - "generateYAxisTicks": [], - "yTotalTicks": 0, - "yTickStart": 0, - "yTickStep": 0, - "shadeBelow": false, - "position": "overlaid", - "timeFormat": "", - "hoverDimension": "auto", - "legendColorizeRows": true, - "legendOpacity": 1, - "legendOrientationThreshold": 100000000 - } - } - }, - { - "type": "view", - "id": "078ba5e53a810000", + "id": "07900a723cf63000", "attributes": { "name": "node fluctuation", "properties": { @@ -431,14 +475,14 @@ }, { "type": "view", - "id": "078c36c747010000", + "id": "07900a7243f63000", "attributes": { - "name": "nodes running", + "name": "states", "properties": { "shape": "chronograf-v2", "queries": [ { - "text": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> group()\n |> window(every: 10s)\n |> reduce(fn: (r, accumulator) => ({\n _value: accumulator._value + (\n if r._value == \"AvailableState\" then 1 \n else if r._value == \"DownState\" then -1 \n else 0)\n }), identity: {_value: 0})\n |> duplicate(column: \"_stop\", as: \"_time\")\n |> window(every: inf) //, timeColumn: \"_time\")\n |> cumulativeSum()\n// |> reduce(fn: (r, accumulator) => ({r with x: r._value * 2}), identity: {x:0})\n// |> map(fn: (r) => ({r with vnew: r._value*2}))\n// |> integral(unit: 10s, timeColumn: \"_stop\")\n// |> window(every: inf) //, timeColumn: \"_stop\")\n |> yield()", + "text": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._field == \"state\")\n |> group(columns: [\"_value\"], mode: \"by\")\n |> duplicate(column: \"_value\", as: \"state\")\n |> window(every: 10s)\n |> count(column: \"state\")\n |> rename(columns: {\"_value\": \"_field\", \"state\": \"_value\"})\n |> group(columns: [\"_field\"])\n |> yield()", "editMode": "advanced", "name": "", "builderConfig": { @@ -514,6 +558,216 @@ ], "note": "", "showNoteWhenEmpty": false, + "xColumn": "_stop", + "generateXAxisTicks": [], + "xTotalTicks": 0, + "xTickStart": 0, + "xTickStep": 0, + "yColumn": "_value", + "generateYAxisTicks": [], + "yTotalTicks": 0, + "yTickStart": 0, + "yTickStep": 0, + "shadeBelow": false, + "position": "overlaid", + "timeFormat": "", + "hoverDimension": "auto", + "legendColorizeRows": true, + "legendOpacity": 1, + "legendOrientationThreshold": 100000000 + } + } + }, + { + "type": "view", + "id": "079e694f29581000", + "attributes": { + "name": "pipeline (demand / supply)", + "properties": { + "shape": "chronograf-v2", + "queries": [ + { + "text": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tardis_pipeline\")\n |> filter(fn: (r) => r._field == \"demand\" or r._field == \"supply\")\n// |> filter(fn: (r) => r._field == \"state\")\n// |> group()\n// |> window(every: 10s)\n// |> duplicate(column: \"_stop\", as: \"_time\")\n// |> window(every: inf) //, timeColumn: \"_time\")\n// |> cumulativeSum()\n |> yield()", + "editMode": "advanced", + "name": "", + "builderConfig": { + "buckets": [], + "tags": [ + { + "key": "_measurement", + "values": [], + "aggregateFunctionType": "filter" + } + ], + "functions": [ + { + "name": "mean" + } + ], + "aggregateWindow": { + "period": "auto", + "fillValues": false + } + } + } + ], + "axes": { + "x": { + "bounds": [ + "", + "" + ], + "label": "", + "prefix": "", + "suffix": "", + "base": "10", + "scale": "linear" + }, + "y": { + "bounds": [ + "", + "" + ], + "label": "", + "prefix": "", + "suffix": "", + "base": "10", + "scale": "linear" + } + }, + "type": "xy", + "legend": {}, + "geom": "line", + "colors": [ + { + "id": "4ef29481-ecf3-4a09-b0f5-e34e8d3e50b5", + "type": "scale", + "hex": "#31C0F6", + "name": "Nineteen Eighty Four", + "value": 0 + }, + { + "id": "719de04a-f70f-4c54-a1bb-982a9d13dbae", + "type": "scale", + "hex": "#A500A5", + "name": "Nineteen Eighty Four", + "value": 0 + }, + { + "id": "8d5c1f25-3801-4cdd-ad40-b8e2e78342a0", + "type": "scale", + "hex": "#FF7E27", + "name": "Nineteen Eighty Four", + "value": 0 + } + ], + "note": "", + "showNoteWhenEmpty": false, + "xColumn": "_time", + "generateXAxisTicks": [], + "xTotalTicks": 0, + "xTickStart": 0, + "xTickStep": 0, + "yColumn": "_value", + "generateYAxisTicks": [], + "yTotalTicks": 0, + "yTickStart": 0, + "yTickStep": 0, + "shadeBelow": false, + "position": "overlaid", + "timeFormat": "", + "hoverDimension": "auto", + "legendColorizeRows": true, + "legendOpacity": 1, + "legendOrientationThreshold": 100000000 + } + } + }, + { + "type": "view", + "id": "079e6e037c181000", + "attributes": { + "name": "pipeline (Utilization / Allocation)", + "properties": { + "shape": "chronograf-v2", + "queries": [ + { + "text": "from(bucket: \"batleth\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"tardis_pipeline\")\n |> filter(fn: (r) => r._field == \"utilisation\" or r._field == \"allocation\")\n// |> filter(fn: (r) => r._field == \"state\")\n// |> group()\n// |> window(every: 10s)\n// |> duplicate(column: \"_stop\", as: \"_time\")\n// |> window(every: inf) //, timeColumn: \"_time\")\n// |> cumulativeSum()\n |> yield()", + "editMode": "advanced", + "name": "", + "builderConfig": { + "buckets": [], + "tags": [ + { + "key": "_measurement", + "values": [], + "aggregateFunctionType": "filter" + } + ], + "functions": [ + { + "name": "mean" + } + ], + "aggregateWindow": { + "period": "auto", + "fillValues": false + } + } + } + ], + "axes": { + "x": { + "bounds": [ + "", + "" + ], + "label": "", + "prefix": "", + "suffix": "", + "base": "10", + "scale": "linear" + }, + "y": { + "bounds": [ + "", + "" + ], + "label": "", + "prefix": "", + "suffix": "", + "base": "10", + "scale": "linear" + } + }, + "type": "xy", + "legend": {}, + "geom": "line", + "colors": [ + { + "id": "4ef29481-ecf3-4a09-b0f5-e34e8d3e50b5", + "type": "scale", + "hex": "#31C0F6", + "name": "Nineteen Eighty Four", + "value": 0 + }, + { + "id": "719de04a-f70f-4c54-a1bb-982a9d13dbae", + "type": "scale", + "hex": "#A500A5", + "name": "Nineteen Eighty Four", + "value": 0 + }, + { + "id": "8d5c1f25-3801-4cdd-ad40-b8e2e78342a0", + "type": "scale", + "hex": "#FF7E27", + "name": "Nineteen Eighty Four", + "value": 0 + } + ], + "note": "", + "showNoteWhenEmpty": false, "xColumn": "_time", "generateXAxisTicks": [], "xTotalTicks": 0,