--- /dev/null
+local g = import 'grafonnet/grafana.libsonnet';
+
+(import 'utils.libsonnet') {
+ 'hardware.json':
+ $.dashboardSchema(
+ 'Ceph Hardware - Platform Monitoring',
+ 'Comprehensive hardware monitoring with temperatures, fans, storage, and firmware from node-proxy',
+ 'hardware001',
+ 'now-1h',
+ '10s',
+ 22,
+ $._config.dashboardTags,
+ ''
+ )
+ .addAnnotation(
+ $.addAnnotationSchema(
+ 1,
+ '-- Grafana --',
+ true,
+ true,
+ 'rgba(0, 211, 255, 1)',
+ 'Annotations & Alerts',
+ 'dashboard'
+ )
+ )
+ .addLinks([
+ $.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(
+ $.addClusterTemplate()
+ )
+ .addTemplate(
+ $.addTemplateSchema(
+ 'hostname',
+ '$datasource',
+ 'label_values(ceph_node_proxy_health, hostname)',
+ 1,
+ false,
+ 1,
+ 'Host',
+ ''
+ )
+ )
+ .addTemplate(
+ g.template.new(
+ 'fan_speeds',
+ '$datasource',
+ 'label_values(ceph_node_proxy_fan_rpm{hostname="$hostname"},fan_name)',
+ label='',
+ refresh='load',
+ includeAll=true,
+ multi=false,
+ allValues='',
+ sort=0,
+ regex='/.*TACH.*/',
+ hide=2
+ )
+ )
+ .addPanels([
+ // Row 1: Overview (collapsed)
+ $.addRowSchema(collapse=true, showTitle=true, title='Overview') + { gridPos: { x: 0, y: 0, w: 24, h: 1 }, panels: [
+ // Health
+ $.addStatPanel(
+ title='Health',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 4, x: 0, y: 1 }
+ )
+ .addTarget($.addTargetSchema(
+ 'max(ceph_node_proxy_health)',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ mappings: [
+ { type: 'value', options: { '0': { color: 'green', index: 0, text: 'OK' } } },
+ { type: 'range', options: { from: 1, to: 999, result: { color: 'semi-dark-red', index: 1, text: 'NOT OK' } } },
+ ],
+ thresholds: {
+ mode: 'absolute',
+ steps: [{ color: 'green' }, { color: 'red', value: 1 }],
+ },
+ },
+ },
+ options+: { colorMode: 'background_solid' },
+ },
+
+ // CPU Temp
+ $.addStatPanel(
+ title='CPU Temp',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 4, y: 1 }
+ ).addTarget($.addTargetSchema(
+ 'max(ceph_node_proxy_temperature_celsius{sensor_name=~".*CPU_TEMP"})',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ min: 0,
+ max: 100,
+ thresholds: {
+ mode: 'absolute',
+ steps: [{ color: 'green' }, { color: '#EAB839', value: 75 }, { color: 'red', value: 85 }],
+ },
+ },
+ },
+ },
+
+ // BMC Versions
+ $.pieChartPanel(
+ title='BMC Versions',
+ datasource='$datasource',
+ gridPos={ x: 7, y: 1, w: 3, h: 8 }
+ )
+ .addTarget($.addTargetSchema(
+ 'count by(version) (ceph_node_proxy_firmware_info{component=~".*BMC.*"})',
+ legendFormat='{{version}}'
+ ))
+ + {
+ fieldConfig+: {
+ defaults+: {
+ color+: {
+ mode: 'palette-classic',
+ },
+ },
+ },
+ options+: {
+ legend+: { showLegend: false },
+ displayLabels: ['name'],
+ },
+ },
+
+ // BIOS Versions
+ $.pieChartPanel(
+ title='BIOS Versions',
+ datasource='$datasource',
+ gridPos={ x: 10, y: 1, w: 3, h: 8 }
+ )
+ .addTarget($.addTargetSchema(
+ 'count by(version) (ceph_node_proxy_firmware_info{component=~".*BIOS.*"})',
+ legendFormat='{{version}}'
+ ))
+ + {
+ fieldConfig+: {
+ defaults+: {
+ color+: {
+ mode: 'palette-classic',
+ },
+ },
+ },
+ options+: {
+ legend+: { showLegend: false },
+ displayLabels: ['name'],
+ },
+ },
+
+ // Drive Types
+ $.pieChartPanel(
+ title='Drive Types',
+ datasource='$datasource',
+ gridPos={ x: 13, y: 1, w: 6, h: 8 }
+ )
+ .addTarget($.addTargetSchema(
+ 'count by(model) (ceph_node_proxy_storage_capacity_bytes)',
+ legendFormat='{{model}}'
+ ))
+ + {
+ fieldConfig+: {
+ defaults+: {
+ color+: {
+ mode: 'palette-classic',
+ },
+ },
+ },
+ options+: {
+ legend+: { showLegend: true, placement: 'right' },
+ displayLabels: ['value'],
+ },
+ },
+
+ // Drive Firmware
+ $.pieChartPanel(
+ title='Drive Firmware',
+ datasource='$datasource',
+ gridPos={ x: 19, y: 1, w: 5, h: 8 }
+ )
+ .addTarget($.addTargetSchema(
+ 'count by(version) (ceph_node_proxy_firmware_info{component=~".*Drive.*"})',
+ legendFormat='{{version}}',
+ instant=true
+ ))
+ + {
+ fieldConfig+: {
+ defaults+: {
+ color+: {
+ mode: 'palette-classic',
+ },
+ },
+ },
+ options+: {
+ legend+: { showLegend: true, placement: 'right' },
+ displayLabels: ['value'],
+ },
+ },
+
+ // Hosts
+ $.addStatPanel(
+ title='Hosts',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 2, x: 0, y: 5 }
+ ).addTarget($.addTargetSchema(
+ 'count(count by(hostname) (ceph_node_proxy_health))',
+ legendFormat='__auto'
+ )),
+
+ // Drives
+ $.addStatPanel(
+ title='Drives',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 2, x: 2, y: 5 }
+ ).addTarget($.addTargetSchema(
+ 'count(ceph_node_proxy_storage_capacity_bytes)',
+ legendFormat='__auto'
+ )),
+
+ // NVMe Temp
+ $.addStatPanel(
+ title='NVMe Temp',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 4, y: 5 }
+ ).addTarget($.addTargetSchema(
+ 'max(ceph_node_proxy_temperature_celsius{sensor_name=~"NVME.*_TEMP"})',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ min: 0,
+ max: 85,
+ thresholds: {
+ mode: 'absolute',
+ steps: [{ color: 'green' }, { color: 'yellow', value: 75 }, { color: 'red', value: 80 }],
+ },
+ },
+ },
+ },
+ ] },
+
+ // Row 2: Host Overview
+ $.addRowSchema(true, true, 'Host Overview: $hostname') + { gridPos: { x: 0, y: 1, w: 24, h: 1 }, panels: [
+ // Power
+ $.addStatPanel(
+ title='Power',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 3, w: 2, x: 0, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_health{hostname="$hostname",category="power"}',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ mappings: [
+ { type: 'value', options: { '0': { color: 'green', index: 0, text: 'OK' } } },
+ { type: 'range', options: { from: 1, to: 9999, result: { color: 'red', index: 1, text: 'NOT OK' } } },
+ ],
+ thresholds: { mode: 'absolute', steps: [{ color: 'green' }, { color: 'red', value: 1 }] },
+ },
+ },
+ options+: { colorMode: 'background_solid' },
+ },
+
+ // MB Temperature
+ $.addStatPanel(
+ title='MB Temperature (max)',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 2, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'max(ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~".*MB_TEMP.*"})',
+ legendFormat='__auto'
+ )),
+
+ // CPU Temperature
+ $.addStatPanel(
+ title='CPU Temperature',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 5, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'avg(ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~".*CPU_TEMP"})',
+ legendFormat='__auto'
+ )),
+
+ // DIMM Temperature
+ $.addStatPanel(
+ title='DIMM Temperature (max)',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 8, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'max(ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~".*DIMM.*_TEMP"})',
+ legendFormat='__auto'
+ )),
+
+ // PSU Fans
+ $.addStatPanel(
+ title='PSU Fans',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 11, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'count(ceph_node_proxy_fan_rpm{hostname=~"$hostname", fan_name=~"PSU.*"})',
+ legendFormat='__auto'
+ )),
+
+ // AVG PSU Temperature
+ $.addStatPanel(
+ title='AVG PSU Temperature',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 14, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'avg(ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~"PSU.*_TEMP.*"})',
+ legendFormat='__auto'
+ )),
+
+ // NVMe Drives
+ $.addStatPanel(
+ title='NVMe Drives',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 17, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'count(ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~"NVME.*"})',
+ legendFormat='__auto'
+ )),
+
+ // NVMe Temperature
+ $.addStatPanel(
+ title='NVMe Temperature (max)',
+ unit='celsius',
+ datasource='$datasource',
+ gridPosition={ h: 4, w: 3, x: 20, y: 2 }
+ ).addTarget($.addTargetSchema(
+ 'max(ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~"NVME.*"})',
+ legendFormat='__auto'
+ )),
+
+ // Power Control
+ $.addStatPanel(
+ title='Power Control',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 3, w: 2, x: 0, y: 5 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_health{hostname="$hostname",category="power"}',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ mappings: [
+ { type: 'value', options: { '0': { color: 'green', index: 0, text: 'OK' } } },
+ { type: 'range', options: { from: 1, to: 9999, result: { color: 'red', index: 1, text: 'NOT OK' } } },
+ ],
+ thresholds: { mode: 'absolute', steps: [{ color: 'green' }, { color: 'red', value: 1 }] },
+ },
+ },
+ options+: { colorMode: 'background_solid' },
+ },
+
+ // Cooling
+ $.addStatPanel(
+ title='Cooling',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 3, w: 2, x: 0, y: 8 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_health{hostname="$hostname",category="fans"}',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ mappings: [
+ { type: 'value', options: { '0': { color: 'green', index: 0, text: 'OK' } } },
+ { type: 'range', options: { from: 1, to: 9999, result: { color: 'red', index: 1, text: 'NOT OK' } } },
+ ],
+ thresholds: { mode: 'absolute', steps: [{ color: 'green' }, { color: 'red', value: 1 }] },
+ },
+ },
+ options+: { colorMode: 'background_solid' },
+ },
+
+ // Drives
+ $.addStatPanel(
+ title='Drives',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 3, w: 2, x: 0, y: 11 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_health{hostname="$hostname",category="storage"}',
+ legendFormat='__auto'
+ ))
+ + {
+ fieldConfig: {
+ defaults: {
+ mappings: [
+ { type: 'value', options: { '0': { color: 'green', index: 0, text: 'OK' } } },
+ { type: 'range', options: { from: 1, to: 9999, result: { color: 'red', index: 1, text: 'NOT OK' } } },
+ ],
+ thresholds: { mode: 'absolute', steps: [{ color: 'green' }, { color: 'red', value: 1 }] },
+ },
+ },
+ options+: { colorMode: 'background_solid' },
+ },
+ ] },
+
+ // Row 3: FAN Speeds
+ $.addRowSchema(true, true, 'FAN Speeds: $hostname') + { gridPos: { x: 0, y: 2, w: 24, h: 1 }, panels: [
+ // Repeating panel
+ $.addStatPanel(
+ title='FAN: $fan_speeds (RPM)',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 5, w: 4, x: 0, y: 3 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_fan_rpm{hostname=~"$hostname",fan_name=~"$fan_speeds"}',
+ legendFormat='{{fan_name}}'
+ ))
+ + {
+ repeat: 'fan_speeds',
+ repeatDirection: 'h',
+ maxPerRow: 6,
+ },
+
+ // PSU1
+ $.addStatPanel(
+ title='PSU1 Fan Speed (RPM)',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 5, w: 4, x: 0, y: 8 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_fan_rpm{hostname=~"$hostname",fan_name=~"PSU1.*"}',
+ legendFormat='{{fan_name}}'
+ )),
+
+ // PSU2
+ $.addStatPanel(
+ title='PSU2 Fan Speed (RPM)',
+ unit='short',
+ datasource='$datasource',
+ gridPosition={ h: 5, w: 4, x: 4, y: 8 }
+ ).addTarget($.addTargetSchema(
+ 'ceph_node_proxy_fan_rpm{hostname=~"$hostname",fan_name=~"PSU2.*"}',
+ legendFormat='{{fan_name}}'
+ )),
+ ] },
+
+ // Row 4: Temperature History
+ $.addRowSchema(true, true, 'Temperature History: $hostname') + { gridPos: { x: 0, y: 3, w: 24, h: 1 }, panels: [
+ // CPU Temperature
+ g.graphPanel.new(
+ title='CPU Temperature',
+ datasource='$datasource',
+ format='celsius',
+ ).addTarget(
+ g.prometheus.target(
+ 'ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~".*CPU_TEMP"}',
+ legendFormat='{{sensor_name}}'
+ )
+ ).addTarget(
+ g.prometheus.target('vector(100)', legendFormat='Critical')
+ )
+ + {
+ gridPos: { x: 0, y: 4, w: 12, h: 8 },
+ yaxes: [{ min: 0 }, {}],
+ seriesOverrides: [
+ { alias: 'Critical', color: 'dark-red', dashes: true, fill: 0 },
+ ],
+ },
+
+ // DIMM Temperatures
+ g.graphPanel.new(
+ title='DIMM Temperatures',
+ datasource='$datasource',
+ format='celsius',
+ ).addTarget(
+ g.prometheus.target(
+ 'ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~".*DIMM.*_TEMP"}',
+ legendFormat='{{sensor_name}}'
+ )
+ ).addTarget(
+ g.prometheus.target('vector(88)', legendFormat='Critical')
+ )
+ + {
+ gridPos: { x: 12, y: 4, w: 12, h: 8 },
+ yaxes: [{ min: 0 }, {}],
+ seriesOverrides: [
+ { alias: 'Critical', color: 'dark-red', dashes: true, fill: 0 },
+ ],
+ },
+
+ // Motherboard Temperatures
+ g.graphPanel.new(
+ title='Motherboard Temperatures',
+ datasource='$datasource',
+ format='celsius',
+ ).addTarget(
+ g.prometheus.target(
+ 'ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~".*MB_TEMP.*"}',
+ legendFormat='{{sensor_name}}'
+ )
+ ).addTarget(
+ g.prometheus.target('vector(85)', legendFormat='Critical')
+ )
+ + {
+ gridPos: { x: 0, y: 12, w: 12, h: 8 },
+ yaxes: [{ min: 0 }, {}],
+ seriesOverrides: [
+ { alias: 'Critical', color: 'dark-red', dashes: true, fill: 0 },
+ ],
+ },
+
+ // NVMe Temperatures
+ g.graphPanel.new(
+ title='NVMe Temperatures',
+ datasource='$datasource',
+ format='celsius',
+ ).addTarget(
+ g.prometheus.target(
+ 'ceph_node_proxy_temperature_celsius{hostname=~"$hostname", sensor_name=~"NVME.*_TEMP"}',
+ legendFormat='{{sensor_name}}'
+ )
+ ).addTarget(
+ g.prometheus.target('vector(85)', legendFormat='Critical')
+ )
+ + {
+ gridPos: { x: 12, y: 12, w: 12, h: 8 },
+ yaxes: [{ min: 0 }, {}],
+ seriesOverrides: [
+ { alias: 'Critical', color: 'dark-red', dashes: true, fill: 0 },
+ ],
+ },
+ ] },
+
+ // Row 5: FAN Speed History
+ $.addRowSchema(true, true, 'FAN Speed History: $hostname') + { gridPos: { x: 0, y: 4, w: 24, h: 1 }, panels: [
+ // AVG PSU Fan Speed
+ g.graphPanel.new(
+ title='AVG PSU Fan Speed',
+ datasource='$datasource',
+ format='short',
+ ).addTarget(
+ g.prometheus.target(
+ 'avg(ceph_node_proxy_fan_rpm{hostname=~"$hostname", fan_name=~"PSU.*"})',
+ legendFormat='PSU Fans'
+ )
+ )
+ + {
+ gridPos: { x: 0, y: 5, w: 12, h: 8 },
+ description: 'AVG across both PSUs',
+ },
+
+ // AVG Cooling Fan Speed
+ g.graphPanel.new(
+ title='AVG Cooling Fan Speed',
+ datasource='$datasource',
+ format='short',
+ ).addTarget(
+ g.prometheus.target(
+ 'avg(ceph_node_proxy_fan_rpm{hostname=~"$hostname", fan_name=~".*TACH.*"})',
+ legendFormat='System Fans'
+ )
+ )
+ + {
+ gridPos: { x: 12, y: 5, w: 12, h: 8 },
+ },
+ ] },
+ ]),
+}
--- /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": "Comprehensive hardware monitoring with temperatures, fans, storage, and firmware from node-proxy",
+ "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": true,
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 2,
+ "panels": [
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ }
+ },
+ "type": "value"
+ },
+ {
+ "options": {
+ "from": 1,
+ "result": {
+ "color": "semi-dark-red",
+ "index": 1,
+ "text": "NOT OK"
+ },
+ "to": 999
+ },
+ "type": "range"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 4,
+ "x": 0,
+ "y": 1
+ },
+ "id": 3,
+ "links": [ ],
+ "options": {
+ "colorMode": "background_solid",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "max(ceph_node_proxy_health)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Health",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "max": 100,
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "#EAB839",
+ "value": 75
+ },
+ {
+ "color": "red",
+ "value": 85
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 4,
+ "y": 1
+ },
+ "id": 4,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "max(ceph_node_proxy_temperature_celsius{sensor_name=~\".*CPU_TEMP\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "CPU Temp",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ }
+ },
+ "mappings": [ ]
+ },
+ "overrides": [ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 3,
+ "x": 7,
+ "y": 1
+ },
+ "id": 5,
+ "options": {
+ "displayLabels": [
+ "name"
+ ],
+ "legend": {
+ "calcs": [ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": false,
+ "values": [ ]
+ },
+ "pieType": "pie",
+ "reduceOptions": { },
+ "tooltip": { }
+ },
+ "targets": [
+ {
+ "expr": "count by(version) (ceph_node_proxy_firmware_info{component=~\".*BMC.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{version}}",
+ "refId": "A"
+ }
+ ],
+ "title": "BMC Versions",
+ "type": "piechart"
+ },
+ {
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ }
+ },
+ "mappings": [ ]
+ },
+ "overrides": [ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 3,
+ "x": 10,
+ "y": 1
+ },
+ "id": 6,
+ "options": {
+ "displayLabels": [
+ "name"
+ ],
+ "legend": {
+ "calcs": [ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": false,
+ "values": [ ]
+ },
+ "pieType": "pie",
+ "reduceOptions": { },
+ "tooltip": { }
+ },
+ "targets": [
+ {
+ "expr": "count by(version) (ceph_node_proxy_firmware_info{component=~\".*BIOS.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{version}}",
+ "refId": "A"
+ }
+ ],
+ "title": "BIOS Versions",
+ "type": "piechart"
+ },
+ {
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ }
+ },
+ "mappings": [ ]
+ },
+ "overrides": [ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 6,
+ "x": 13,
+ "y": 1
+ },
+ "id": 7,
+ "options": {
+ "displayLabels": [
+ "value"
+ ],
+ "legend": {
+ "calcs": [ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true,
+ "values": [ ]
+ },
+ "pieType": "pie",
+ "reduceOptions": { },
+ "tooltip": { }
+ },
+ "targets": [
+ {
+ "expr": "count by(model) (ceph_node_proxy_storage_capacity_bytes)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{model}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Drive Types",
+ "type": "piechart"
+ },
+ {
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ }
+ },
+ "mappings": [ ]
+ },
+ "overrides": [ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 5,
+ "x": 19,
+ "y": 1
+ },
+ "id": 8,
+ "options": {
+ "displayLabels": [
+ "value"
+ ],
+ "legend": {
+ "calcs": [ ],
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true,
+ "values": [ ]
+ },
+ "pieType": "pie",
+ "reduceOptions": { },
+ "tooltip": { }
+ },
+ "targets": [
+ {
+ "expr": "count by(version) (ceph_node_proxy_firmware_info{component=~\".*Drive.*\"})",
+ "format": "time_series",
+ "instant": true,
+ "intervalFactor": 1,
+ "legendFormat": "{{version}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Drive Firmware",
+ "type": "piechart"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 2,
+ "x": 0,
+ "y": 5
+ },
+ "id": 9,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "count(count by(hostname) (ceph_node_proxy_health))",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Hosts",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 2,
+ "x": 2,
+ "y": 5
+ },
+ "id": 10,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "count(ceph_node_proxy_storage_capacity_bytes)",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Drives",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "max": 85,
+ "min": 0,
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "yellow",
+ "value": 75
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 4,
+ "y": 5
+ },
+ "id": 11,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "max(ceph_node_proxy_temperature_celsius{sensor_name=~\"NVME.*_TEMP\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "NVMe Temp",
+ "transparent": false,
+ "type": "stat"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Overview",
+ "titleSize": "h6",
+ "type": "row"
+ },
+ {
+ "collapse": true,
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 1
+ },
+ "id": 12,
+ "panels": [
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ }
+ },
+ "type": "value"
+ },
+ {
+ "options": {
+ "from": 1,
+ "result": {
+ "color": "red",
+ "index": 1,
+ "text": "NOT OK"
+ },
+ "to": 9999
+ },
+ "type": "range"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 2,
+ "x": 0,
+ "y": 2
+ },
+ "id": 13,
+ "links": [ ],
+ "options": {
+ "colorMode": "background_solid",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_health{hostname=\"$hostname\",category=\"power\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Power",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "celsius"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 2,
+ "y": 2
+ },
+ "id": 14,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "max(ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\".*MB_TEMP.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "MB Temperature (max)",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "celsius"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 5,
+ "y": 2
+ },
+ "id": 15,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "avg(ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\".*CPU_TEMP\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "CPU Temperature",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "celsius"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 8,
+ "y": 2
+ },
+ "id": 16,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "max(ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\".*DIMM.*_TEMP\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "DIMM Temperature (max)",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 11,
+ "y": 2
+ },
+ "id": 17,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "count(ceph_node_proxy_fan_rpm{hostname=~\"$hostname\", fan_name=~\"PSU.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "PSU Fans",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "celsius"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 14,
+ "y": 2
+ },
+ "id": 18,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "avg(ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\"PSU.*_TEMP.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "AVG PSU Temperature",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 17,
+ "y": 2
+ },
+ "id": 19,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "count(ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\"NVME.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "NVMe Drives",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "celsius"
+ }
+ },
+ "gridPos": {
+ "h": 4,
+ "w": 3,
+ "x": 20,
+ "y": 2
+ },
+ "id": 20,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "max(ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\"NVME.*\"})",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "NVMe Temperature (max)",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ }
+ },
+ "type": "value"
+ },
+ {
+ "options": {
+ "from": 1,
+ "result": {
+ "color": "red",
+ "index": 1,
+ "text": "NOT OK"
+ },
+ "to": 9999
+ },
+ "type": "range"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 2,
+ "x": 0,
+ "y": 5
+ },
+ "id": 21,
+ "links": [ ],
+ "options": {
+ "colorMode": "background_solid",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_health{hostname=\"$hostname\",category=\"power\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Power Control",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ }
+ },
+ "type": "value"
+ },
+ {
+ "options": {
+ "from": 1,
+ "result": {
+ "color": "red",
+ "index": 1,
+ "text": "NOT OK"
+ },
+ "to": 9999
+ },
+ "type": "range"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 2,
+ "x": 0,
+ "y": 8
+ },
+ "id": 22,
+ "links": [ ],
+ "options": {
+ "colorMode": "background_solid",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_health{hostname=\"$hostname\",category=\"fans\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Cooling",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "mappings": [
+ {
+ "options": {
+ "0": {
+ "color": "green",
+ "index": 0,
+ "text": "OK"
+ }
+ },
+ "type": "value"
+ },
+ {
+ "options": {
+ "from": 1,
+ "result": {
+ "color": "red",
+ "index": 1,
+ "text": "NOT OK"
+ },
+ "to": 9999
+ },
+ "type": "range"
+ }
+ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green"
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ }
+ }
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 2,
+ "x": 0,
+ "y": 11
+ },
+ "id": 23,
+ "links": [ ],
+ "options": {
+ "colorMode": "background_solid",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_health{hostname=\"$hostname\",category=\"storage\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "__auto",
+ "refId": "A"
+ }
+ ],
+ "title": "Drives",
+ "transparent": false,
+ "type": "stat"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Host Overview: $hostname",
+ "titleSize": "h6",
+ "type": "row"
+ },
+ {
+ "collapse": true,
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 2
+ },
+ "id": 24,
+ "panels": [
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 0,
+ "y": 3
+ },
+ "id": 25,
+ "links": [ ],
+ "maxPerRow": 6,
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "repeat": "fan_speeds",
+ "repeatDirection": "h",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_fan_rpm{hostname=~\"$hostname\",fan_name=~\"$fan_speeds\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{fan_name}}",
+ "refId": "A"
+ }
+ ],
+ "title": "FAN: $fan_speeds (RPM)",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 0,
+ "y": 8
+ },
+ "id": 26,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_fan_rpm{hostname=~\"$hostname\",fan_name=~\"PSU1.*\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{fan_name}}",
+ "refId": "A"
+ }
+ ],
+ "title": "PSU1 Fan Speed (RPM)",
+ "transparent": false,
+ "type": "stat"
+ },
+ {
+ "colors": null,
+ "datasource": "$datasource",
+ "description": "",
+ "fieldConfig": {
+ "defaults": {
+ "decimals": 0,
+ "links": [ ],
+ "mappings": [ ],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [ ]
+ },
+ "unit": "short"
+ }
+ },
+ "gridPos": {
+ "h": 5,
+ "w": 4,
+ "x": 4,
+ "y": 8
+ },
+ "id": 27,
+ "links": [ ],
+ "options": {
+ "colorMode": "none",
+ "graphMode": "none",
+ "justifyMode": "auto",
+ "orientation": "horizontal",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto"
+ },
+ "pluginVersion": "9.1.3",
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_fan_rpm{hostname=~\"$hostname\",fan_name=~\"PSU2.*\"}",
+ "format": "time_series",
+ "intervalFactor": 1,
+ "legendFormat": "{{fan_name}}",
+ "refId": "A"
+ }
+ ],
+ "title": "PSU2 Fan Speed (RPM)",
+ "transparent": false,
+ "type": "stat"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "FAN Speeds: $hostname",
+ "titleSize": "h6",
+ "type": "row"
+ },
+ {
+ "collapse": true,
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 3
+ },
+ "id": 28,
+ "panels": [
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$datasource",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 4
+ },
+ "id": 29,
+ "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": [
+ {
+ "alias": "Critical",
+ "color": "dark-red",
+ "dashes": true,
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\".*CPU_TEMP\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{sensor_name}}",
+ "refId": "A"
+ },
+ {
+ "expr": "vector(100)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Critical",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "CPU Temperature",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "min": 0
+ },
+ { }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$datasource",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 4
+ },
+ "id": 30,
+ "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": [
+ {
+ "alias": "Critical",
+ "color": "dark-red",
+ "dashes": true,
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\".*DIMM.*_TEMP\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{sensor_name}}",
+ "refId": "A"
+ },
+ {
+ "expr": "vector(88)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Critical",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "DIMM Temperatures",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "min": 0
+ },
+ { }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$datasource",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 12
+ },
+ "id": 31,
+ "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": [
+ {
+ "alias": "Critical",
+ "color": "dark-red",
+ "dashes": true,
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\".*MB_TEMP.*\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{sensor_name}}",
+ "refId": "A"
+ },
+ {
+ "expr": "vector(85)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Critical",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Motherboard Temperatures",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "min": 0
+ },
+ { }
+ ]
+ },
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$datasource",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 12
+ },
+ "id": 32,
+ "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": [
+ {
+ "alias": "Critical",
+ "color": "dark-red",
+ "dashes": true,
+ "fill": 0
+ }
+ ],
+ "spaceLength": 10,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "expr": "ceph_node_proxy_temperature_celsius{hostname=~\"$hostname\", sensor_name=~\"NVME.*_TEMP\"}",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "{{sensor_name}}",
+ "refId": "A"
+ },
+ {
+ "expr": "vector(85)",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "Critical",
+ "refId": "B"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "NVMe Temperatures",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "min": 0
+ },
+ { }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "Temperature History: $hostname",
+ "titleSize": "h6",
+ "type": "row"
+ },
+ {
+ "collapse": true,
+ "collapsed": true,
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 4
+ },
+ "id": 33,
+ "panels": [
+ {
+ "aliasColors": { },
+ "bars": false,
+ "dashLength": 10,
+ "dashes": false,
+ "datasource": "$datasource",
+ "description": "AVG across both PSUs",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 5
+ },
+ "id": 34,
+ "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": "avg(ceph_node_proxy_fan_rpm{hostname=~\"$hostname\", fan_name=~\"PSU.*\"})",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "PSU Fans",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "AVG PSU Fan Speed",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "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",
+ "fill": 1,
+ "fillGradient": 0,
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 5
+ },
+ "id": 35,
+ "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": "avg(ceph_node_proxy_fan_rpm{hostname=~\"$hostname\", fan_name=~\".*TACH.*\"})",
+ "format": "time_series",
+ "intervalFactor": 2,
+ "legendFormat": "System Fans",
+ "refId": "A"
+ }
+ ],
+ "thresholds": [ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "AVG Cooling Fan Speed",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "xaxis": {
+ "buckets": null,
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": [ ]
+ },
+ "yaxes": [
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "FAN Speed History: $hostname",
+ "titleSize": "h6",
+ "type": "row"
+ }
+ ],
+ "refresh": "10s",
+ "rows": [ ],
+ "schemaVersion": 22,
+ "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": "Host",
+ "multi": false,
+ "name": "hostname",
+ "options": [ ],
+ "query": "label_values(ceph_node_proxy_health, hostname)",
+ "refresh": 1,
+ "regex": "",
+ "sort": 1,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ },
+ {
+ "allValue": "",
+ "current": { },
+ "datasource": "$datasource",
+ "hide": 2,
+ "includeAll": true,
+ "label": "",
+ "multi": false,
+ "name": "fan_speeds",
+ "options": [ ],
+ "query": "label_values(ceph_node_proxy_fan_rpm{hostname=\"$hostname\"},fan_name)",
+ "refresh": 1,
+ "regex": "/.*TACH.*/",
+ "sort": 0,
+ "tagValuesQuery": "",
+ "tags": [ ],
+ "tagsQuery": "",
+ "type": "query",
+ "useTags": false
+ }
+ ]
+ },
+ "time": {
+ "from": "now-1h",
+ "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 Hardware - Platform Monitoring",
+ "uid": "hardware001",
+ "version": 0
+}