From 038acfd7b46d5cbb89f95e819e75e4abab51664b Mon Sep 17 00:00:00 2001 From: Vallari Agrawal Date: Fri, 21 Mar 2025 13:29:34 +0530 Subject: [PATCH] monitoring: Add nvmeof performance grafana dashboard Signed-off-by: Vallari Agrawal --- monitoring/ceph-mixin/dashboards.libsonnet | 1 + .../ceph-nvmeof-performance.libsonnet | 430 +++++++ .../ceph-nvmeof-performance.json | 1072 +++++++++++++++++ 3 files changed, 1503 insertions(+) create mode 100644 monitoring/ceph-mixin/dashboards/ceph-nvmeof-performance.libsonnet create mode 100644 monitoring/ceph-mixin/dashboards_out/ceph-nvmeof-performance.json diff --git a/monitoring/ceph-mixin/dashboards.libsonnet b/monitoring/ceph-mixin/dashboards.libsonnet index 75f4be40257..2362d7943e0 100644 --- a/monitoring/ceph-mixin/dashboards.libsonnet +++ b/monitoring/ceph-mixin/dashboards.libsonnet @@ -11,5 +11,6 @@ (import 'dashboards/multi-cluster.libsonnet') + (import 'dashboards/smb-overview.libsonnet') + (import 'dashboards/ceph-nvmeof.libsonnet') + + (import 'dashboards/ceph-nvmeof-performance.libsonnet') + { _config:: $._config }, } diff --git a/monitoring/ceph-mixin/dashboards/ceph-nvmeof-performance.libsonnet b/monitoring/ceph-mixin/dashboards/ceph-nvmeof-performance.libsonnet new file mode 100644 index 00000000000..a79456db7fb --- /dev/null +++ b/monitoring/ceph-mixin/dashboards/ceph-nvmeof-performance.libsonnet @@ -0,0 +1,430 @@ +local g = import 'grafonnet/grafana.libsonnet'; + + +(import 'utils.libsonnet') { + 'ceph-nvmeof-performance.json': $.dashboardSchema( + 'Ceph NVMe-oF Gateways - Performance', + 'Ceph NVMe-oF gateways overview', + 'feeuv1dno43r4deed', + 'now-15m', + '10s', + '39', + $._config.dashboardTags, + '' + ) + .addAnnotation( + $.addAnnotationSchema( + 1, + '-- Grafana --', + true, + true, + 'rgba(0, 211, 255, 1)', + 'Annotations & Alerts', + 'dashboard' + ) + ).addLink( + $.addLinkSchema( + asDropdown=true, + icon='external link', + includeVars=true, + keepTime=true, + tags=[], + targetBlank=false, + title='Browse Dashboards', + tooltip='', + type='dashboards', + url='' + ), + ).addTemplate( + g.template.datasource('datasource', 'prometheus', 'default', label='Data Source') + ).addTemplate( + $.addTemplateSchema( + name='cluster', + datasource='$datasource', + query='label_values(ceph_health_status, cluster)', + refresh=1, + includeAll=false, + sort=1, + label='cluster', + regex='(.*)', + multi=false, + current={ selected: false, text: '840834cc-05a3-11f0-baba-0200229b9601', value: '840834cc-05a3-11f0-baba-0200229b9601' } + ) + ).addTemplate( + $.addTemplateSchema( + name='group', + datasource='$datasource', + query='label_values(ceph_nvmeof_gateway_info,group)', + refresh=2, + includeAll=true, + sort=0, + label='Gateway Group', + regex='', + multi=false, + current={ selected: false, text: 'All', value: '$__all' } + ) + ).addTemplate( + $.addTemplateSchema( + name='gateway', + datasource='$datasource', + query="label_values(ceph_nvmeof_gateway_info{group=~'$group'},hostname)", + refresh=2, + includeAll=true, + sort=0, + label='Gateway Hostname', + regex='', + multi=false, + current={ selected: false, text: 'All', value: '$__all' } + ) + ).addTemplate( + $.addTemplateSchema( + name='subsystem', + datasource='$datasource', + query="label_values(ceph_nvmeof_subsystem_metadata{group=~'$group'},nqn)", + refresh=1, + includeAll=true, + sort=0, + label='Subsystem NQN', + regex='', + multi=false, + current={ selected: false, text: 'All', value: '$__all' } + ) + ).addPanels([ + $.addRowSchema(collapse=false, showTitle=true, title='Performance') + { gridPos: { x: 0, y: 0, w: 24, h: 1 } }, + + $.timeSeriesPanel( + title='AVG Reactor CPU Usage by Gateway', + description='', + gridPosition={ x: 0, y: 1, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='percentunit', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="avg by(instance) (rate(ceph_nvmeof_reactor_seconds_total{mode='busy',instance=~'$gateway'}[1m]))", + format='', + instant=false, + legendFormat='{{name}}', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='Reactor Threads CPU Usage : $gateway', + description='', + gridPosition={ x: 8, y: 1, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='percentunit', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="avg by (instance) (rate(ceph_nvmeof_reactor_seconds_total{mode='busy', instance=~'$gateway.*'}[1m]))\n", + format='', + instant=false, + legendFormat='{{name}}', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='AVG I/O Latency', + description='', + gridPosition={ x: 16, y: 1, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='s', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="avg((rate(ceph_nvmeof_bdev_read_seconds_total{instance=~'$gateway'}[30s]) / rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[30s])) > 0)\n", + format='time_series', + instant=false, + legendFormat='Reads', + range=true, + datasource='$datasource', + ) + ) + .addTarget( + $.addTargetSchema( + expr="avg((rate(ceph_nvmeof_bdev_write_seconds_total{instance=~'$gateway'}[30s]) / rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[30s])) > 0)", + format='time_series', + instant=false, + legendFormat='Writes', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='IOPS by Gateway', + description='', + gridPosition={ x: 0, y: 9, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='locale', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="sum by(instance) (rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[1m]))", + format='time_series', + instant=false, + legendFormat='__auto', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='IOPS by NVMe-oF Subsystem', + description='', + gridPosition={ x: 8, y: 9, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='locale', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + ]) + .addTarget( + $.addTargetSchema( + expr="\nsum by(nqn) ((rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_subsystem_namespace_metadata{instance=~'$gateway'})", + format='time_series', + instant=false, + legendFormat='__auto', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='TOP 5 - IOPS by device for $subsystem', + description='', + gridPosition={ x: 16, y: 9, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='locale', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="topk(5, (sum by(pool_name, rbd_name) (((rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_bdev_metadata{instance=~'$gateway'}) * on(instance, bdev_name) group_left(nqn) ceph_nvmeof_subsystem_namespace_metadata{nqn=~'$subsystem',instance=~'$gateway'})))", + format='time_series', + instant=false, + legendFormat='{{pool_name}}/{{rbd_name}}', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='Throughput by Gateway', + description='', + gridPosition={ x: 0, y: 17, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='binBps', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='normal', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="sum by(instance) (rate(ceph_nvmeof_bdev_read_bytes_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_written_bytes_total{instance=~'$gateway'}[1m]))", + format='time_series', + instant=false, + legendFormat='{{name}}', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='Throughput by NVMe-oF Subsystem', + description='', + gridPosition={ x: 8, y: 17, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='binBps', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + ]) + .addTarget( + $.addTargetSchema( + expr="\nsum by(nqn) ((rate(ceph_nvmeof_bdev_read_bytes_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_written_bytes_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_subsystem_namespace_metadata{instance=~'$gateway'})", + format='time_series', + instant=false, + legendFormat='__auto', + range=true, + datasource='$datasource', + ) + ), + + $.timeSeriesPanel( + title='TOP 5 - Throughput by device for $subsystem', + description='', + gridPosition={ x: 16, y: 17, w: 8, h: 8 }, + lineInterpolation='linear', + lineWidth=1, + drawStyle='line', + axisPlacement='auto', + datasource='$datasource', + pointSize=5, + showPoints='auto', + unit='binBps', + displayMode='list', + showLegend=true, + placement='bottom', + tooltip={ maxHeight: 600, mode: 'multi', sort: 'desc' }, + stackingMode='none', + spanNulls=false, + decimals=null, + thresholdsMode='absolute', + noValue=null, + ).addThresholds([ + { color: 'green', value: null }, + { color: 'red', value: 80 }, + ]) + .addTarget( + $.addTargetSchema( + expr="topk(5, (sum by(pool_name, rbd_name) (((rate(ceph_nvmeof_bdev_read_bytes_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_written_bytes_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_bdev_metadata{instance=~'$gateway'}) * on(instance, bdev_name) group_left(nqn) ceph_nvmeof_subsystem_namespace_metadata{nqn=~'$subsystem',instance=~'$gateway'})))", + format='time_series', + instant=false, + legendFormat='{{name}}', + range=true, + datasource='$datasource', + ) + ), + + ]), + + // end +} diff --git a/monitoring/ceph-mixin/dashboards_out/ceph-nvmeof-performance.json b/monitoring/ceph-mixin/dashboards_out/ceph-nvmeof-performance.json new file mode 100644 index 00000000000..9ea9f21ac98 --- /dev/null +++ b/monitoring/ceph-mixin/dashboards_out/ceph-nvmeof-performance.json @@ -0,0 +1,1072 @@ +{ + "__inputs": [ ], + "__requires": [ ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "showIn": 0, + "tags": [ ], + "type": "dashboard" + } + ] + }, + "description": "Ceph NVMe-oF gateways overview", + "editable": false, + "gnetId": null, + "graphTooltip": 0, + "hideControls": false, + "id": null, + "links": [ + { + "asDropdown": true, + "icon": "external link", + "includeVars": true, + "keepTime": true, + "tags": [ ], + "targetBlank": false, + "title": "Browse Dashboards", + "tooltip": "", + "type": "dashboards", + "url": "" + } + ], + "panels": [ + { + "collapse": false, + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 2, + "panels": [ ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Performance", + "titleSize": "h6", + "type": "row" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 1 + }, + "id": 3, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "avg by(instance) (rate(ceph_nvmeof_reactor_seconds_total{mode='busy',instance=~'$gateway'}[1m]))", + "format": "", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "AVG Reactor CPU Usage by Gateway", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 1 + }, + "id": 4, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "avg by (instance) (rate(ceph_nvmeof_reactor_seconds_total{mode='busy', instance=~'$gateway.*'}[1m]))\n", + "format": "", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "Reactor Threads CPU Usage : $gateway", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 1 + }, + "id": 5, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "avg((rate(ceph_nvmeof_bdev_read_seconds_total{instance=~'$gateway'}[30s]) / rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[30s])) > 0)\n", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "Reads", + "range": true, + "refId": "A" + }, + { + "datasource": "$datasource", + "expr": "avg((rate(ceph_nvmeof_bdev_write_seconds_total{instance=~'$gateway'}[30s]) / rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[30s])) > 0)", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "Writes", + "range": true, + "refId": "B" + } + ], + "title": "AVG I/O Latency", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "locale" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 9 + }, + "id": 6, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "sum by(instance) (rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[1m]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "IOPS by Gateway", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 9 + }, + "id": 7, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "\nsum by(nqn) ((rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_subsystem_namespace_metadata{instance=~'$gateway'})", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "IOPS by NVMe-oF Subsystem", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "locale" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 9 + }, + "id": 8, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "topk(5, (sum by(pool_name, rbd_name) (((rate(ceph_nvmeof_bdev_reads_completed_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_writes_completed_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_bdev_metadata{instance=~'$gateway'}) * on(instance, bdev_name) group_left(nqn) ceph_nvmeof_subsystem_namespace_metadata{nqn=~'$subsystem',instance=~'$gateway'})))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{pool_name}}/{{rbd_name}}", + "range": true, + "refId": "A" + } + ], + "title": "TOP 5 - IOPS by device for $subsystem", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 17 + }, + "id": 9, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "sum by(instance) (rate(ceph_nvmeof_bdev_read_bytes_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_written_bytes_total{instance=~'$gateway'}[1m]))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "Throughput by Gateway", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "binBps" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 17 + }, + "id": 10, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "\nsum by(nqn) ((rate(ceph_nvmeof_bdev_read_bytes_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_written_bytes_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_subsystem_namespace_metadata{instance=~'$gateway'})", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Throughput by NVMe-oF Subsystem", + "type": "timeseries" + }, + { + "datasource": "$datasource", + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [ ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 17 + }, + "id": 11, + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.1.3", + "seriesOverrides": [ ], + "targets": [ + { + "datasource": "$datasource", + "expr": "topk(5, (sum by(pool_name, rbd_name) (((rate(ceph_nvmeof_bdev_read_bytes_total{instance=~'$gateway'}[1m]) + rate(ceph_nvmeof_bdev_written_bytes_total{instance=~'$gateway'}[1m])) * on(instance,bdev_name) group_right ceph_nvmeof_bdev_metadata{instance=~'$gateway'}) * on(instance, bdev_name) group_left(nqn) ceph_nvmeof_subsystem_namespace_metadata{nqn=~'$subsystem',instance=~'$gateway'})))", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{name}}", + "range": true, + "refId": "A" + } + ], + "title": "TOP 5 - Throughput by device for $subsystem", + "type": "timeseries" + } + ], + "refresh": "10s", + "rows": [ ], + "schemaVersion": "39", + "style": "dark", + "tags": [ + "ceph-mixin" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "hide": 0, + "label": "Data Source", + "name": "datasource", + "options": [ ], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": null, + "current": { + "text": { + "selected": false, + "text": "840834cc-05a3-11f0-baba-0200229b9601", + "value": "840834cc-05a3-11f0-baba-0200229b9601" + }, + "value": { + "selected": false, + "text": "840834cc-05a3-11f0-baba-0200229b9601", + "value": "840834cc-05a3-11f0-baba-0200229b9601" + } + }, + "datasource": "$datasource", + "hide": 0, + "includeAll": false, + "label": "cluster", + "multi": false, + "name": "cluster", + "options": [ ], + "query": "label_values(ceph_health_status, cluster)", + "refresh": 1, + "regex": "(.*)", + "sort": 1, + "tagValuesQuery": "", + "tags": [ ], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "text": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "value": { + "selected": false, + "text": "All", + "value": "$__all" + } + }, + "datasource": "$datasource", + "hide": 0, + "includeAll": true, + "label": "Gateway Group", + "multi": false, + "name": "group", + "options": [ ], + "query": "label_values(ceph_nvmeof_gateway_info,group)", + "refresh": 2, + "regex": "", + "sort": 0, + "tagValuesQuery": "", + "tags": [ ], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "text": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "value": { + "selected": false, + "text": "All", + "value": "$__all" + } + }, + "datasource": "$datasource", + "hide": 0, + "includeAll": true, + "label": "Gateway Hostname", + "multi": false, + "name": "gateway", + "options": [ ], + "query": "label_values(ceph_nvmeof_gateway_info{group=~'$group'},hostname)", + "refresh": 2, + "regex": "", + "sort": 0, + "tagValuesQuery": "", + "tags": [ ], + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": { + "text": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "value": { + "selected": false, + "text": "All", + "value": "$__all" + } + }, + "datasource": "$datasource", + "hide": 0, + "includeAll": true, + "label": "Subsystem NQN", + "multi": false, + "name": "subsystem", + "options": [ ], + "query": "label_values(ceph_nvmeof_subsystem_metadata{group=~'$group'},nqn)", + "refresh": 1, + "regex": "", + "sort": 0, + "tagValuesQuery": "", + "tags": [ ], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-15m", + "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": "Ceph NVMe-oF Gateways - Performance", + "uid": "feeuv1dno43r4deed", + "version": 0 +} -- 2.39.5