diff --git a/CHANGELOG.md b/CHANGELOG.md index 932b302..083f378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Vinyl index and bloom filter memory panels - Clock delta panel - Replication status panel and alert example +- Read only status panel ### Changed - Rework "Tarantool memory memory miscellaneous" section to "Tarantool runtime overview" diff --git a/dashboard/panels/cluster.libsonnet b/dashboard/panels/cluster.libsonnet index ec8722f..d048605 100644 --- a/dashboard/panels/cluster.libsonnet +++ b/dashboard/panels/cluster.libsonnet @@ -392,7 +392,7 @@ local prometheus = grafana.prometheus; title=title, description=description, datasource=datasource, - panel_width=24, + panel_width=12, max=1, min=0, ).addValueMapping( @@ -417,6 +417,43 @@ local prometheus = grafana.prometheus; .selectField('value').addConverter('last') ), + read_only_status( + title='Tarantool instance status', + description=||| + `master` status means instance is available for read and + write operations. `slave` status means instance is + available only for read operations. + + Panel works with `metrics >= 0.11.0` and Grafana 8.x. + |||, + datasource=null, + policy=null, + measurement=null, + job=null, + ):: timeseries.new( + title=title, + description=description, + datasource=datasource, + panel_width=12, + max=1, + min=0, + ).addValueMapping( + 0, 'green', 'master' + ).addValueMapping( + 1, 'yellow', 'slave' + ).addRangeMapping( + 0.001, 0.999, '-' + ).addTarget( + common.default_metric_target( + datasource, + 'tnt_read_only', + job, + policy, + measurement, + 'last' + ) + ), + replication_lag( title='Tarantool replication lag', description=||| diff --git a/dashboard/section.libsonnet b/dashboard/section.libsonnet index d771b90..bf45762 100644 --- a/dashboard/section.libsonnet +++ b/dashboard/section.libsonnet @@ -31,6 +31,12 @@ local vinyl = import 'panels/vinyl.libsonnet'; measurement=measurement, ), + cluster.read_only_status( + datasource=datasource, + policy=policy, + measurement=measurement, + ), + cluster.replication_lag( datasource=datasource, policy=policy, @@ -101,6 +107,11 @@ local vinyl = import 'panels/vinyl.libsonnet'; job=job, ), + cluster.read_only_status( + datasource=datasource, + job=job, + ), + cluster.replication_lag( datasource=datasource, job=job, diff --git a/tests/InfluxDB/dashboard_compiled.json b/tests/InfluxDB/dashboard_compiled.json index e8b3c68..cec3dae 100644 --- a/tests/InfluxDB/dashboard_compiled.json +++ b/tests/InfluxDB/dashboard_compiled.json @@ -424,7 +424,7 @@ }, "gridPos": { "h": 8, - "w": 24, + "w": 12, "x": 0, "y": 7 }, @@ -506,6 +506,156 @@ "title": "Tarantool replication status", "type": "timeseries" }, + { + "datasource": "${DS_INFLUXDB}", + "description": "`master` status means instance is available for read and\nwrite operations. `slave` status means instance is\navailable only for read operations.\n\nPanel works with `metrics >= 0.11.0` and Grafana 8.x.\n", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ + { + "options": { + "0": { + "color": "green", + "index": 0, + "text": "master" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "yellow", + "index": 0, + "text": "slave" + } + }, + "type": "value" + }, + { + "options": { + "from": 0.001, + "result": { + "index": 0, + "text": "-" + }, + "to": 0.999 + }, + "type": "range" + } + ], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ ] + } + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 7 + }, + "id": 6, + "options": { + "legend": { + "calcs": [ + "last" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "alias": "$tag_label_pairs_alias", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "label_pairs_alias" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "${INFLUXDB_MEASUREMENT}", + "policy": "${INFLUXDB_POLICY}", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [ ], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "metric_name", + "operator": "=", + "value": "tnt_read_only" + } + ] + } + ], + "title": "Tarantool instance status", + "type": "timeseries" + }, { "aliasColors": { }, "bars": false, @@ -520,7 +670,7 @@ "x": 0, "y": 15 }, - "id": 6, + "id": 7, "legend": { "alignAsTable": true, "avg": false, @@ -648,7 +798,7 @@ "x": 12, "y": 15 }, - "id": 7, + "id": 8, "legend": { "alignAsTable": true, "avg": false, @@ -786,7 +936,7 @@ "x": 0, "y": 23 }, - "id": 8, + "id": 9, "panels": [ { "aliasColors": { }, @@ -803,7 +953,7 @@ "x": 0, "y": 24 }, - "id": 9, + "id": 10, "legend": { "alignAsTable": true, "avg": true, @@ -964,7 +1114,7 @@ "x": 8, "y": 24 }, - "id": 10, + "id": 11, "legend": { "alignAsTable": true, "avg": true, @@ -1125,7 +1275,7 @@ "x": 16, "y": 24 }, - "id": 11, + "id": 12, "legend": { "alignAsTable": true, "avg": true, @@ -1286,7 +1436,7 @@ "x": 0, "y": 32 }, - "id": 12, + "id": 13, "legend": { "alignAsTable": true, "avg": true, @@ -1447,7 +1597,7 @@ "x": 8, "y": 32 }, - "id": 13, + "id": 14, "legend": { "alignAsTable": true, "avg": true, @@ -1608,7 +1758,7 @@ "x": 16, "y": 32 }, - "id": 14, + "id": 15, "legend": { "alignAsTable": true, "avg": true, @@ -1772,7 +1922,7 @@ "x": 0, "y": 40 }, - "id": 15, + "id": 16, "panels": [ { "aliasColors": { }, @@ -1789,7 +1939,7 @@ "x": 0, "y": 41 }, - "id": 16, + "id": 17, "legend": { "alignAsTable": true, "avg": true, @@ -1920,7 +2070,7 @@ "x": 8, "y": 41 }, - "id": 17, + "id": 18, "legend": { "alignAsTable": true, "avg": true, @@ -2057,7 +2207,7 @@ "x": 16, "y": 41 }, - "id": 18, + "id": 19, "legend": { "alignAsTable": true, "avg": true, @@ -2194,7 +2344,7 @@ "x": 0, "y": 49 }, - "id": 19, + "id": 20, "legend": { "alignAsTable": true, "avg": true, @@ -2331,7 +2481,7 @@ "x": 12, "y": 49 }, - "id": 20, + "id": 21, "legend": { "alignAsTable": true, "avg": true, @@ -2462,7 +2612,7 @@ "x": 0, "y": 57 }, - "id": 21, + "id": 22, "legend": { "alignAsTable": true, "avg": true, @@ -2599,7 +2749,7 @@ "x": 12, "y": 57 }, - "id": 22, + "id": 23, "legend": { "alignAsTable": true, "avg": true, @@ -2733,7 +2883,7 @@ "x": 0, "y": 65 }, - "id": 23, + "id": 24, "panels": [ { "content": "`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, 50% < `items_used_ratio` < 90% – your memory is highly fragmented. See [docs](https://www.tarantool.io/en/doc/1.10/reference/reference_lua/box_slab/#lua-function.box.slab.info) for more info.\n\n`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, `items_used_ratio` > 90% – you are running out of memory. You should consider increasing Tarantool’s memory limit (*box.cfg.memtx_memory*).\n", @@ -2744,7 +2894,7 @@ "x": 0, "y": 66 }, - "id": 24, + "id": 25, "mode": "markdown", "title": "Slab allocator monitoring information", "type": "text" @@ -2764,7 +2914,7 @@ "x": 0, "y": 69 }, - "id": 25, + "id": 26, "legend": { "alignAsTable": true, "avg": false, @@ -2895,7 +3045,7 @@ "x": 8, "y": 69 }, - "id": 26, + "id": 27, "legend": { "alignAsTable": true, "avg": false, @@ -3026,7 +3176,7 @@ "x": 16, "y": 69 }, - "id": 27, + "id": 28, "legend": { "alignAsTable": true, "avg": false, @@ -3157,7 +3307,7 @@ "x": 0, "y": 77 }, - "id": 28, + "id": 29, "legend": { "alignAsTable": true, "avg": false, @@ -3288,7 +3438,7 @@ "x": 8, "y": 77 }, - "id": 29, + "id": 30, "legend": { "alignAsTable": true, "avg": false, @@ -3419,7 +3569,7 @@ "x": 16, "y": 77 }, - "id": 30, + "id": 31, "legend": { "alignAsTable": true, "avg": false, @@ -3550,7 +3700,7 @@ "x": 0, "y": 85 }, - "id": 31, + "id": 32, "legend": { "alignAsTable": true, "avg": false, @@ -3681,7 +3831,7 @@ "x": 8, "y": 85 }, - "id": 32, + "id": 33, "legend": { "alignAsTable": true, "avg": false, @@ -3812,7 +3962,7 @@ "x": 16, "y": 85 }, - "id": 33, + "id": 34, "legend": { "alignAsTable": true, "avg": false, @@ -3946,7 +4096,7 @@ "x": 0, "y": 93 }, - "id": 34, + "id": 35, "panels": [ { "aliasColors": { }, @@ -3963,7 +4113,7 @@ "x": 0, "y": 94 }, - "id": 35, + "id": 36, "legend": { "alignAsTable": true, "avg": false, @@ -4106,7 +4256,7 @@ "x": 12, "y": 94 }, - "id": 36, + "id": 37, "legend": { "alignAsTable": true, "avg": false, @@ -4249,7 +4399,7 @@ "x": 0, "y": 102 }, - "id": 37, + "id": 38, "legend": { "alignAsTable": true, "avg": false, @@ -4392,7 +4542,7 @@ "x": 8, "y": 102 }, - "id": 38, + "id": 39, "legend": { "alignAsTable": true, "avg": false, @@ -4535,7 +4685,7 @@ "x": 16, "y": 102 }, - "id": 39, + "id": 40, "legend": { "alignAsTable": true, "avg": false, @@ -4681,7 +4831,7 @@ "x": 0, "y": 110 }, - "id": 40, + "id": 41, "panels": [ { "aliasColors": { }, @@ -4698,7 +4848,7 @@ "x": 0, "y": 111 }, - "id": 41, + "id": 42, "legend": { "alignAsTable": true, "avg": false, @@ -4829,7 +4979,7 @@ "x": 12, "y": 111 }, - "id": 42, + "id": 43, "legend": { "alignAsTable": true, "avg": false, @@ -4960,7 +5110,7 @@ "x": 0, "y": 119 }, - "id": 43, + "id": 44, "legend": { "alignAsTable": true, "avg": true, @@ -5091,7 +5241,7 @@ "x": 12, "y": 119 }, - "id": 44, + "id": 45, "legend": { "alignAsTable": true, "avg": true, @@ -5222,7 +5372,7 @@ "x": 0, "y": 127 }, - "id": 45, + "id": 46, "legend": { "alignAsTable": true, "avg": true, @@ -5353,7 +5503,7 @@ "x": 6, "y": 127 }, - "id": 46, + "id": 47, "legend": { "alignAsTable": true, "avg": true, @@ -5484,7 +5634,7 @@ "x": 12, "y": 127 }, - "id": 47, + "id": 48, "legend": { "alignAsTable": true, "avg": true, @@ -5615,7 +5765,7 @@ "x": 18, "y": 127 }, - "id": 48, + "id": 49, "legend": { "alignAsTable": true, "avg": false, @@ -5746,7 +5896,7 @@ "x": 0, "y": 135 }, - "id": 49, + "id": 50, "legend": { "alignAsTable": true, "avg": true, @@ -5883,7 +6033,7 @@ "x": 6, "y": 135 }, - "id": 50, + "id": 51, "legend": { "alignAsTable": true, "avg": true, @@ -6020,7 +6170,7 @@ "x": 12, "y": 135 }, - "id": 51, + "id": 52, "legend": { "alignAsTable": true, "avg": true, @@ -6157,7 +6307,7 @@ "x": 18, "y": 135 }, - "id": 52, + "id": 53, "legend": { "alignAsTable": true, "avg": true, @@ -6288,7 +6438,7 @@ "x": 0, "y": 143 }, - "id": 53, + "id": 54, "legend": { "alignAsTable": true, "avg": false, @@ -6425,7 +6575,7 @@ "x": 6, "y": 143 }, - "id": 54, + "id": 55, "legend": { "alignAsTable": true, "avg": false, @@ -6568,7 +6718,7 @@ "x": 12, "y": 143 }, - "id": 55, + "id": 56, "legend": { "alignAsTable": true, "avg": true, @@ -6705,7 +6855,7 @@ "x": 18, "y": 143 }, - "id": 56, + "id": 57, "legend": { "alignAsTable": true, "avg": true, @@ -6845,7 +6995,7 @@ "x": 0, "y": 151 }, - "id": 57, + "id": 58, "panels": [ { "aliasColors": { }, @@ -6862,7 +7012,7 @@ "x": 0, "y": 152 }, - "id": 58, + "id": 59, "legend": { "alignAsTable": true, "avg": true, @@ -6999,7 +7149,7 @@ "x": 12, "y": 152 }, - "id": 59, + "id": 60, "legend": { "alignAsTable": true, "avg": true, @@ -7139,7 +7289,7 @@ "x": 0, "y": 160 }, - "id": 60, + "id": 61, "panels": [ { "aliasColors": { }, @@ -7156,7 +7306,7 @@ "x": 0, "y": 161 }, - "id": 61, + "id": 62, "legend": { "alignAsTable": true, "avg": true, @@ -7287,7 +7437,7 @@ "x": 12, "y": 161 }, - "id": 62, + "id": 63, "legend": { "alignAsTable": true, "avg": true, @@ -7418,7 +7568,7 @@ "x": 0, "y": 169 }, - "id": 63, + "id": 64, "legend": { "alignAsTable": true, "avg": true, @@ -7555,7 +7705,7 @@ "x": 12, "y": 169 }, - "id": 64, + "id": 65, "legend": { "alignAsTable": true, "avg": true, @@ -7686,7 +7836,7 @@ "x": 0, "y": 177 }, - "id": 65, + "id": 66, "legend": { "alignAsTable": true, "avg": false, @@ -7817,7 +7967,7 @@ "x": 8, "y": 177 }, - "id": 66, + "id": 67, "legend": { "alignAsTable": true, "avg": true, @@ -7948,7 +8098,7 @@ "x": 16, "y": 177 }, - "id": 67, + "id": 68, "legend": { "alignAsTable": true, "avg": true, @@ -8082,7 +8232,7 @@ "x": 0, "y": 185 }, - "id": 68, + "id": 69, "panels": [ { "aliasColors": { }, @@ -8099,7 +8249,7 @@ "x": 0, "y": 186 }, - "id": 69, + "id": 70, "legend": { "alignAsTable": true, "avg": true, @@ -8236,7 +8386,7 @@ "x": 6, "y": 186 }, - "id": 70, + "id": 71, "legend": { "alignAsTable": true, "avg": true, @@ -8373,7 +8523,7 @@ "x": 12, "y": 186 }, - "id": 71, + "id": 72, "legend": { "alignAsTable": true, "avg": true, @@ -8510,7 +8660,7 @@ "x": 18, "y": 186 }, - "id": 72, + "id": 73, "legend": { "alignAsTable": true, "avg": true, @@ -8641,7 +8791,7 @@ "x": 0, "y": 194 }, - "id": 73, + "id": 74, "legend": { "alignAsTable": true, "avg": true, @@ -8778,7 +8928,7 @@ "x": 12, "y": 194 }, - "id": 74, + "id": 75, "legend": { "alignAsTable": true, "avg": true, @@ -8915,7 +9065,7 @@ "x": 0, "y": 202 }, - "id": 75, + "id": 76, "legend": { "alignAsTable": true, "avg": true, @@ -9052,7 +9202,7 @@ "x": 8, "y": 202 }, - "id": 76, + "id": 77, "legend": { "alignAsTable": true, "avg": true, @@ -9189,7 +9339,7 @@ "x": 16, "y": 202 }, - "id": 77, + "id": 78, "legend": { "alignAsTable": true, "avg": true, @@ -9326,7 +9476,7 @@ "x": 0, "y": 210 }, - "id": 78, + "id": 79, "legend": { "alignAsTable": true, "avg": true, @@ -9463,7 +9613,7 @@ "x": 8, "y": 210 }, - "id": 79, + "id": 80, "legend": { "alignAsTable": true, "avg": true, @@ -9600,7 +9750,7 @@ "x": 16, "y": 210 }, - "id": 80, + "id": 81, "legend": { "alignAsTable": true, "avg": true, @@ -9737,7 +9887,7 @@ "x": 0, "y": 218 }, - "id": 81, + "id": 82, "legend": { "alignAsTable": true, "avg": true, @@ -9868,7 +10018,7 @@ "x": 6, "y": 218 }, - "id": 82, + "id": 83, "legend": { "alignAsTable": true, "avg": true, @@ -9999,7 +10149,7 @@ "x": 12, "y": 218 }, - "id": 83, + "id": 84, "legend": { "alignAsTable": true, "avg": true, @@ -10130,7 +10280,7 @@ "x": 18, "y": 218 }, - "id": 84, + "id": 85, "legend": { "alignAsTable": true, "avg": true, @@ -10261,7 +10411,7 @@ "x": 0, "y": 226 }, - "id": 85, + "id": 86, "legend": { "alignAsTable": true, "avg": true, @@ -10392,7 +10542,7 @@ "x": 8, "y": 226 }, - "id": 86, + "id": 87, "legend": { "alignAsTable": true, "avg": true, @@ -10529,7 +10679,7 @@ "x": 16, "y": 226 }, - "id": 87, + "id": 88, "legend": { "alignAsTable": true, "avg": true, @@ -10669,7 +10819,7 @@ "x": 0, "y": 234 }, - "id": 88, + "id": 89, "panels": [ { "aliasColors": { }, @@ -10686,7 +10836,7 @@ "x": 0, "y": 235 }, - "id": 89, + "id": 90, "legend": { "alignAsTable": true, "avg": true, @@ -10829,7 +10979,7 @@ "x": 8, "y": 235 }, - "id": 90, + "id": 91, "legend": { "alignAsTable": true, "avg": true, @@ -10972,7 +11122,7 @@ "x": 16, "y": 235 }, - "id": 91, + "id": 92, "legend": { "alignAsTable": true, "avg": true, @@ -11115,7 +11265,7 @@ "x": 0, "y": 243 }, - "id": 92, + "id": 93, "legend": { "alignAsTable": true, "avg": true, @@ -11258,7 +11408,7 @@ "x": 8, "y": 243 }, - "id": 93, + "id": 94, "legend": { "alignAsTable": true, "avg": true, @@ -11401,7 +11551,7 @@ "x": 16, "y": 243 }, - "id": 94, + "id": 95, "legend": { "alignAsTable": true, "avg": true, @@ -11544,7 +11694,7 @@ "x": 0, "y": 251 }, - "id": 95, + "id": 96, "legend": { "alignAsTable": true, "avg": true, @@ -11687,7 +11837,7 @@ "x": 8, "y": 251 }, - "id": 96, + "id": 97, "legend": { "alignAsTable": true, "avg": true, @@ -11830,7 +11980,7 @@ "x": 16, "y": 251 }, - "id": 97, + "id": 98, "legend": { "alignAsTable": true, "avg": true, @@ -11973,7 +12123,7 @@ "x": 0, "y": 259 }, - "id": 98, + "id": 99, "legend": { "alignAsTable": true, "avg": true, @@ -12116,7 +12266,7 @@ "x": 8, "y": 259 }, - "id": 99, + "id": 100, "legend": { "alignAsTable": true, "avg": true, @@ -12259,7 +12409,7 @@ "x": 16, "y": 259 }, - "id": 100, + "id": 101, "legend": { "alignAsTable": true, "avg": true, diff --git a/tests/InfluxDB/dashboard_with_custom_panels_compiled.json b/tests/InfluxDB/dashboard_with_custom_panels_compiled.json index 120a390..b07ead8 100644 --- a/tests/InfluxDB/dashboard_with_custom_panels_compiled.json +++ b/tests/InfluxDB/dashboard_with_custom_panels_compiled.json @@ -424,7 +424,7 @@ }, "gridPos": { "h": 8, - "w": 24, + "w": 12, "x": 0, "y": 7 }, @@ -506,6 +506,156 @@ "title": "Tarantool replication status", "type": "timeseries" }, + { + "datasource": "${DS_INFLUXDB}", + "description": "`master` status means instance is available for read and\nwrite operations. `slave` status means instance is\navailable only for read operations.\n\nPanel works with `metrics >= 0.11.0` and Grafana 8.x.\n", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ + { + "options": { + "0": { + "color": "green", + "index": 0, + "text": "master" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "yellow", + "index": 0, + "text": "slave" + } + }, + "type": "value" + }, + { + "options": { + "from": 0.001, + "result": { + "index": 0, + "text": "-" + }, + "to": 0.999 + }, + "type": "range" + } + ], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ ] + } + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 7 + }, + "id": 6, + "options": { + "legend": { + "calcs": [ + "last" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "alias": "$tag_label_pairs_alias", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "label_pairs_alias" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "${INFLUXDB_MEASUREMENT}", + "policy": "${INFLUXDB_POLICY}", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [ ], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "metric_name", + "operator": "=", + "value": "tnt_read_only" + } + ] + } + ], + "title": "Tarantool instance status", + "type": "timeseries" + }, { "aliasColors": { }, "bars": false, @@ -520,7 +670,7 @@ "x": 0, "y": 15 }, - "id": 6, + "id": 7, "legend": { "alignAsTable": true, "avg": false, @@ -648,7 +798,7 @@ "x": 12, "y": 15 }, - "id": 7, + "id": 8, "legend": { "alignAsTable": true, "avg": false, @@ -786,7 +936,7 @@ "x": 0, "y": 23 }, - "id": 8, + "id": 9, "panels": [ { "aliasColors": { }, @@ -803,7 +953,7 @@ "x": 0, "y": 24 }, - "id": 9, + "id": 10, "legend": { "alignAsTable": true, "avg": true, @@ -964,7 +1114,7 @@ "x": 8, "y": 24 }, - "id": 10, + "id": 11, "legend": { "alignAsTable": true, "avg": true, @@ -1125,7 +1275,7 @@ "x": 16, "y": 24 }, - "id": 11, + "id": 12, "legend": { "alignAsTable": true, "avg": true, @@ -1286,7 +1436,7 @@ "x": 0, "y": 32 }, - "id": 12, + "id": 13, "legend": { "alignAsTable": true, "avg": true, @@ -1447,7 +1597,7 @@ "x": 8, "y": 32 }, - "id": 13, + "id": 14, "legend": { "alignAsTable": true, "avg": true, @@ -1608,7 +1758,7 @@ "x": 16, "y": 32 }, - "id": 14, + "id": 15, "legend": { "alignAsTable": true, "avg": true, @@ -1772,7 +1922,7 @@ "x": 0, "y": 40 }, - "id": 15, + "id": 16, "panels": [ { "aliasColors": { }, @@ -1789,7 +1939,7 @@ "x": 0, "y": 41 }, - "id": 16, + "id": 17, "legend": { "alignAsTable": true, "avg": true, @@ -1920,7 +2070,7 @@ "x": 8, "y": 41 }, - "id": 17, + "id": 18, "legend": { "alignAsTable": true, "avg": true, @@ -2057,7 +2207,7 @@ "x": 16, "y": 41 }, - "id": 18, + "id": 19, "legend": { "alignAsTable": true, "avg": true, @@ -2194,7 +2344,7 @@ "x": 0, "y": 49 }, - "id": 19, + "id": 20, "legend": { "alignAsTable": true, "avg": true, @@ -2331,7 +2481,7 @@ "x": 12, "y": 49 }, - "id": 20, + "id": 21, "legend": { "alignAsTable": true, "avg": true, @@ -2462,7 +2612,7 @@ "x": 0, "y": 57 }, - "id": 21, + "id": 22, "legend": { "alignAsTable": true, "avg": true, @@ -2599,7 +2749,7 @@ "x": 12, "y": 57 }, - "id": 22, + "id": 23, "legend": { "alignAsTable": true, "avg": true, @@ -2733,7 +2883,7 @@ "x": 0, "y": 65 }, - "id": 23, + "id": 24, "panels": [ { "content": "`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, 50% < `items_used_ratio` < 90% – your memory is highly fragmented. See [docs](https://www.tarantool.io/en/doc/1.10/reference/reference_lua/box_slab/#lua-function.box.slab.info) for more info.\n\n`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, `items_used_ratio` > 90% – you are running out of memory. You should consider increasing Tarantool’s memory limit (*box.cfg.memtx_memory*).\n", @@ -2744,7 +2894,7 @@ "x": 0, "y": 66 }, - "id": 24, + "id": 25, "mode": "markdown", "title": "Slab allocator monitoring information", "type": "text" @@ -2764,7 +2914,7 @@ "x": 0, "y": 69 }, - "id": 25, + "id": 26, "legend": { "alignAsTable": true, "avg": false, @@ -2895,7 +3045,7 @@ "x": 8, "y": 69 }, - "id": 26, + "id": 27, "legend": { "alignAsTable": true, "avg": false, @@ -3026,7 +3176,7 @@ "x": 16, "y": 69 }, - "id": 27, + "id": 28, "legend": { "alignAsTable": true, "avg": false, @@ -3157,7 +3307,7 @@ "x": 0, "y": 77 }, - "id": 28, + "id": 29, "legend": { "alignAsTable": true, "avg": false, @@ -3288,7 +3438,7 @@ "x": 8, "y": 77 }, - "id": 29, + "id": 30, "legend": { "alignAsTable": true, "avg": false, @@ -3419,7 +3569,7 @@ "x": 16, "y": 77 }, - "id": 30, + "id": 31, "legend": { "alignAsTable": true, "avg": false, @@ -3550,7 +3700,7 @@ "x": 0, "y": 85 }, - "id": 31, + "id": 32, "legend": { "alignAsTable": true, "avg": false, @@ -3681,7 +3831,7 @@ "x": 8, "y": 85 }, - "id": 32, + "id": 33, "legend": { "alignAsTable": true, "avg": false, @@ -3812,7 +3962,7 @@ "x": 16, "y": 85 }, - "id": 33, + "id": 34, "legend": { "alignAsTable": true, "avg": false, @@ -3946,7 +4096,7 @@ "x": 0, "y": 93 }, - "id": 34, + "id": 35, "panels": [ { "aliasColors": { }, @@ -3963,7 +4113,7 @@ "x": 0, "y": 94 }, - "id": 35, + "id": 36, "legend": { "alignAsTable": true, "avg": false, @@ -4106,7 +4256,7 @@ "x": 12, "y": 94 }, - "id": 36, + "id": 37, "legend": { "alignAsTable": true, "avg": false, @@ -4249,7 +4399,7 @@ "x": 0, "y": 102 }, - "id": 37, + "id": 38, "legend": { "alignAsTable": true, "avg": false, @@ -4392,7 +4542,7 @@ "x": 8, "y": 102 }, - "id": 38, + "id": 39, "legend": { "alignAsTable": true, "avg": false, @@ -4535,7 +4685,7 @@ "x": 16, "y": 102 }, - "id": 39, + "id": 40, "legend": { "alignAsTable": true, "avg": false, @@ -4681,7 +4831,7 @@ "x": 0, "y": 110 }, - "id": 40, + "id": 41, "panels": [ { "aliasColors": { }, @@ -4698,7 +4848,7 @@ "x": 0, "y": 111 }, - "id": 41, + "id": 42, "legend": { "alignAsTable": true, "avg": false, @@ -4829,7 +4979,7 @@ "x": 12, "y": 111 }, - "id": 42, + "id": 43, "legend": { "alignAsTable": true, "avg": false, @@ -4960,7 +5110,7 @@ "x": 0, "y": 119 }, - "id": 43, + "id": 44, "legend": { "alignAsTable": true, "avg": true, @@ -5091,7 +5241,7 @@ "x": 12, "y": 119 }, - "id": 44, + "id": 45, "legend": { "alignAsTable": true, "avg": true, @@ -5222,7 +5372,7 @@ "x": 0, "y": 127 }, - "id": 45, + "id": 46, "legend": { "alignAsTable": true, "avg": true, @@ -5353,7 +5503,7 @@ "x": 6, "y": 127 }, - "id": 46, + "id": 47, "legend": { "alignAsTable": true, "avg": true, @@ -5484,7 +5634,7 @@ "x": 12, "y": 127 }, - "id": 47, + "id": 48, "legend": { "alignAsTable": true, "avg": true, @@ -5615,7 +5765,7 @@ "x": 18, "y": 127 }, - "id": 48, + "id": 49, "legend": { "alignAsTable": true, "avg": false, @@ -5746,7 +5896,7 @@ "x": 0, "y": 135 }, - "id": 49, + "id": 50, "legend": { "alignAsTable": true, "avg": true, @@ -5883,7 +6033,7 @@ "x": 6, "y": 135 }, - "id": 50, + "id": 51, "legend": { "alignAsTable": true, "avg": true, @@ -6020,7 +6170,7 @@ "x": 12, "y": 135 }, - "id": 51, + "id": 52, "legend": { "alignAsTable": true, "avg": true, @@ -6157,7 +6307,7 @@ "x": 18, "y": 135 }, - "id": 52, + "id": 53, "legend": { "alignAsTable": true, "avg": true, @@ -6288,7 +6438,7 @@ "x": 0, "y": 143 }, - "id": 53, + "id": 54, "legend": { "alignAsTable": true, "avg": false, @@ -6425,7 +6575,7 @@ "x": 6, "y": 143 }, - "id": 54, + "id": 55, "legend": { "alignAsTable": true, "avg": false, @@ -6568,7 +6718,7 @@ "x": 12, "y": 143 }, - "id": 55, + "id": 56, "legend": { "alignAsTable": true, "avg": true, @@ -6705,7 +6855,7 @@ "x": 18, "y": 143 }, - "id": 56, + "id": 57, "legend": { "alignAsTable": true, "avg": true, @@ -6845,7 +6995,7 @@ "x": 0, "y": 151 }, - "id": 57, + "id": 58, "panels": [ { "aliasColors": { }, @@ -6862,7 +7012,7 @@ "x": 0, "y": 152 }, - "id": 58, + "id": 59, "legend": { "alignAsTable": true, "avg": true, @@ -6999,7 +7149,7 @@ "x": 12, "y": 152 }, - "id": 59, + "id": 60, "legend": { "alignAsTable": true, "avg": true, @@ -7139,7 +7289,7 @@ "x": 0, "y": 160 }, - "id": 60, + "id": 61, "panels": [ { "aliasColors": { }, @@ -7156,7 +7306,7 @@ "x": 0, "y": 161 }, - "id": 61, + "id": 62, "legend": { "alignAsTable": true, "avg": true, @@ -7287,7 +7437,7 @@ "x": 12, "y": 161 }, - "id": 62, + "id": 63, "legend": { "alignAsTable": true, "avg": true, @@ -7418,7 +7568,7 @@ "x": 0, "y": 169 }, - "id": 63, + "id": 64, "legend": { "alignAsTable": true, "avg": true, @@ -7555,7 +7705,7 @@ "x": 12, "y": 169 }, - "id": 64, + "id": 65, "legend": { "alignAsTable": true, "avg": true, @@ -7686,7 +7836,7 @@ "x": 0, "y": 177 }, - "id": 65, + "id": 66, "legend": { "alignAsTable": true, "avg": false, @@ -7817,7 +7967,7 @@ "x": 8, "y": 177 }, - "id": 66, + "id": 67, "legend": { "alignAsTable": true, "avg": true, @@ -7948,7 +8098,7 @@ "x": 16, "y": 177 }, - "id": 67, + "id": 68, "legend": { "alignAsTable": true, "avg": true, @@ -8082,7 +8232,7 @@ "x": 0, "y": 185 }, - "id": 68, + "id": 69, "panels": [ { "aliasColors": { }, @@ -8099,7 +8249,7 @@ "x": 0, "y": 186 }, - "id": 69, + "id": 70, "legend": { "alignAsTable": true, "avg": true, @@ -8236,7 +8386,7 @@ "x": 6, "y": 186 }, - "id": 70, + "id": 71, "legend": { "alignAsTable": true, "avg": true, @@ -8373,7 +8523,7 @@ "x": 12, "y": 186 }, - "id": 71, + "id": 72, "legend": { "alignAsTable": true, "avg": true, @@ -8510,7 +8660,7 @@ "x": 18, "y": 186 }, - "id": 72, + "id": 73, "legend": { "alignAsTable": true, "avg": true, @@ -8641,7 +8791,7 @@ "x": 0, "y": 194 }, - "id": 73, + "id": 74, "legend": { "alignAsTable": true, "avg": true, @@ -8778,7 +8928,7 @@ "x": 12, "y": 194 }, - "id": 74, + "id": 75, "legend": { "alignAsTable": true, "avg": true, @@ -8915,7 +9065,7 @@ "x": 0, "y": 202 }, - "id": 75, + "id": 76, "legend": { "alignAsTable": true, "avg": true, @@ -9052,7 +9202,7 @@ "x": 8, "y": 202 }, - "id": 76, + "id": 77, "legend": { "alignAsTable": true, "avg": true, @@ -9189,7 +9339,7 @@ "x": 16, "y": 202 }, - "id": 77, + "id": 78, "legend": { "alignAsTable": true, "avg": true, @@ -9326,7 +9476,7 @@ "x": 0, "y": 210 }, - "id": 78, + "id": 79, "legend": { "alignAsTable": true, "avg": true, @@ -9463,7 +9613,7 @@ "x": 8, "y": 210 }, - "id": 79, + "id": 80, "legend": { "alignAsTable": true, "avg": true, @@ -9600,7 +9750,7 @@ "x": 16, "y": 210 }, - "id": 80, + "id": 81, "legend": { "alignAsTable": true, "avg": true, @@ -9737,7 +9887,7 @@ "x": 0, "y": 218 }, - "id": 81, + "id": 82, "legend": { "alignAsTable": true, "avg": true, @@ -9868,7 +10018,7 @@ "x": 6, "y": 218 }, - "id": 82, + "id": 83, "legend": { "alignAsTable": true, "avg": true, @@ -9999,7 +10149,7 @@ "x": 12, "y": 218 }, - "id": 83, + "id": 84, "legend": { "alignAsTable": true, "avg": true, @@ -10130,7 +10280,7 @@ "x": 18, "y": 218 }, - "id": 84, + "id": 85, "legend": { "alignAsTable": true, "avg": true, @@ -10261,7 +10411,7 @@ "x": 0, "y": 226 }, - "id": 85, + "id": 86, "legend": { "alignAsTable": true, "avg": true, @@ -10392,7 +10542,7 @@ "x": 8, "y": 226 }, - "id": 86, + "id": 87, "legend": { "alignAsTable": true, "avg": true, @@ -10529,7 +10679,7 @@ "x": 16, "y": 226 }, - "id": 87, + "id": 88, "legend": { "alignAsTable": true, "avg": true, @@ -10669,7 +10819,7 @@ "x": 0, "y": 234 }, - "id": 88, + "id": 89, "panels": [ { "aliasColors": { }, @@ -10686,7 +10836,7 @@ "x": 0, "y": 235 }, - "id": 89, + "id": 90, "legend": { "alignAsTable": true, "avg": true, @@ -10829,7 +10979,7 @@ "x": 8, "y": 235 }, - "id": 90, + "id": 91, "legend": { "alignAsTable": true, "avg": true, @@ -10972,7 +11122,7 @@ "x": 16, "y": 235 }, - "id": 91, + "id": 92, "legend": { "alignAsTable": true, "avg": true, @@ -11115,7 +11265,7 @@ "x": 0, "y": 243 }, - "id": 92, + "id": 93, "legend": { "alignAsTable": true, "avg": true, @@ -11258,7 +11408,7 @@ "x": 8, "y": 243 }, - "id": 93, + "id": 94, "legend": { "alignAsTable": true, "avg": true, @@ -11401,7 +11551,7 @@ "x": 16, "y": 243 }, - "id": 94, + "id": 95, "legend": { "alignAsTable": true, "avg": true, @@ -11544,7 +11694,7 @@ "x": 0, "y": 251 }, - "id": 95, + "id": 96, "legend": { "alignAsTable": true, "avg": true, @@ -11687,7 +11837,7 @@ "x": 8, "y": 251 }, - "id": 96, + "id": 97, "legend": { "alignAsTable": true, "avg": true, @@ -11830,7 +11980,7 @@ "x": 16, "y": 251 }, - "id": 97, + "id": 98, "legend": { "alignAsTable": true, "avg": true, @@ -11973,7 +12123,7 @@ "x": 0, "y": 259 }, - "id": 98, + "id": 99, "legend": { "alignAsTable": true, "avg": true, @@ -12116,7 +12266,7 @@ "x": 8, "y": 259 }, - "id": 99, + "id": 100, "legend": { "alignAsTable": true, "avg": true, @@ -12259,7 +12409,7 @@ "x": 16, "y": 259 }, - "id": 100, + "id": 101, "legend": { "alignAsTable": true, "avg": true, @@ -12405,7 +12555,7 @@ "x": 0, "y": 267 }, - "id": 101, + "id": 102, "panels": [ { "aliasColors": { }, @@ -12422,7 +12572,7 @@ "x": 0, "y": 268 }, - "id": 102, + "id": 103, "legend": { "alignAsTable": true, "avg": true, @@ -12553,7 +12703,7 @@ "x": 0, "y": 274 }, - "id": 103, + "id": 104, "legend": { "alignAsTable": true, "avg": true, @@ -12690,7 +12840,7 @@ "x": 12, "y": 274 }, - "id": 104, + "id": 105, "legend": { "alignAsTable": true, "avg": true, diff --git a/tests/Prometheus/dashboard_compiled.json b/tests/Prometheus/dashboard_compiled.json index a8b2b75..1c834ba 100644 --- a/tests/Prometheus/dashboard_compiled.json +++ b/tests/Prometheus/dashboard_compiled.json @@ -747,7 +747,7 @@ }, "gridPos": { "h": 8, - "w": 24, + "w": 12, "x": 0, "y": 15 }, @@ -776,6 +776,115 @@ "title": "Tarantool replication status", "type": "timeseries" }, + { + "datasource": "${DS_PROMETHEUS}", + "description": "`master` status means instance is available for read and\nwrite operations. `slave` status means instance is\navailable only for read operations.\n\nPanel works with `metrics >= 0.11.0` and Grafana 8.x.\n", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ + { + "options": { + "0": { + "color": "green", + "index": 0, + "text": "master" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "yellow", + "index": 0, + "text": "slave" + } + }, + "type": "value" + }, + { + "options": { + "from": 0.001, + "result": { + "index": 0, + "text": "-" + }, + "to": 0.999 + }, + "type": "range" + } + ], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ ] + } + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 15 + }, + "id": 13, + "options": { + "legend": { + "calcs": [ + "last" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "expr": "tnt_read_only{job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{alias}}", + "refId": "A" + } + ], + "title": "Tarantool instance status", + "type": "timeseries" + }, { "aliasColors": { }, "bars": false, @@ -790,7 +899,7 @@ "x": 0, "y": 23 }, - "id": 13, + "id": 14, "legend": { "alignAsTable": true, "avg": false, @@ -877,7 +986,7 @@ "x": 12, "y": 23 }, - "id": 14, + "id": 15, "legend": { "alignAsTable": true, "avg": false, @@ -968,7 +1077,7 @@ "x": 0, "y": 31 }, - "id": 15, + "id": 16, "panels": [ { "aliasColors": { }, @@ -985,7 +1094,7 @@ "x": 0, "y": 32 }, - "id": 16, + "id": 17, "legend": { "alignAsTable": true, "avg": true, @@ -1075,7 +1184,7 @@ "x": 8, "y": 32 }, - "id": 17, + "id": 18, "legend": { "alignAsTable": true, "avg": true, @@ -1165,7 +1274,7 @@ "x": 16, "y": 32 }, - "id": 18, + "id": 19, "legend": { "alignAsTable": true, "avg": true, @@ -1255,7 +1364,7 @@ "x": 0, "y": 40 }, - "id": 19, + "id": 20, "legend": { "alignAsTable": true, "avg": true, @@ -1345,7 +1454,7 @@ "x": 8, "y": 40 }, - "id": 20, + "id": 21, "legend": { "alignAsTable": true, "avg": true, @@ -1435,7 +1544,7 @@ "x": 16, "y": 40 }, - "id": 21, + "id": 22, "legend": { "alignAsTable": true, "avg": true, @@ -1528,7 +1637,7 @@ "x": 0, "y": 48 }, - "id": 22, + "id": 23, "panels": [ { "aliasColors": { }, @@ -1545,7 +1654,7 @@ "x": 0, "y": 49 }, - "id": 23, + "id": 24, "legend": { "alignAsTable": true, "avg": true, @@ -1635,7 +1744,7 @@ "x": 8, "y": 49 }, - "id": 24, + "id": 25, "legend": { "alignAsTable": true, "avg": true, @@ -1725,7 +1834,7 @@ "x": 16, "y": 49 }, - "id": 25, + "id": 26, "legend": { "alignAsTable": true, "avg": true, @@ -1815,7 +1924,7 @@ "x": 0, "y": 57 }, - "id": 26, + "id": 27, "legend": { "alignAsTable": true, "avg": true, @@ -1905,7 +2014,7 @@ "x": 12, "y": 57 }, - "id": 27, + "id": 28, "legend": { "alignAsTable": true, "avg": true, @@ -1995,7 +2104,7 @@ "x": 0, "y": 65 }, - "id": 28, + "id": 29, "legend": { "alignAsTable": true, "avg": true, @@ -2085,7 +2194,7 @@ "x": 12, "y": 65 }, - "id": 29, + "id": 30, "legend": { "alignAsTable": true, "avg": true, @@ -2178,7 +2287,7 @@ "x": 0, "y": 73 }, - "id": 30, + "id": 31, "panels": [ { "content": "`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, 50% < `items_used_ratio` < 90% – your memory is highly fragmented. See [docs](https://www.tarantool.io/en/doc/1.10/reference/reference_lua/box_slab/#lua-function.box.slab.info) for more info.\n\n`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, `items_used_ratio` > 90% – you are running out of memory. You should consider increasing Tarantool’s memory limit (*box.cfg.memtx_memory*).\n", @@ -2189,7 +2298,7 @@ "x": 0, "y": 74 }, - "id": 31, + "id": 32, "mode": "markdown", "title": "Slab allocator monitoring information", "type": "text" @@ -2209,7 +2318,7 @@ "x": 0, "y": 77 }, - "id": 32, + "id": 33, "legend": { "alignAsTable": true, "avg": false, @@ -2299,7 +2408,7 @@ "x": 8, "y": 77 }, - "id": 33, + "id": 34, "legend": { "alignAsTable": true, "avg": false, @@ -2389,7 +2498,7 @@ "x": 16, "y": 77 }, - "id": 34, + "id": 35, "legend": { "alignAsTable": true, "avg": false, @@ -2479,7 +2588,7 @@ "x": 0, "y": 85 }, - "id": 35, + "id": 36, "legend": { "alignAsTable": true, "avg": false, @@ -2569,7 +2678,7 @@ "x": 8, "y": 85 }, - "id": 36, + "id": 37, "legend": { "alignAsTable": true, "avg": false, @@ -2659,7 +2768,7 @@ "x": 16, "y": 85 }, - "id": 37, + "id": 38, "legend": { "alignAsTable": true, "avg": false, @@ -2749,7 +2858,7 @@ "x": 0, "y": 93 }, - "id": 38, + "id": 39, "legend": { "alignAsTable": true, "avg": false, @@ -2839,7 +2948,7 @@ "x": 8, "y": 93 }, - "id": 39, + "id": 40, "legend": { "alignAsTable": true, "avg": false, @@ -2929,7 +3038,7 @@ "x": 16, "y": 93 }, - "id": 40, + "id": 41, "legend": { "alignAsTable": true, "avg": false, @@ -3022,7 +3131,7 @@ "x": 0, "y": 101 }, - "id": 41, + "id": 42, "panels": [ { "aliasColors": { }, @@ -3039,7 +3148,7 @@ "x": 0, "y": 102 }, - "id": 42, + "id": 43, "legend": { "alignAsTable": true, "avg": false, @@ -3129,7 +3238,7 @@ "x": 12, "y": 102 }, - "id": 43, + "id": 44, "legend": { "alignAsTable": true, "avg": false, @@ -3219,7 +3328,7 @@ "x": 0, "y": 110 }, - "id": 44, + "id": 45, "legend": { "alignAsTable": true, "avg": false, @@ -3309,7 +3418,7 @@ "x": 8, "y": 110 }, - "id": 45, + "id": 46, "legend": { "alignAsTable": true, "avg": false, @@ -3399,7 +3508,7 @@ "x": 16, "y": 110 }, - "id": 46, + "id": 47, "legend": { "alignAsTable": true, "avg": false, @@ -3492,7 +3601,7 @@ "x": 0, "y": 118 }, - "id": 47, + "id": 48, "panels": [ { "aliasColors": { }, @@ -3509,7 +3618,7 @@ "x": 0, "y": 119 }, - "id": 48, + "id": 49, "legend": { "alignAsTable": true, "avg": false, @@ -3599,7 +3708,7 @@ "x": 12, "y": 119 }, - "id": 49, + "id": 50, "legend": { "alignAsTable": true, "avg": false, @@ -3689,7 +3798,7 @@ "x": 0, "y": 127 }, - "id": 50, + "id": 51, "legend": { "alignAsTable": true, "avg": true, @@ -3779,7 +3888,7 @@ "x": 12, "y": 127 }, - "id": 51, + "id": 52, "legend": { "alignAsTable": true, "avg": true, @@ -3869,7 +3978,7 @@ "x": 0, "y": 135 }, - "id": 52, + "id": 53, "legend": { "alignAsTable": true, "avg": true, @@ -3959,7 +4068,7 @@ "x": 6, "y": 135 }, - "id": 53, + "id": 54, "legend": { "alignAsTable": true, "avg": true, @@ -4049,7 +4158,7 @@ "x": 12, "y": 135 }, - "id": 54, + "id": 55, "legend": { "alignAsTable": true, "avg": true, @@ -4139,7 +4248,7 @@ "x": 18, "y": 135 }, - "id": 55, + "id": 56, "legend": { "alignAsTable": true, "avg": false, @@ -4229,7 +4338,7 @@ "x": 0, "y": 143 }, - "id": 56, + "id": 57, "legend": { "alignAsTable": true, "avg": true, @@ -4319,7 +4428,7 @@ "x": 6, "y": 143 }, - "id": 57, + "id": 58, "legend": { "alignAsTable": true, "avg": true, @@ -4409,7 +4518,7 @@ "x": 12, "y": 143 }, - "id": 58, + "id": 59, "legend": { "alignAsTable": true, "avg": true, @@ -4499,7 +4608,7 @@ "x": 18, "y": 143 }, - "id": 59, + "id": 60, "legend": { "alignAsTable": true, "avg": true, @@ -4589,7 +4698,7 @@ "x": 0, "y": 151 }, - "id": 60, + "id": 61, "legend": { "alignAsTable": true, "avg": false, @@ -4679,7 +4788,7 @@ "x": 6, "y": 151 }, - "id": 61, + "id": 62, "legend": { "alignAsTable": true, "avg": false, @@ -4769,7 +4878,7 @@ "x": 12, "y": 151 }, - "id": 62, + "id": 63, "legend": { "alignAsTable": true, "avg": true, @@ -4859,7 +4968,7 @@ "x": 18, "y": 151 }, - "id": 63, + "id": 64, "legend": { "alignAsTable": true, "avg": true, @@ -4952,7 +5061,7 @@ "x": 0, "y": 159 }, - "id": 64, + "id": 65, "panels": [ { "aliasColors": { }, @@ -4969,7 +5078,7 @@ "x": 0, "y": 160 }, - "id": 65, + "id": 66, "legend": { "alignAsTable": true, "avg": true, @@ -5059,7 +5168,7 @@ "x": 12, "y": 160 }, - "id": 66, + "id": 67, "legend": { "alignAsTable": true, "avg": true, @@ -5152,7 +5261,7 @@ "x": 0, "y": 168 }, - "id": 67, + "id": 68, "panels": [ { "aliasColors": { }, @@ -5169,7 +5278,7 @@ "x": 0, "y": 169 }, - "id": 68, + "id": 69, "legend": { "alignAsTable": true, "avg": true, @@ -5259,7 +5368,7 @@ "x": 12, "y": 169 }, - "id": 69, + "id": 70, "legend": { "alignAsTable": true, "avg": true, @@ -5349,7 +5458,7 @@ "x": 0, "y": 177 }, - "id": 70, + "id": 71, "legend": { "alignAsTable": true, "avg": true, @@ -5439,7 +5548,7 @@ "x": 12, "y": 177 }, - "id": 71, + "id": 72, "legend": { "alignAsTable": true, "avg": true, @@ -5529,7 +5638,7 @@ "x": 0, "y": 185 }, - "id": 72, + "id": 73, "legend": { "alignAsTable": true, "avg": false, @@ -5619,7 +5728,7 @@ "x": 8, "y": 185 }, - "id": 73, + "id": 74, "legend": { "alignAsTable": true, "avg": true, @@ -5709,7 +5818,7 @@ "x": 16, "y": 185 }, - "id": 74, + "id": 75, "legend": { "alignAsTable": true, "avg": true, @@ -5802,7 +5911,7 @@ "x": 0, "y": 193 }, - "id": 75, + "id": 76, "panels": [ { "aliasColors": { }, @@ -5819,7 +5928,7 @@ "x": 0, "y": 194 }, - "id": 76, + "id": 77, "legend": { "alignAsTable": true, "avg": true, @@ -5909,7 +6018,7 @@ "x": 6, "y": 194 }, - "id": 77, + "id": 78, "legend": { "alignAsTable": true, "avg": true, @@ -5999,7 +6108,7 @@ "x": 12, "y": 194 }, - "id": 78, + "id": 79, "legend": { "alignAsTable": true, "avg": true, @@ -6089,7 +6198,7 @@ "x": 18, "y": 194 }, - "id": 79, + "id": 80, "legend": { "alignAsTable": true, "avg": true, @@ -6179,7 +6288,7 @@ "x": 0, "y": 202 }, - "id": 80, + "id": 81, "legend": { "alignAsTable": true, "avg": true, @@ -6269,7 +6378,7 @@ "x": 12, "y": 202 }, - "id": 81, + "id": 82, "legend": { "alignAsTable": true, "avg": true, @@ -6359,7 +6468,7 @@ "x": 0, "y": 210 }, - "id": 82, + "id": 83, "legend": { "alignAsTable": true, "avg": true, @@ -6449,7 +6558,7 @@ "x": 8, "y": 210 }, - "id": 83, + "id": 84, "legend": { "alignAsTable": true, "avg": true, @@ -6539,7 +6648,7 @@ "x": 16, "y": 210 }, - "id": 84, + "id": 85, "legend": { "alignAsTable": true, "avg": true, @@ -6629,7 +6738,7 @@ "x": 0, "y": 218 }, - "id": 85, + "id": 86, "legend": { "alignAsTable": true, "avg": true, @@ -6719,7 +6828,7 @@ "x": 8, "y": 218 }, - "id": 86, + "id": 87, "legend": { "alignAsTable": true, "avg": true, @@ -6809,7 +6918,7 @@ "x": 16, "y": 218 }, - "id": 87, + "id": 88, "legend": { "alignAsTable": true, "avg": true, @@ -6899,7 +7008,7 @@ "x": 0, "y": 226 }, - "id": 88, + "id": 89, "legend": { "alignAsTable": true, "avg": true, @@ -6989,7 +7098,7 @@ "x": 6, "y": 226 }, - "id": 89, + "id": 90, "legend": { "alignAsTable": true, "avg": true, @@ -7079,7 +7188,7 @@ "x": 12, "y": 226 }, - "id": 90, + "id": 91, "legend": { "alignAsTable": true, "avg": true, @@ -7169,7 +7278,7 @@ "x": 18, "y": 226 }, - "id": 91, + "id": 92, "legend": { "alignAsTable": true, "avg": true, @@ -7259,7 +7368,7 @@ "x": 0, "y": 234 }, - "id": 92, + "id": 93, "legend": { "alignAsTable": true, "avg": true, @@ -7349,7 +7458,7 @@ "x": 8, "y": 234 }, - "id": 93, + "id": 94, "legend": { "alignAsTable": true, "avg": true, @@ -7439,7 +7548,7 @@ "x": 16, "y": 234 }, - "id": 94, + "id": 95, "legend": { "alignAsTable": true, "avg": true, @@ -7532,7 +7641,7 @@ "x": 0, "y": 242 }, - "id": 95, + "id": 96, "panels": [ { "aliasColors": { }, @@ -7549,7 +7658,7 @@ "x": 0, "y": 243 }, - "id": 96, + "id": 97, "legend": { "alignAsTable": true, "avg": true, @@ -7639,7 +7748,7 @@ "x": 8, "y": 243 }, - "id": 97, + "id": 98, "legend": { "alignAsTable": true, "avg": true, @@ -7729,7 +7838,7 @@ "x": 16, "y": 243 }, - "id": 98, + "id": 99, "legend": { "alignAsTable": true, "avg": true, @@ -7819,7 +7928,7 @@ "x": 0, "y": 251 }, - "id": 99, + "id": 100, "legend": { "alignAsTable": true, "avg": true, @@ -7909,7 +8018,7 @@ "x": 8, "y": 251 }, - "id": 100, + "id": 101, "legend": { "alignAsTable": true, "avg": true, @@ -7999,7 +8108,7 @@ "x": 16, "y": 251 }, - "id": 101, + "id": 102, "legend": { "alignAsTable": true, "avg": true, @@ -8089,7 +8198,7 @@ "x": 0, "y": 259 }, - "id": 102, + "id": 103, "legend": { "alignAsTable": true, "avg": true, @@ -8179,7 +8288,7 @@ "x": 8, "y": 259 }, - "id": 103, + "id": 104, "legend": { "alignAsTable": true, "avg": true, @@ -8269,7 +8378,7 @@ "x": 16, "y": 259 }, - "id": 104, + "id": 105, "legend": { "alignAsTable": true, "avg": true, @@ -8359,7 +8468,7 @@ "x": 0, "y": 267 }, - "id": 105, + "id": 106, "legend": { "alignAsTable": true, "avg": true, @@ -8449,7 +8558,7 @@ "x": 8, "y": 267 }, - "id": 106, + "id": 107, "legend": { "alignAsTable": true, "avg": true, @@ -8539,7 +8648,7 @@ "x": 16, "y": 267 }, - "id": 107, + "id": 108, "legend": { "alignAsTable": true, "avg": true, diff --git a/tests/Prometheus/dashboard_with_custom_panels_compiled.json b/tests/Prometheus/dashboard_with_custom_panels_compiled.json index 824351f..e8d4ad0 100644 --- a/tests/Prometheus/dashboard_with_custom_panels_compiled.json +++ b/tests/Prometheus/dashboard_with_custom_panels_compiled.json @@ -747,7 +747,7 @@ }, "gridPos": { "h": 8, - "w": 24, + "w": 12, "x": 0, "y": 15 }, @@ -776,6 +776,115 @@ "title": "Tarantool replication status", "type": "timeseries" }, + { + "datasource": "${DS_PROMETHEUS}", + "description": "`master` status means instance is available for read and\nwrite operations. `slave` status means instance is\navailable only for read operations.\n\nPanel works with `metrics >= 0.11.0` and Grafana 8.x.\n", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [ + { + "options": { + "0": { + "color": "green", + "index": 0, + "text": "master" + } + }, + "type": "value" + }, + { + "options": { + "1": { + "color": "yellow", + "index": 0, + "text": "slave" + } + }, + "type": "value" + }, + { + "options": { + "from": 0.001, + "result": { + "index": 0, + "text": "-" + }, + "to": 0.999 + }, + "type": "range" + } + ], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ ] + } + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 15 + }, + "id": 13, + "options": { + "legend": { + "calcs": [ + "last" + ], + "displayMode": "table", + "placement": "right" + }, + "tooltip": { + "mode": "multi" + } + }, + "targets": [ + { + "expr": "tnt_read_only{job=~\"$job\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{alias}}", + "refId": "A" + } + ], + "title": "Tarantool instance status", + "type": "timeseries" + }, { "aliasColors": { }, "bars": false, @@ -790,7 +899,7 @@ "x": 0, "y": 23 }, - "id": 13, + "id": 14, "legend": { "alignAsTable": true, "avg": false, @@ -877,7 +986,7 @@ "x": 12, "y": 23 }, - "id": 14, + "id": 15, "legend": { "alignAsTable": true, "avg": false, @@ -968,7 +1077,7 @@ "x": 0, "y": 31 }, - "id": 15, + "id": 16, "panels": [ { "aliasColors": { }, @@ -985,7 +1094,7 @@ "x": 0, "y": 32 }, - "id": 16, + "id": 17, "legend": { "alignAsTable": true, "avg": true, @@ -1075,7 +1184,7 @@ "x": 8, "y": 32 }, - "id": 17, + "id": 18, "legend": { "alignAsTable": true, "avg": true, @@ -1165,7 +1274,7 @@ "x": 16, "y": 32 }, - "id": 18, + "id": 19, "legend": { "alignAsTable": true, "avg": true, @@ -1255,7 +1364,7 @@ "x": 0, "y": 40 }, - "id": 19, + "id": 20, "legend": { "alignAsTable": true, "avg": true, @@ -1345,7 +1454,7 @@ "x": 8, "y": 40 }, - "id": 20, + "id": 21, "legend": { "alignAsTable": true, "avg": true, @@ -1435,7 +1544,7 @@ "x": 16, "y": 40 }, - "id": 21, + "id": 22, "legend": { "alignAsTable": true, "avg": true, @@ -1528,7 +1637,7 @@ "x": 0, "y": 48 }, - "id": 22, + "id": 23, "panels": [ { "aliasColors": { }, @@ -1545,7 +1654,7 @@ "x": 0, "y": 49 }, - "id": 23, + "id": 24, "legend": { "alignAsTable": true, "avg": true, @@ -1635,7 +1744,7 @@ "x": 8, "y": 49 }, - "id": 24, + "id": 25, "legend": { "alignAsTable": true, "avg": true, @@ -1725,7 +1834,7 @@ "x": 16, "y": 49 }, - "id": 25, + "id": 26, "legend": { "alignAsTable": true, "avg": true, @@ -1815,7 +1924,7 @@ "x": 0, "y": 57 }, - "id": 26, + "id": 27, "legend": { "alignAsTable": true, "avg": true, @@ -1905,7 +2014,7 @@ "x": 12, "y": 57 }, - "id": 27, + "id": 28, "legend": { "alignAsTable": true, "avg": true, @@ -1995,7 +2104,7 @@ "x": 0, "y": 65 }, - "id": 28, + "id": 29, "legend": { "alignAsTable": true, "avg": true, @@ -2085,7 +2194,7 @@ "x": 12, "y": 65 }, - "id": 29, + "id": 30, "legend": { "alignAsTable": true, "avg": true, @@ -2178,7 +2287,7 @@ "x": 0, "y": 73 }, - "id": 30, + "id": 31, "panels": [ { "content": "`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, 50% < `items_used_ratio` < 90% – your memory is highly fragmented. See [docs](https://www.tarantool.io/en/doc/1.10/reference/reference_lua/box_slab/#lua-function.box.slab.info) for more info.\n\n`quota_used_ratio` > 90%, `arena_used_ratio` > 90%, `items_used_ratio` > 90% – you are running out of memory. You should consider increasing Tarantool’s memory limit (*box.cfg.memtx_memory*).\n", @@ -2189,7 +2298,7 @@ "x": 0, "y": 74 }, - "id": 31, + "id": 32, "mode": "markdown", "title": "Slab allocator monitoring information", "type": "text" @@ -2209,7 +2318,7 @@ "x": 0, "y": 77 }, - "id": 32, + "id": 33, "legend": { "alignAsTable": true, "avg": false, @@ -2299,7 +2408,7 @@ "x": 8, "y": 77 }, - "id": 33, + "id": 34, "legend": { "alignAsTable": true, "avg": false, @@ -2389,7 +2498,7 @@ "x": 16, "y": 77 }, - "id": 34, + "id": 35, "legend": { "alignAsTable": true, "avg": false, @@ -2479,7 +2588,7 @@ "x": 0, "y": 85 }, - "id": 35, + "id": 36, "legend": { "alignAsTable": true, "avg": false, @@ -2569,7 +2678,7 @@ "x": 8, "y": 85 }, - "id": 36, + "id": 37, "legend": { "alignAsTable": true, "avg": false, @@ -2659,7 +2768,7 @@ "x": 16, "y": 85 }, - "id": 37, + "id": 38, "legend": { "alignAsTable": true, "avg": false, @@ -2749,7 +2858,7 @@ "x": 0, "y": 93 }, - "id": 38, + "id": 39, "legend": { "alignAsTable": true, "avg": false, @@ -2839,7 +2948,7 @@ "x": 8, "y": 93 }, - "id": 39, + "id": 40, "legend": { "alignAsTable": true, "avg": false, @@ -2929,7 +3038,7 @@ "x": 16, "y": 93 }, - "id": 40, + "id": 41, "legend": { "alignAsTable": true, "avg": false, @@ -3022,7 +3131,7 @@ "x": 0, "y": 101 }, - "id": 41, + "id": 42, "panels": [ { "aliasColors": { }, @@ -3039,7 +3148,7 @@ "x": 0, "y": 102 }, - "id": 42, + "id": 43, "legend": { "alignAsTable": true, "avg": false, @@ -3129,7 +3238,7 @@ "x": 12, "y": 102 }, - "id": 43, + "id": 44, "legend": { "alignAsTable": true, "avg": false, @@ -3219,7 +3328,7 @@ "x": 0, "y": 110 }, - "id": 44, + "id": 45, "legend": { "alignAsTable": true, "avg": false, @@ -3309,7 +3418,7 @@ "x": 8, "y": 110 }, - "id": 45, + "id": 46, "legend": { "alignAsTable": true, "avg": false, @@ -3399,7 +3508,7 @@ "x": 16, "y": 110 }, - "id": 46, + "id": 47, "legend": { "alignAsTable": true, "avg": false, @@ -3492,7 +3601,7 @@ "x": 0, "y": 118 }, - "id": 47, + "id": 48, "panels": [ { "aliasColors": { }, @@ -3509,7 +3618,7 @@ "x": 0, "y": 119 }, - "id": 48, + "id": 49, "legend": { "alignAsTable": true, "avg": false, @@ -3599,7 +3708,7 @@ "x": 12, "y": 119 }, - "id": 49, + "id": 50, "legend": { "alignAsTable": true, "avg": false, @@ -3689,7 +3798,7 @@ "x": 0, "y": 127 }, - "id": 50, + "id": 51, "legend": { "alignAsTable": true, "avg": true, @@ -3779,7 +3888,7 @@ "x": 12, "y": 127 }, - "id": 51, + "id": 52, "legend": { "alignAsTable": true, "avg": true, @@ -3869,7 +3978,7 @@ "x": 0, "y": 135 }, - "id": 52, + "id": 53, "legend": { "alignAsTable": true, "avg": true, @@ -3959,7 +4068,7 @@ "x": 6, "y": 135 }, - "id": 53, + "id": 54, "legend": { "alignAsTable": true, "avg": true, @@ -4049,7 +4158,7 @@ "x": 12, "y": 135 }, - "id": 54, + "id": 55, "legend": { "alignAsTable": true, "avg": true, @@ -4139,7 +4248,7 @@ "x": 18, "y": 135 }, - "id": 55, + "id": 56, "legend": { "alignAsTable": true, "avg": false, @@ -4229,7 +4338,7 @@ "x": 0, "y": 143 }, - "id": 56, + "id": 57, "legend": { "alignAsTable": true, "avg": true, @@ -4319,7 +4428,7 @@ "x": 6, "y": 143 }, - "id": 57, + "id": 58, "legend": { "alignAsTable": true, "avg": true, @@ -4409,7 +4518,7 @@ "x": 12, "y": 143 }, - "id": 58, + "id": 59, "legend": { "alignAsTable": true, "avg": true, @@ -4499,7 +4608,7 @@ "x": 18, "y": 143 }, - "id": 59, + "id": 60, "legend": { "alignAsTable": true, "avg": true, @@ -4589,7 +4698,7 @@ "x": 0, "y": 151 }, - "id": 60, + "id": 61, "legend": { "alignAsTable": true, "avg": false, @@ -4679,7 +4788,7 @@ "x": 6, "y": 151 }, - "id": 61, + "id": 62, "legend": { "alignAsTable": true, "avg": false, @@ -4769,7 +4878,7 @@ "x": 12, "y": 151 }, - "id": 62, + "id": 63, "legend": { "alignAsTable": true, "avg": true, @@ -4859,7 +4968,7 @@ "x": 18, "y": 151 }, - "id": 63, + "id": 64, "legend": { "alignAsTable": true, "avg": true, @@ -4952,7 +5061,7 @@ "x": 0, "y": 159 }, - "id": 64, + "id": 65, "panels": [ { "aliasColors": { }, @@ -4969,7 +5078,7 @@ "x": 0, "y": 160 }, - "id": 65, + "id": 66, "legend": { "alignAsTable": true, "avg": true, @@ -5059,7 +5168,7 @@ "x": 12, "y": 160 }, - "id": 66, + "id": 67, "legend": { "alignAsTable": true, "avg": true, @@ -5152,7 +5261,7 @@ "x": 0, "y": 168 }, - "id": 67, + "id": 68, "panels": [ { "aliasColors": { }, @@ -5169,7 +5278,7 @@ "x": 0, "y": 169 }, - "id": 68, + "id": 69, "legend": { "alignAsTable": true, "avg": true, @@ -5259,7 +5368,7 @@ "x": 12, "y": 169 }, - "id": 69, + "id": 70, "legend": { "alignAsTable": true, "avg": true, @@ -5349,7 +5458,7 @@ "x": 0, "y": 177 }, - "id": 70, + "id": 71, "legend": { "alignAsTable": true, "avg": true, @@ -5439,7 +5548,7 @@ "x": 12, "y": 177 }, - "id": 71, + "id": 72, "legend": { "alignAsTable": true, "avg": true, @@ -5529,7 +5638,7 @@ "x": 0, "y": 185 }, - "id": 72, + "id": 73, "legend": { "alignAsTable": true, "avg": false, @@ -5619,7 +5728,7 @@ "x": 8, "y": 185 }, - "id": 73, + "id": 74, "legend": { "alignAsTable": true, "avg": true, @@ -5709,7 +5818,7 @@ "x": 16, "y": 185 }, - "id": 74, + "id": 75, "legend": { "alignAsTable": true, "avg": true, @@ -5802,7 +5911,7 @@ "x": 0, "y": 193 }, - "id": 75, + "id": 76, "panels": [ { "aliasColors": { }, @@ -5819,7 +5928,7 @@ "x": 0, "y": 194 }, - "id": 76, + "id": 77, "legend": { "alignAsTable": true, "avg": true, @@ -5909,7 +6018,7 @@ "x": 6, "y": 194 }, - "id": 77, + "id": 78, "legend": { "alignAsTable": true, "avg": true, @@ -5999,7 +6108,7 @@ "x": 12, "y": 194 }, - "id": 78, + "id": 79, "legend": { "alignAsTable": true, "avg": true, @@ -6089,7 +6198,7 @@ "x": 18, "y": 194 }, - "id": 79, + "id": 80, "legend": { "alignAsTable": true, "avg": true, @@ -6179,7 +6288,7 @@ "x": 0, "y": 202 }, - "id": 80, + "id": 81, "legend": { "alignAsTable": true, "avg": true, @@ -6269,7 +6378,7 @@ "x": 12, "y": 202 }, - "id": 81, + "id": 82, "legend": { "alignAsTable": true, "avg": true, @@ -6359,7 +6468,7 @@ "x": 0, "y": 210 }, - "id": 82, + "id": 83, "legend": { "alignAsTable": true, "avg": true, @@ -6449,7 +6558,7 @@ "x": 8, "y": 210 }, - "id": 83, + "id": 84, "legend": { "alignAsTable": true, "avg": true, @@ -6539,7 +6648,7 @@ "x": 16, "y": 210 }, - "id": 84, + "id": 85, "legend": { "alignAsTable": true, "avg": true, @@ -6629,7 +6738,7 @@ "x": 0, "y": 218 }, - "id": 85, + "id": 86, "legend": { "alignAsTable": true, "avg": true, @@ -6719,7 +6828,7 @@ "x": 8, "y": 218 }, - "id": 86, + "id": 87, "legend": { "alignAsTable": true, "avg": true, @@ -6809,7 +6918,7 @@ "x": 16, "y": 218 }, - "id": 87, + "id": 88, "legend": { "alignAsTable": true, "avg": true, @@ -6899,7 +7008,7 @@ "x": 0, "y": 226 }, - "id": 88, + "id": 89, "legend": { "alignAsTable": true, "avg": true, @@ -6989,7 +7098,7 @@ "x": 6, "y": 226 }, - "id": 89, + "id": 90, "legend": { "alignAsTable": true, "avg": true, @@ -7079,7 +7188,7 @@ "x": 12, "y": 226 }, - "id": 90, + "id": 91, "legend": { "alignAsTable": true, "avg": true, @@ -7169,7 +7278,7 @@ "x": 18, "y": 226 }, - "id": 91, + "id": 92, "legend": { "alignAsTable": true, "avg": true, @@ -7259,7 +7368,7 @@ "x": 0, "y": 234 }, - "id": 92, + "id": 93, "legend": { "alignAsTable": true, "avg": true, @@ -7349,7 +7458,7 @@ "x": 8, "y": 234 }, - "id": 93, + "id": 94, "legend": { "alignAsTable": true, "avg": true, @@ -7439,7 +7548,7 @@ "x": 16, "y": 234 }, - "id": 94, + "id": 95, "legend": { "alignAsTable": true, "avg": true, @@ -7532,7 +7641,7 @@ "x": 0, "y": 242 }, - "id": 95, + "id": 96, "panels": [ { "aliasColors": { }, @@ -7549,7 +7658,7 @@ "x": 0, "y": 243 }, - "id": 96, + "id": 97, "legend": { "alignAsTable": true, "avg": true, @@ -7639,7 +7748,7 @@ "x": 8, "y": 243 }, - "id": 97, + "id": 98, "legend": { "alignAsTable": true, "avg": true, @@ -7729,7 +7838,7 @@ "x": 16, "y": 243 }, - "id": 98, + "id": 99, "legend": { "alignAsTable": true, "avg": true, @@ -7819,7 +7928,7 @@ "x": 0, "y": 251 }, - "id": 99, + "id": 100, "legend": { "alignAsTable": true, "avg": true, @@ -7909,7 +8018,7 @@ "x": 8, "y": 251 }, - "id": 100, + "id": 101, "legend": { "alignAsTable": true, "avg": true, @@ -7999,7 +8108,7 @@ "x": 16, "y": 251 }, - "id": 101, + "id": 102, "legend": { "alignAsTable": true, "avg": true, @@ -8089,7 +8198,7 @@ "x": 0, "y": 259 }, - "id": 102, + "id": 103, "legend": { "alignAsTable": true, "avg": true, @@ -8179,7 +8288,7 @@ "x": 8, "y": 259 }, - "id": 103, + "id": 104, "legend": { "alignAsTable": true, "avg": true, @@ -8269,7 +8378,7 @@ "x": 16, "y": 259 }, - "id": 104, + "id": 105, "legend": { "alignAsTable": true, "avg": true, @@ -8359,7 +8468,7 @@ "x": 0, "y": 267 }, - "id": 105, + "id": 106, "legend": { "alignAsTable": true, "avg": true, @@ -8449,7 +8558,7 @@ "x": 8, "y": 267 }, - "id": 106, + "id": 107, "legend": { "alignAsTable": true, "avg": true, @@ -8539,7 +8648,7 @@ "x": 16, "y": 267 }, - "id": 107, + "id": 108, "legend": { "alignAsTable": true, "avg": true, @@ -8632,7 +8741,7 @@ "x": 0, "y": 275 }, - "id": 108, + "id": 109, "panels": [ { "aliasColors": { }, @@ -8649,7 +8758,7 @@ "x": 0, "y": 276 }, - "id": 109, + "id": 110, "legend": { "alignAsTable": true, "avg": true, @@ -8739,7 +8848,7 @@ "x": 0, "y": 282 }, - "id": 110, + "id": 111, "legend": { "alignAsTable": true, "avg": true, @@ -8829,7 +8938,7 @@ "x": 12, "y": 282 }, - "id": 111, + "id": 112, "legend": { "alignAsTable": true, "avg": true,