--- /dev/null
+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
+}
--- /dev/null
+{
+ "__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
+}