diff options
Diffstat (limited to 'monitoring/ceph-mixin/dashboards/rbd.libsonnet')
-rw-r--r-- | monitoring/ceph-mixin/dashboards/rbd.libsonnet | 228 |
1 files changed, 186 insertions, 42 deletions
diff --git a/monitoring/ceph-mixin/dashboards/rbd.libsonnet b/monitoring/ceph-mixin/dashboards/rbd.libsonnet index 0eca5a877..36cd3ff1b 100644 --- a/monitoring/ceph-mixin/dashboards/rbd.libsonnet +++ b/monitoring/ceph-mixin/dashboards/rbd.libsonnet @@ -22,7 +22,7 @@ local u = import 'utils.libsonnet'; '{{pool}} Write'), $.addTargetSchema(expr2, '{{pool}} Read'), ] - ) + { gridPos: { x: x, y: y, w: w, h: h } }; + ) + { type: 'timeseries' } + { fieldConfig: { defaults: { unit: formatY1, custom: { fillOpacity: 8, showPoints: 'never' } } } } + { gridPos: { x: x, y: y, w: w, h: h } }; $.dashboardSchema( 'RBD Details', @@ -133,7 +133,7 @@ local u = import 'utils.libsonnet'; $.graphPanelSchema({}, title, '', - 'null', + 'null as zero', false, formatY1, 'short', @@ -149,7 +149,7 @@ local u = import 'utils.libsonnet'; $.addTargetSchema(expr2, legendFormat2), ] - ) + { gridPos: { x: x, y: y, w: w, h: h } }; + ) + { type: 'timeseries' } + { fieldConfig: { defaults: { unit: formatY1, custom: { fillOpacity: 8, showPoints: 'never' } } } } + { gridPos: { x: x, y: y, w: w, h: h } }; $.dashboardSchema( 'RBD Overview', @@ -240,20 +240,68 @@ local u = import 'utils.libsonnet'; 8, 7 ), - $.addTableSchema( - '$datasource', - '', - { col: 3, desc: true }, - [ - $.overviewStyle('Pool', 'pool', 'string', 'short'), - $.overviewStyle('Image', 'image', 'string', 'short'), - $.overviewStyle('IOPS', 'Value', 'number', 'iops'), - $.overviewStyle('', '/.*/', 'hidden', 'short'), + + $.addTableExtended( + datasource='${datasource}', + title='Highest IOPS', + description='RBD per-image IO statistics are disabled by default.\n\nPlease refer to https://docs.ceph.com/en/latest/mgr/prometheus/#rbd-io-statistics for information about how to enable those optionally.', + gridPosition={ h: 7, w: 8, x: 0, y: 7 }, + options={ + footer: { + fields: '', + reducer: ['sum'], + countRows: false, + enablePagination: false, + show: false, + }, + frameIndex: 1, + showHeader: true, + }, + custom={ align: 'null', cellOptions: { type: 'auto' }, filterable: true, inspect: false }, + thresholds={ + mode: 'absolute', + steps: [ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ], + }, + overrides=[ + { + matcher: { id: 'byName', options: 'pool' }, + properties: [ + { id: 'displayName', value: 'Pool' }, + { id: 'unit', value: 'short' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, + { + matcher: { id: 'byName', options: 'image' }, + properties: [ + { id: 'displayName', value: 'Image' }, + { id: 'unit', value: 'short' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, + { + matcher: { id: 'byName', options: 'Value' }, + properties: [ + { id: 'displayName', value: 'IOPS' }, + { id: 'unit', value: 'iops' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, ], - 'Highest IOPS', - 'table' + pluginVersion='10.4.0' ) - .addTarget( + .addTransformations([ + { + id: 'merge', + options: { reducers: [] }, + }, + ]).addTarget( $.addTargetSchema( ||| topk(10, @@ -270,21 +318,69 @@ local u = import 'utils.libsonnet'; 1, true ) - ) + { gridPos: { x: 0, y: 7, w: 8, h: 7 } }, - $.addTableSchema( - '$datasource', - '', - { col: 3, desc: true }, - [ - $.overviewStyle('Pool', 'pool', 'string', 'short'), - $.overviewStyle('Image', 'image', 'string', 'short'), - $.overviewStyle('Throughput', 'Value', 'number', 'Bps'), - $.overviewStyle('', '/.*/', 'hidden', 'short'), + ), + + $.addTableExtended( + datasource='${datasource}', + title='Highest Throughput', + description='RBD per-image IO statistics are disabled by default.\n\nPlease refer to https://docs.ceph.com/en/latest/mgr/prometheus/#rbd-io-statistics for information about how to enable those optionally.', + gridPosition={ h: 7, w: 8, x: 8, y: 7 }, + options={ + footer: { + fields: '', + reducer: ['sum'], + countRows: false, + enablePagination: false, + show: false, + }, + frameIndex: 1, + showHeader: true, + }, + custom={ align: 'null', cellOptions: { type: 'auto' }, filterable: true, inspect: false }, + thresholds={ + mode: 'absolute', + steps: [ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ], + }, + overrides=[ + { + matcher: { id: 'byName', options: 'pool' }, + properties: [ + { id: 'displayName', value: 'Pool' }, + { id: 'unit', value: 'short' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, + { + matcher: { id: 'byName', options: 'image' }, + properties: [ + { id: 'displayName', value: 'Image' }, + { id: 'unit', value: 'short' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, + { + matcher: { id: 'byName', options: 'Value' }, + properties: [ + { id: 'displayName', value: 'Throughput' }, + { id: 'unit', value: 'Bps' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, ], - 'Highest Throughput', - 'table' + pluginVersion='10.4.0' ) - .addTarget( + .addTransformations([ + { + id: 'merge', + options: { reducers: [] }, + }, + ]).addTarget( $.addTargetSchema( ||| topk(10, @@ -301,21 +397,69 @@ local u = import 'utils.libsonnet'; 1, true ) - ) + { gridPos: { x: 8, y: 7, w: 8, h: 7 } }, - $.addTableSchema( - '$datasource', - '', - { col: 3, desc: true }, - [ - $.overviewStyle('Pool', 'pool', 'string', 'short'), - $.overviewStyle('Image', 'image', 'string', 'short'), - $.overviewStyle('Latency', 'Value', 'number', 'ns'), - $.overviewStyle('', '/.*/', 'hidden', 'short'), + ), + + $.addTableExtended( + datasource='${datasource}', + title='Highest Latency', + description='RBD per-image IO statistics are disabled by default.\n\nPlease refer to https://docs.ceph.com/en/latest/mgr/prometheus/#rbd-io-statistics for information about how to enable those optionally.', + gridPosition={ h: 7, w: 8, x: 16, y: 7 }, + options={ + footer: { + fields: '', + reducer: ['sum'], + countRows: false, + enablePagination: false, + show: false, + }, + frameIndex: 1, + showHeader: true, + }, + custom={ align: 'null', cellOptions: { type: 'auto' }, filterable: true, inspect: false }, + thresholds={ + mode: 'absolute', + steps: [ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ], + }, + overrides=[ + { + matcher: { id: 'byName', options: 'pool' }, + properties: [ + { id: 'displayName', value: 'Pool' }, + { id: 'unit', value: 'short' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, + { + matcher: { id: 'byName', options: 'image' }, + properties: [ + { id: 'displayName', value: 'Image' }, + { id: 'unit', value: 'short' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, + { + matcher: { id: 'byName', options: 'Value' }, + properties: [ + { id: 'displayName', value: 'Latency' }, + { id: 'unit', value: 'ns' }, + { id: 'decimals', value: 2 }, + { id: 'custom.align', value: null }, + ], + }, ], - 'Highest Latency', - 'table' + pluginVersion='10.4.0' ) - .addTarget( + .addTransformations([ + { + id: 'merge', + options: { reducers: [] }, + }, + ]).addTarget( $.addTargetSchema( ||| topk(10, @@ -332,6 +476,6 @@ local u = import 'utils.libsonnet'; 1, true ) - ) + { gridPos: { x: 16, y: 7, w: 8, h: 7 } }, + ), ]), } |