apiVersion: v1
data:
  osd-device-details.json: |-
    {
       "__inputs": [ ],
       "__requires": [
          {
             "id": "grafana",
             "name": "Grafana",
             "type": "grafana",
             "version": "5.3.2"
          },
          {
             "id": "graph",
             "name": "Graph",
             "type": "panel",
             "version": "5.0.0"
          }
       ],
       "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": "",
       "editable": false,
       "gnetId": null,
       "graphTooltip": 0,
       "hideControls": false,
       "id": null,
       "links": [ ],
       "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": "OSD Performance",
             "titleSize": "h6",
             "type": "row"
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "s"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 0,
                "y": 1
             },
             "id": 3,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null as zero",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [
                {
                   "alias": "read",
                   "transform": "negative-Y"
                }
             ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "rate(ceph_osd_op_r_latency_sum{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval]) /\n  on (ceph_daemon) rate(ceph_osd_op_r_latency_count{cluster=~\"$cluster\", }[$__rate_interval])\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "read",
                   "refId": "A"
                },
                {
                   "expr": "rate(ceph_osd_op_w_latency_sum{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval]) /\n  on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval])\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "write",
                   "refId": "B"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "$osd Latency",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "s",
                   "label": "Read (-) / Write (+)",
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "short"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 6,
                "y": 1
             },
             "id": 4,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null as zero",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [
                {
                   "alias": "Reads",
                   "transform": "negative-Y"
                }
             ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "rate(ceph_osd_op_r{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval])",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "Reads",
                   "refId": "A"
                },
                {
                   "expr": "rate(ceph_osd_op_w{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval])",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "Writes",
                   "refId": "B"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "$osd R/W IOPS",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "short",
                   "label": "Read (-) / Write (+)",
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "bytes"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 12,
                "y": 1
             },
             "id": 5,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null as zero",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [
                {
                   "alias": "Read Bytes",
                   "transform": "negative-Y"
                }
             ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "rate(ceph_osd_op_r_out_bytes{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval])",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "Read Bytes",
                   "refId": "A"
                },
                {
                   "expr": "rate(ceph_osd_op_w_in_bytes{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval])",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "Write Bytes",
                   "refId": "B"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "$osd R/W Bytes",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "bytes",
                   "label": "Read (-) / Write (+)",
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          },
          {
             "collapse": false,
             "collapsed": false,
             "gridPos": {
                "h": 1,
                "w": 24,
                "x": 0,
                "y": 10
             },
             "id": 6,
             "panels": [ ],
             "repeat": null,
             "repeatIteration": null,
             "repeatRowId": null,
             "showTitle": true,
             "title": "Physical Device Performance",
             "titleSize": "h6",
             "type": "row"
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "s"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 0,
                "y": 11
             },
             "id": 7,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null as zero",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [
                {
                   "alias": "/.*Reads/",
                   "transform": "negative-Y"
                }
             ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "(\n  label_replace(\n    rate(node_disk_read_time_seconds_total[$__rate_interval]) /\n      rate(node_disk_reads_completed_total[$__rate_interval]),\n    \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n  ) and on (instance, device) label_replace(\n    label_replace(\n      ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n      \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n    ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n  )\n)\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{instance}}/{{device}} Reads",
                   "refId": "A"
                },
                {
                   "expr": "(\n  label_replace(\n    rate(node_disk_write_time_seconds_total[$__rate_interval]) /\n      rate(node_disk_writes_completed_total[$__rate_interval]),\n    \"instance\", \"$1\", \"instance\", \"([^:.]*).*\") and on (instance, device)\n    label_replace(\n      label_replace(\n        ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n      ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n    )\n  )\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{instance}}/{{device}} Writes",
                   "refId": "B"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "Physical Device Latency for $osd",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "s",
                   "label": "Read (-) / Write (+)",
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "short"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 6,
                "y": 11
             },
             "id": 8,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null as zero",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [
                {
                   "alias": "/.*Reads/",
                   "transform": "negative-Y"
                }
             ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "label_replace(\n  rate(node_disk_writes_completed_total[$__rate_interval]),\n  \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n    \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{device}} on {{instance}} Writes",
                   "refId": "A"
                },
                {
                   "expr": "label_replace(\n  rate(node_disk_reads_completed_total[$__rate_interval]),\n  \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n    \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{device}} on {{instance}} Reads",
                   "refId": "B"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "Physical Device R/W IOPS for $osd",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "short",
                   "label": "Read (-) / Write (+)",
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "Bps"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 12,
                "y": 11
             },
             "id": 9,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null as zero",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [
                {
                   "alias": "/.*Reads/",
                   "transform": "negative-Y"
                }
             ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "label_replace(\n  rate(node_disk_read_bytes_total[$__rate_interval]), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n    \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{instance}} {{device}} Reads",
                   "refId": "A"
                },
                {
                   "expr": "label_replace(\n  rate(node_disk_written_bytes_total[$__rate_interval]), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n    \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{instance}} {{device}} Writes",
                   "refId": "B"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "Physical Device R/W Bytes for $osd",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "Bps",
                   "label": "Read (-) / Write (+)",
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          },
          {
             "aliasColors": { },
             "bars": false,
             "dashLength": 10,
             "dashes": false,
             "datasource": "$datasource",
             "description": "",
             "fieldConfig": {
                "defaults": {
                   "custom": {
                      "fillOpacity": 8,
                      "showPoints": "never"
                   },
                   "unit": "percentunit"
                }
             },
             "fill": 1,
             "fillGradient": 0,
             "gridPos": {
                "h": 9,
                "w": 6,
                "x": 18,
                "y": 11
             },
             "id": 10,
             "legend": {
                "alignAsTable": false,
                "avg": false,
                "current": false,
                "max": false,
                "min": false,
                "rightSide": false,
                "show": true,
                "sideWidth": null,
                "total": false,
                "values": false
             },
             "lines": true,
             "linewidth": 1,
             "links": [ ],
             "nullPointMode": "null",
             "percentage": false,
             "pointradius": 5,
             "points": false,
             "renderer": "flot",
             "repeat": null,
             "seriesOverrides": [ ],
             "spaceLength": 10,
             "stack": false,
             "steppedLine": false,
             "targets": [
                {
                   "expr": "label_replace(\n  rate(node_disk_io_time_seconds_total[$__rate_interval]),\n  \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                   "format": "time_series",
                   "intervalFactor": 1,
                   "legendFormat": "{{device}} on {{instance}}",
                   "refId": "A"
                }
             ],
             "thresholds": [ ],
             "timeFrom": null,
             "timeShift": null,
             "title": "Physical Device Util% for $osd",
             "tooltip": {
                "shared": true,
                "sort": 0,
                "value_type": "individual"
             },
             "type": "timeseries",
             "xaxis": {
                "buckets": null,
                "mode": "time",
                "name": null,
                "show": true,
                "values": [ ]
             },
             "yaxes": [
                {
                   "format": "percentunit",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                },
                {
                   "format": "short",
                   "label": null,
                   "logBase": 1,
                   "max": null,
                   "min": null,
                   "show": true
                }
             ]
          }
       ],
       "refresh": "30s",
       "rows": [ ],
       "schemaVersion": 16,
       "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": { },
                "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": { },
                "datasource": "$datasource",
                "hide": 0,
                "includeAll": false,
                "label": "OSD",
                "multi": false,
                "name": "osd",
                "options": [ ],
                "query": "label_values(ceph_osd_metadata{cluster=~\"$cluster\", }, ceph_daemon)",
                "refresh": 1,
                "regex": "(.*)",
                "sort": 1,
                "tagValuesQuery": "",
                "tags": [ ],
                "tagsQuery": "",
                "type": "query",
                "useTags": false
             }
          ]
       },
       "time": {
          "from": "now-3h",
          "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": "OSD device details",
       "uid": "CrAHE0iZz",
       "version": 0
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2026-03-06T21:22:38Z"
  labels:
    grafana_dashboard: "1"
  name: kube-prometheus-stack-dashboard-osd-device-details
  namespace: monitoring
  resourceVersion: "3746"
  uid: 5dfb9e57-8f2f-4732-a354-6123908937f9
