From 0614b2c70482b98ef10f38c1b9aa68b909a5b343 Mon Sep 17 00:00:00 2001 From: Piyush Agarwal Date: Tue, 21 Jan 2025 14:02:51 +0530 Subject: [PATCH] mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in host.libsonnet Fixes:- https://tracker.ceph.com/issues/70228 Signed-off-by: Piyush Agarwal (cherry picked from commit f155abe51879f219b2dc944851ef1bc5f4577fe9) --- .../ceph-mixin/dashboards/host.libsonnet | 716 +++++------ .../dashboards_out/host-details.json | 1072 +++++++---------- .../dashboards_out/hosts-overview.json | 236 ++-- 3 files changed, 926 insertions(+), 1098 deletions(-) diff --git a/monitoring/ceph-mixin/dashboards/host.libsonnet b/monitoring/ceph-mixin/dashboards/host.libsonnet index cf7e045695aee..5796e2d698183 100644 --- a/monitoring/ceph-mixin/dashboards/host.libsonnet +++ b/monitoring/ceph-mixin/dashboards/host.libsonnet @@ -226,57 +226,67 @@ local g = import 'grafonnet/grafana.libsonnet'; 4, 5 ), - $.simpleGraphPanel( - {}, - 'CPU Busy - Top 10 Hosts', - 'Show the top 10 busiest hosts by cpu', - 'percent', - null, - 0, - ||| - topk(10, - 100 * ( - 1 - ( - avg by(instance) ( - rate(node_cpu_seconds_total{mode='idle',instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*"}[$__rate_interval]) or + $.timeSeriesPanel( + title='CPU Busy - Top 10 Hosts', + datasource='$datasource', + gridPosition={ x: 0, y: 5, w: 12, h: 9 }, + unit='percent', + axisLabel='', + min=0, + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + spanNulls=true, + ) + .addTargets([ + $.addTargetSchema( + ||| + topk(10, + 100 * ( + 1 - ( + avg by(instance) ( + rate(node_cpu_seconds_total{mode='idle',instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*"}[$__rate_interval]) or rate(node_cpu{mode='idle',instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*"}[$__rate_interval]) + ) ) ) ) - ) - |||, - '{{instance}}', - 0, - 5, - 12, - 9 - ), - $.simpleGraphPanel( - {}, - 'Network Load - Top 10 Hosts', - 'Top 10 hosts by network load', - 'Bps', - null, - 0, - ||| - topk(10, (sum by(instance) ( - ( - rate(node_network_receive_bytes{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) or - rate(node_network_receive_bytes_total{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) - ) + - ( - rate(node_network_transmit_bytes{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) or - rate(node_network_transmit_bytes_total{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) - ) unless on (device, instance) - label_replace((node_bonding_slaves > 0), "device", "$1", "master", "(.+)")) - )) - |||, - '{{instance}}', - 12, - 5, - 12, - 9 - ), + |||, + '{{instance}}' + ), + ]), + $.timeSeriesPanel( + title='Network Load - Top 10 Hosts', + datasource='$datasource', + gridPosition={ x: 12, y: 5, w: 12, h: 9 }, + unit='Bps', + axisLabel='', + min=0, + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + spanNulls=true, + ) + .addTargets([ + $.addTargetSchema( + ||| + topk(10, (sum by(instance) ( + ( + rate(node_network_receive_bytes{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) or + rate(node_network_receive_bytes_total{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) + ) + + ( + rate(node_network_transmit_bytes{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) or + rate(node_network_transmit_bytes_total{instance=~"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*",device!="lo"}[$__rate_interval]) + ) unless on (device, instance) + label_replace((node_bonding_slaves > 0), "device", "$1", "master", "(.+)")) + )) + |||, + '{{instance}}' + ), + ]), ]), 'host-details.json': $.dashboardSchema( @@ -334,72 +344,88 @@ local g = import 'grafonnet/grafana.libsonnet'; 3, 5 ), - $.simpleGraphPanel( - { - interrupt: '#447EBC', - steal: '#6D1F62', - system: '#890F02', - user: '#3F6833', - wait: '#C15C17', - }, - 'CPU Utilization', - "Shows the CPU breakdown. When multiple servers are selected, only the first host's cpu data is shown", - 'percent', - '% Utilization', - null, - ||| - sum by (mode) ( - rate(node_cpu{instance=~"($ceph_hosts)([\\\\.:].*)?", mode=~"(irq|nice|softirq|steal|system|user|iowait)"}[$__rate_interval]) or - rate(node_cpu_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?", mode=~"(irq|nice|softirq|steal|system|user|iowait)"}[$__rate_interval]) - ) / ( - scalar( - sum(rate(node_cpu{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_cpu_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval])) - ) * 100 - ) - |||, - '{{mode}}', - 3, - 1, - 6, - 10 - ), - $.simpleGraphPanel( - { - Available: '#508642', - Free: '#508642', - Total: '#bf1b00', - Used: '#bf1b00', - total: '#bf1b00', - used: '#0a50a1', - }, - 'RAM Usage', - '', - 'bytes', - 'RAM used', - null, - ||| - node_memory_MemFree{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_MemFree_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - |||, - 'Free', - 9, - 1, - 6, - 10 + $.timeSeriesPanel( + title='CPU Utilization', + datasource='$datasource', + gridPosition={ x: 3, y: 1, w: 6, h: 10 }, + unit='percent', + axisLabel='% Utilization', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, + ) + .addTargets([ + $.addTargetSchema( + ||| + sum by (mode) ( + rate(node_cpu{instance=~"($ceph_hosts)([\\\\.:].*)?", mode=~"(irq|nice|softirq|steal|system|user|iowait)"}[$__rate_interval]) or + rate(node_cpu_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?", mode=~"(irq|nice|softirq|steal|system|user|iowait)"}[$__rate_interval]) + ) / ( + scalar( + sum(rate(node_cpu{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_cpu_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval])) + ) * 100 + ) + |||, + '{{mode}}' + ), + ]), + $.timeSeriesPanel( + title='RAM Usage', + datasource='$datasource', + gridPosition={ x: 9, y: 1, w: 6, h: 10 }, + unit='bytes', + axisLabel='RAM used', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, ) - .addTargets( - [ - $.addTargetSchema( - ||| + .addTargets([ + $.addTargetSchema( + ||| + node_memory_MemFree{instance=~"$ceph_hosts([\\\\.:].*)?"} or + node_memory_MemFree_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + |||, + 'Free' + ), + $.addTargetSchema( + ||| + node_memory_MemTotal{instance=~"$ceph_hosts([\\\\.:].*)?"} or + node_memory_MemTotal_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + |||, + 'total' + ), + $.addTargetSchema( + ||| + ( + node_memory_Cached{instance=~"$ceph_hosts([\\\\.:].*)?"} or + node_memory_Cached_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + ) + ( + node_memory_Buffers{instance=~"$ceph_hosts([\\\\.:].*)?"} or + node_memory_Buffers_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + ) + ( + node_memory_Slab{instance=~"$ceph_hosts([\\\\.:].*)?"} or + node_memory_Slab_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + ) + |||, + 'buffers/cache' + ), + $.addTargetSchema( + ||| + ( node_memory_MemTotal{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_MemTotal_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - |||, - 'total' - ), - $.addTargetSchema( - ||| + node_memory_MemTotal_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + ) - ( ( + node_memory_MemFree{instance=~"$ceph_hosts([\\\\.:].*)?"} or + node_memory_MemFree_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} + ) + ( node_memory_Cached{instance=~"$ceph_hosts([\\\\.:].*)?"} or node_memory_Cached_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} ) + ( @@ -409,35 +435,11 @@ local g = import 'grafonnet/grafana.libsonnet'; node_memory_Slab{instance=~"$ceph_hosts([\\\\.:].*)?"} or node_memory_Slab_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} ) - |||, - 'buffers/cache' - ), - $.addTargetSchema( - ||| - ( - node_memory_MemTotal{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_MemTotal_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - ) - ( - ( - node_memory_MemFree{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_MemFree_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - ) + ( - node_memory_Cached{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_Cached_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - ) + ( - node_memory_Buffers{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_Buffers_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - ) + - ( - node_memory_Slab{instance=~"$ceph_hosts([\\\\.:].*)?"} or - node_memory_Slab_bytes{instance=~"$ceph_hosts([\\\\.:].*)?"} - ) - ) - |||, - 'used' - ), - ] - ) + ) + |||, + 'used' + ), + ]) .addSeriesOverride( { alias: 'total', @@ -447,71 +449,71 @@ local g = import 'grafonnet/grafana.libsonnet'; stack: false, } ), - $.simpleGraphPanel( - {}, - 'Network Load', - "Show the network load (rx,tx) across all interfaces (excluding loopback 'lo')", - 'decbytes', - 'Send (-) / Receive (+)', - null, - ||| - sum by (device) ( - rate( - node_network_receive_bytes{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) or - rate(node_network_receive_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval] - ) - ) - |||, - '{{device}}.rx', - 15, - 1, - 6, - 10 - ) - .addTargets( - [ - $.addTargetSchema( - ||| - sum by (device) ( - rate(node_network_transmit_bytes{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) or - rate(node_network_transmit_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) - ) - |||, - '{{device}}.tx' - ), - ] + $.timeSeriesPanel( + title='Network Load', + datasource='$datasource', + gridPosition={ x: 15, y: 1, w: 6, h: 10 }, + unit='decbytes', + axisLabel='Send (-) / Receive (+)', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, ) + .addTargets([ + $.addTargetSchema( + ||| + sum by (device) ( + rate(node_network_receive_bytes{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) or + rate(node_network_receive_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) + ) + |||, + '{{device}}.rx' + ), + $.addTargetSchema( + ||| + sum by (device) ( + rate(node_network_transmit_bytes{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) or + rate(node_network_transmit_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?",device!="lo"}[$__rate_interval]) + ) + |||, + '{{device}}.tx' + ), + ]) .addSeriesOverride( { alias: '/.*tx/', transform: 'negative-Y' } ), - $.simpleGraphPanel( - {}, - 'Network drop rate', - '', - 'pps', - 'Send (-) / Receive (+)', - null, - ||| - rate(node_network_receive_drop{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_network_receive_drop_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) - |||, - '{{device}}.rx', - 21, - 1, - 3, - 5 - ) - .addTargets( - [ - $.addTargetSchema( - ||| - rate(node_network_transmit_drop{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_network_transmit_drop_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) - |||, - '{{device}}.tx' - ), - ] + $.timeSeriesPanel( + title='Network drop rate', + datasource='$datasource', + gridPosition={ x: 21, y: 1, w: 3, h: 5 }, + unit='pps', + axisLabel='Send (-) / Receive (+)', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, ) + .addTargets([ + $.addTargetSchema( + ||| + rate(node_network_receive_drop{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_network_receive_drop_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) + |||, + '{{device}}.rx' + ), + $.addTargetSchema( + ||| + rate(node_network_transmit_drop{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_network_transmit_drop_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) + |||, + '{{device}}.tx' + ), + ]) .addSeriesOverride( { alias: '/.*tx/', @@ -536,183 +538,207 @@ local g = import 'grafonnet/grafana.libsonnet'; 3, 5 ), - $.simpleGraphPanel( - {}, - 'Network error rate', - '', - 'pps', - 'Send (-) / Receive (+)', - null, - ||| - rate(node_network_receive_errs{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_network_receive_errs_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) - |||, - '{{device}}.rx', - 21, - 6, - 3, - 5 + $.timeSeriesPanel( + title='Network error rate', + datasource='$datasource', + gridPosition={ x: 21, y: 6, w: 3, h: 5 }, + unit='pps', + axisLabel='Send (-) / Receive (+)', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, ) - .addTargets( - [$.addTargetSchema( + .addTargets([ + $.addTargetSchema( + ||| + rate(node_network_receive_errs{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_network_receive_errs_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) + |||, + '{{device}}.rx' + ), + $.addTargetSchema( ||| rate(node_network_transmit_errs{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_network_transmit_errs_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) + rate(node_network_transmit_errs_total{instance=~"$ceph_hosts([\\\\.:].*)?"}[$__rate_interval]) |||, '{{device}}.tx' - )] - ) + ), + ]) .addSeriesOverride( { alias: '/.*tx/', transform: 'negative-Y', } ), - $.addRowSchema(false, - true, - 'OSD Disk Performance Statistics') + { gridPos: { x: 0, y: 11, w: 24, h: 1 } }, - $.simpleGraphPanel( - {}, - '$ceph_hosts Disk IOPS', - "For any OSD devices on the host, this chart shows the iops per physical device. Each device is shown by it's name and corresponding OSD id value", - 'ops', - 'Read (-) / Write (+)', - null, - ||| - label_replace( - ( - rate(node_disk_writes_completed{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_disk_writes_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) - ), "instance", "$1", "instance", "([^:.]*).*" - ) * on(instance, device) group_left(ceph_daemon) label_replace( - label_replace( - ceph_disk_occupation_human{%(matchers)s}, "device", "$1", "device", "/dev/(.*)" - ), "instance", "$1", "instance", "([^:.]*).*" - ) - ||| % $.matchers(), - '{{device}}({{ceph_daemon}}) writes', - 0, - 12, - 11, - 9 + $.addRowSchema( + false, + true, + 'OSD Disk Performance Statistics' + ) + { gridPos: { x: 0, y: 11, w: 24, h: 1 } }, + $.timeSeriesPanel( + title='$ceph_hosts Disk IOPS', + datasource='$datasource', + gridPosition={ x: 0, y: 12, w: 11, h: 9 }, + unit='ops', + axisLabel='Read (-) / Write (+)', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, ) - .addTargets( - [ - $.addTargetSchema( - ||| + .addTargets([ + $.addTargetSchema( + ||| + label_replace( + ( + rate(node_disk_writes_completed{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_disk_writes_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) + ), "instance", "$1", "instance", "([^:.]*).*" + ) * on(instance, device) group_left(ceph_daemon) label_replace( label_replace( - ( - rate(node_disk_reads_completed{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_disk_reads_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) - ), "instance", "$1", "instance", "([^:.]*).*" - ) * on(instance, device) group_left(ceph_daemon) label_replace( - label_replace( - ceph_disk_occupation_human{%(matchers)s},"device", "$1", "device", "/dev/(.*)" - ), "instance", "$1", "instance", "([^:.]*).*" - ) - ||| % $.matchers(), - '{{device}}({{ceph_daemon}}) reads' - ), - ] - ) + ceph_disk_occupation_human{%(matchers)s}, "device", "$1", "device", "/dev/(.*)" + ), "instance", "$1", "instance", "([^:.]*).*" + ) + ||| % $.matchers(), + '{{device}}({{ceph_daemon}}) writes' + ), + $.addTargetSchema( + ||| + label_replace( + ( + rate(node_disk_reads_completed{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_disk_reads_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) + ), "instance", "$1", "instance", "([^:.]*).*" + ) * on(instance, device) group_left(ceph_daemon) label_replace( + label_replace( + ceph_disk_occupation_human{%(matchers)s}, "device", "$1", "device", "/dev/(.*)" + ), "instance", "$1", "instance", "([^:.]*).*" + ) + ||| % $.matchers(), + '{{device}}({{ceph_daemon}}) reads' + ), + ]) .addSeriesOverride( { alias: '/.*reads/', transform: 'negative-Y' } ), - $.simpleGraphPanel( - {}, - '$ceph_hosts Throughput by Disk', - 'For OSD hosts, this chart shows the disk bandwidth (read bytes/sec + write bytes/sec) of the physical OSD device. Each device is shown by device name, and corresponding OSD id', - 'Bps', - 'Read (-) / Write (+)', - null, - ||| - label_replace( - ( - rate(node_disk_bytes_written{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or - rate(node_disk_written_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) - ), "instance", "$1", "instance", "([^:.]*).*") * on(instance, device) + $.timeSeriesPanel( + title='$ceph_hosts Throughput by Disk', + datasource='$datasource', + gridPosition={ x: 12, y: 12, w: 11, h: 9 }, + unit='Bps', + axisLabel='Read (-) / Write (+)', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, + ) + .addTargets([ + $.addTargetSchema( + ||| + label_replace( + ( + rate(node_disk_bytes_written{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or + rate(node_disk_written_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) + ), "instance", "$1", "instance", "([^:.]*).*" + ) * on(instance, device) group_left(ceph_daemon) label_replace( label_replace(ceph_disk_occupation_human{%(matchers)s}, "device", "$1", "device", "/dev/(.*)"), "instance", "$1", "instance", "([^:.]*).*" ) - ||| % $.matchers(), - '{{device}}({{ceph_daemon}}) write', - 12, - 12, - 11, - 9 - ) - .addTargets( - [$.addTargetSchema( + ||| % $.matchers(), + '{{device}}({{ceph_daemon}}) write' + ), + $.addTargetSchema( ||| label_replace( ( rate(node_disk_bytes_read{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) or rate(node_disk_read_bytes_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) - ), - "instance", "$1", "instance", "([^:.]*).*") * on(instance, device) - group_left(ceph_daemon) label_replace( - label_replace(ceph_disk_occupation_human{%(matchers)s}, "device", "$1", "device", "/dev/(.*)"), - "instance", "$1", "instance", "([^:.]*).*" - ) + ), "instance", "$1", "instance", "([^:.]*).*" + ) * on(instance, device) + group_left(ceph_daemon) label_replace( + label_replace(ceph_disk_occupation_human{%(matchers)s}, "device", "$1", "device", "/dev/(.*)"), + "instance", "$1", "instance", "([^:.]*).*" + ) ||| % $.matchers(), '{{device}}({{ceph_daemon}}) read' - )] - ) + ), + ]) .addSeriesOverride( { alias: '/.*read/', transform: 'negative-Y' } ), - $.simpleGraphPanel( - {}, - '$ceph_hosts Disk Latency', - "For OSD hosts, this chart shows the latency at the physical drive. Each drive is shown by device name, with it's corresponding OSD id", - 's', - '', - null, - ||| - max by(instance, device) (label_replace( - (rate(node_disk_write_time_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval])) / - clamp_min(rate(node_disk_writes_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]), 0.001) or - (rate(node_disk_read_time_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval])) / - clamp_min(rate(node_disk_reads_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]), 0.001), - "instance", "$1", "instance", "([^:.]*).*" - )) * on(instance, device) group_left(ceph_daemon) label_replace( + $.timeSeriesPanel( + title='$ceph_hosts Disk Latency', + datasource='$datasource', + gridPosition={ x: 0, y: 21, w: 11, h: 9 }, + unit='s', + axisLabel='', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, + ) + .addTargets([ + $.addTargetSchema( + ||| + max by(instance, device) ( + label_replace( + ( + (rate(node_disk_write_time_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval])) / + clamp_min(rate(node_disk_writes_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]), 0.001) or + (rate(node_disk_read_time_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval])) / + clamp_min(rate(node_disk_reads_completed_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]), 0.001) + ), + "instance", "$1", "instance", "([^:.]*).*" + ) + ) * on(instance, device) group_left(ceph_daemon) label_replace( + label_replace( + ceph_disk_occupation_human{instance=~"($ceph_hosts)([\\\\.:].*)?"}, + "device", "$1", "device", "/dev/(.*)" + ), "instance", "$1", "instance", "([^:.]*).*" + ) + ||| % $.matchers(), + '{{device}}({{ceph_daemon}})' + ), + ]), + $.timeSeriesPanel( + title='$ceph_hosts Disk utilization', + datasource='$datasource', + gridPosition={ x: 12, y: 21, w: 11, h: 9 }, + unit='percent', + axisLabel='%Util', + drawStyle='line', + fillOpacity=8, + showPoints='never', + tooltip={ mode: 'multi', sort: 'none' }, + colorMode='palette-classic', + spanNulls=true, + ) + .addTargets([ + $.addTargetSchema( + ||| label_replace( - ceph_disk_occupation_human{instance=~"($ceph_hosts)([\\\\.:].*)?"}, - "device", "$1", "device", "/dev/(.*)" - ), "instance", "$1", "instance", "([^:.]*).*" - ) - ||| % $.matchers(), - '{{device}}({{ceph_daemon}})', - 0, - 21, - 11, - 9 - ), - $.simpleGraphPanel( - {}, - '$ceph_hosts Disk utilization', - 'Show disk utilization % (util) of any OSD devices on the host by the physical device name and associated OSD id.', - 'percent', - '%Util', - null, - ||| - label_replace( - ( - (rate(node_disk_io_time_ms{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) / 10) or - rate(node_disk_io_time_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) * 100 - ), "instance", "$1", "instance", "([^:.]*).*" - ) * on(instance, device) group_left(ceph_daemon) label_replace( - label_replace(ceph_disk_occupation_human{instance=~"($ceph_hosts)([\\\\.:].*)?", %(matchers)s}, - "device", "$1", "device", "/dev/(.*)"), "instance", "$1", "instance", "([^:.]*).*" - ) - ||| % $.matchers(), - '{{device}}({{ceph_daemon}})', - 12, - 21, - 11, - 9 - ), + ( + (rate(node_disk_io_time_ms{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) / 10) or + rate(node_disk_io_time_seconds_total{instance=~"($ceph_hosts)([\\\\.:].*)?"}[$__rate_interval]) * 100 + ), "instance", "$1", "instance", "([^:.]*).*" + ) * on(instance, device) group_left(ceph_daemon) label_replace( + label_replace(ceph_disk_occupation_human{instance=~"($ceph_hosts)([\\\\.:].*)?", %(matchers)s}, + "device", "$1", "device", "/dev/(.*)"), "instance", "$1", "instance", "([^:.]*).*" + ) + ||| % $.matchers(), + '{{device}}({{ceph_daemon}})' + ), + ]), $.addTableExtended( datasource='${datasource}', diff --git a/monitoring/ceph-mixin/dashboards_out/host-details.json b/monitoring/ceph-mixin/dashboards_out/host-details.json index ef357d34b640e..f7f5c3e4a1fe9 100644 --- a/monitoring/ceph-mixin/dashboards_out/host-details.json +++ b/monitoring/ceph-mixin/dashboards_out/host-details.json @@ -144,29 +144,50 @@ "valueName": "current" }, { - "aliasColors": { - "interrupt": "#447EBC", - "steal": "#6D1F62", - "system": "#890F02", - "user": "#3F6833", - "wait": "#C15C17" - }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "Shows the CPU breakdown. When multiple servers are selected, only the first host's cpu data is shown", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "% Utilization", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "percent" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, "w": 6, @@ -174,31 +195,20 @@ "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 + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "expr": "sum by (mode) (\n rate(node_cpu{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\", mode=~\"(irq|nice|softirq|steal|system|user|iowait)\"}[$__rate_interval]) or\n rate(node_cpu_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\", mode=~\"(irq|nice|softirq|steal|system|user|iowait)\"}[$__rate_interval])\n) / (\n scalar(\n sum(rate(node_cpu{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_cpu_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]))\n ) * 100\n)\n", @@ -208,67 +218,54 @@ "refId": "A" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "CPU Utilization", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "percent", - "label": "% Utilization", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { - "aliasColors": { - "Available": "#508642", - "Free": "#508642", - "Total": "#bf1b00", - "Used": "#bf1b00", - "total": "#bf1b00", - "used": "#0a50a1" - }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "RAM used", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "bytes" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, "w": 6, @@ -276,27 +273,19 @@ "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 + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ { "alias": "total", @@ -306,19 +295,16 @@ "stack": false } ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "node_memory_MemFree{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_MemFree_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n", + "expr": "node_memory_MemFree{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\nnode_memory_MemFree_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "Free", "refId": "A" }, { - "expr": "node_memory_MemTotal{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_MemTotal_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n", + "expr": "node_memory_MemTotal{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\nnode_memory_MemTotal_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "total", @@ -332,67 +318,61 @@ "refId": "C" }, { - "expr": "(\n node_memory_MemTotal{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_MemTotal_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n) - (\n (\n node_memory_MemFree{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_MemFree_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n ) + (\n node_memory_Cached{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_Cached_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n ) + (\n node_memory_Buffers{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_Buffers_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n ) +\n (\n node_memory_Slab{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_Slab_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n )\n)\n", + "expr": "(\n node_memory_MemTotal{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_MemTotal_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n) - (\n (\n node_memory_MemFree{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_MemFree_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n ) + (\n node_memory_Cached{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_Cached_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n ) + (\n node_memory_Buffers{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_Buffers_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n ) + (\n node_memory_Slab{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"} or\n node_memory_Slab_bytes{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}\n )\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "used", "refId": "D" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "RAM Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "bytes", - "label": "RAM used", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "Show the network load (rx,tx) across all interfaces (excluding loopback 'lo')", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Send (-) / Receive (+)", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "decbytes" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 10, "w": 6, @@ -400,39 +380,28 @@ "y": 1 }, "id": 6, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ { "alias": "/.*tx/", "transform": "negative-Y" } ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "sum by (device) (\n rate(\n node_network_receive_bytes{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\",device!=\"lo\"}[$__rate_interval]) or\n rate(node_network_receive_bytes_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\",device!=\"lo\"}[$__rate_interval]\n )\n)\n", + "expr": "sum by (device) (\n rate(node_network_receive_bytes{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\",device!=\"lo\"}[$__rate_interval]) or\n rate(node_network_receive_bytes_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\",device!=\"lo\"}[$__rate_interval])\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}.rx", @@ -446,60 +415,54 @@ "refId": "B" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "Network Load", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "decbytes", - "label": "Send (-) / Receive (+)", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Send (-) / Receive (+)", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "pps" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 5, "w": 3, @@ -507,87 +470,43 @@ "y": 1 }, "id": 7, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ { "alias": "/.*tx/", "transform": "negative-Y" } ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "rate(node_network_receive_drop{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_network_receive_drop_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", + "expr": "rate(node_network_receive_drop{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\nrate(node_network_receive_drop_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}.rx", "refId": "A" }, { - "expr": "rate(node_network_transmit_drop{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_network_transmit_drop_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", + "expr": "rate(node_network_transmit_drop{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\nrate(node_network_transmit_drop_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}.tx", "refId": "B" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "Network drop rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "pps", - "label": "Send (-) / Receive (+)", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { "cacheTimeout": null, @@ -672,23 +591,50 @@ "valueName": "current" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Send (-) / Receive (+)", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "pps" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 5, "w": 3, @@ -696,87 +642,43 @@ "y": 6 }, "id": 9, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ { "alias": "/.*tx/", "transform": "negative-Y" } ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "rate(node_network_receive_errs{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_network_receive_errs_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", + "expr": "rate(node_network_receive_errs{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\nrate(node_network_receive_errs_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}.rx", "refId": "A" }, { - "expr": "rate(node_network_transmit_errs{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_network_transmit_errs_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", + "expr": "rate(node_network_transmit_errs{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\nrate(node_network_transmit_errs_total{instance=~\"$ceph_hosts([\\\\\\\\.:].*)?\"}[$__rate_interval])\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}.tx", "refId": "B" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "Network error rate", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "pps", - "label": "Send (-) / Receive (+)", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { "collapse": false, @@ -798,23 +700,50 @@ "type": "row" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "For any OSD devices on the host, this chart shows the iops per physical device. Each device is shown by it's name and corresponding OSD id value", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Read (-) / Write (+)", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "ops" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 11, @@ -822,36 +751,25 @@ "y": 12 }, "id": 11, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ { "alias": "/.*reads/", "transform": "negative-Y" } ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "expr": "label_replace(\n (\n rate(node_disk_writes_completed{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_writes_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) * on(instance, device) group_left(ceph_daemon) label_replace(\n label_replace(\n ceph_disk_occupation_human{cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", @@ -861,67 +779,61 @@ "refId": "A" }, { - "expr": "label_replace(\n (\n rate(node_disk_reads_completed{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_reads_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) * on(instance, device) group_left(ceph_daemon) label_replace(\n label_replace(\n ceph_disk_occupation_human{cluster=~\"$cluster\", },\"device\", \"$1\", \"device\", \"/dev/(.*)\"\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", + "expr": "label_replace(\n (\n rate(node_disk_reads_completed{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_reads_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) * on(instance, device) group_left(ceph_daemon) label_replace(\n label_replace(\n ceph_disk_occupation_human{cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}({{ceph_daemon}}) reads", "refId": "B" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "$ceph_hosts Disk IOPS", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "ops", - "label": "Read (-) / Write (+)", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "For OSD hosts, this chart shows the disk bandwidth (read bytes/sec + write bytes/sec) of the physical OSD device. Each device is shown by device name, and corresponding OSD id", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "Read (-) / Write (+)", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "Bps" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 11, @@ -929,106 +841,89 @@ "y": 12 }, "id": 12, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ { "alias": "/.*read/", "transform": "negative-Y" } ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "label_replace(\n (\n rate(node_disk_bytes_written{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_written_bytes_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\") * on(instance, device)\n group_left(ceph_daemon) label_replace(\n label_replace(ceph_disk_occupation_human{cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n )\n", + "expr": "label_replace(\n (\n rate(node_disk_bytes_written{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_written_bytes_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) * on(instance, device)\ngroup_left(ceph_daemon) label_replace(\n label_replace(ceph_disk_occupation_human{cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}({{ceph_daemon}}) write", "refId": "A" }, { - "expr": "label_replace(\n (\n rate(node_disk_bytes_read{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_read_bytes_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\") * on(instance, device)\n group_left(ceph_daemon) label_replace(\n label_replace(ceph_disk_occupation_human{cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n )\n", + "expr": "label_replace(\n (\n rate(node_disk_bytes_read{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) or\n rate(node_disk_read_bytes_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) * on(instance, device)\ngroup_left(ceph_daemon) label_replace(\n label_replace(ceph_disk_occupation_human{cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}({{ceph_daemon}}) read", "refId": "B" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "$ceph_hosts Throughput by Disk", - "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 - } - ] + "type": "timeseries" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "For OSD hosts, this chart shows the latency at the physical drive. Each drive is shown by device name, with it's corresponding OSD id", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "s" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 11, @@ -1036,94 +931,77 @@ "y": 21 }, "id": 13, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "max by(instance, device) (label_replace(\n (rate(node_disk_write_time_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])) /\n clamp_min(rate(node_disk_writes_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]), 0.001) or\n (rate(node_disk_read_time_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])) /\n clamp_min(rate(node_disk_reads_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]), 0.001),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)) * on(instance, device) group_left(ceph_daemon) label_replace(\n label_replace(\n ceph_disk_occupation_human{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"},\n \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", + "expr": "max by(instance, device) (\n label_replace(\n (\n (rate(node_disk_write_time_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])) /\n clamp_min(rate(node_disk_writes_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]), 0.001) or\n (rate(node_disk_read_time_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval])) /\n clamp_min(rate(node_disk_reads_completed_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]), 0.001)\n ),\n \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n )\n) * on(instance, device) group_left(ceph_daemon) label_replace(\n label_replace(\n ceph_disk_occupation_human{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"},\n \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}({{ceph_daemon}})", "refId": "A" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "$ceph_hosts Disk 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": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "Show disk utilization % (util) of any OSD devices on the host by the physical device name and associated OSD id.", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "%Util", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "percent" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 11, @@ -1131,31 +1009,20 @@ "y": 21 }, "id": 14, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "expr": "label_replace(\n (\n (rate(node_disk_io_time_ms{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) / 10) or\n rate(node_disk_io_time_seconds_total{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\"}[$__rate_interval]) * 100\n ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) * on(instance, device) group_left(ceph_daemon) label_replace(\n label_replace(ceph_disk_occupation_human{instance=~\"($ceph_hosts)([\\\\\\\\.:].*)?\", cluster=~\"$cluster\", },\n \"device\", \"$1\", \"device\", \"/dev/(.*)\"), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n", @@ -1165,41 +1032,8 @@ "refId": "A" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "$ceph_hosts Disk utilization", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "percent", - "label": "%Util", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] + "type": "timeseries" }, { "columns": [ ], diff --git a/monitoring/ceph-mixin/dashboards_out/hosts-overview.json b/monitoring/ceph-mixin/dashboards_out/hosts-overview.json index adbf676f5e9cd..522fe0d7dd52e 100644 --- a/monitoring/ceph-mixin/dashboards_out/hosts-overview.json +++ b/monitoring/ceph-mixin/dashboards_out/hosts-overview.json @@ -541,23 +541,51 @@ "valueName": "current" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "Show the top 10 busiest hosts by cpu", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "percent" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, @@ -565,94 +593,78 @@ "y": 5 }, "id": 8, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "topk(10,\n 100 * (\n 1 - (\n avg by(instance) (\n rate(node_cpu_seconds_total{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[$__rate_interval]) or\n rate(node_cpu{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[$__rate_interval])\n )\n )\n )\n)\n", + "expr": "topk(10,\n 100 * (\n 1 - (\n avg by(instance) (\n rate(node_cpu_seconds_total{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[$__rate_interval]) or\n rate(node_cpu{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[$__rate_interval])\n )\n )\n )\n)\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{instance}}", "refId": "A" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "CPU Busy - Top 10 Hosts", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "percent", - "label": null, - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ] + "type": "timeseries" }, { - "aliasColors": { }, - "bars": false, - "dashLength": 10, - "dashes": false, "datasource": "$datasource", - "description": "Top 10 hosts by network load", "fieldConfig": { "defaults": { + "color": { + "mode": "palette-classic" + }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", "fillOpacity": 8, - "showPoints": "never" + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 0, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ ] }, "unit": "Bps" - } + }, + "overrides": [ ] }, - "fill": 1, - "fillGradient": 0, "gridPos": { "h": 9, "w": 12, @@ -660,75 +672,31 @@ "y": 5 }, "id": 9, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sideWidth": null, - "total": false, - "values": false + "options": { + "legend": { + "calcs": [ ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } }, - "lines": true, - "linewidth": 1, - "links": [ ], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "repeat": null, + "pluginVersion": "9.1.3", "seriesOverrides": [ ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { - "expr": "topk(10, (sum by(instance) (\n(\n rate(node_network_receive_bytes{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval]) or\n rate(node_network_receive_bytes_total{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval])\n) +\n(\n rate(node_network_transmit_bytes{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval]) or\n rate(node_network_transmit_bytes_total{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval])\n) unless on (device, instance)\n label_replace((node_bonding_slaves > 0), \"device\", \"$1\", \"master\", \"(.+)\"))\n))\n", + "expr": "topk(10, (sum by(instance) (\n (\n rate(node_network_receive_bytes{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval]) or\n rate(node_network_receive_bytes_total{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval])\n ) +\n (\n rate(node_network_transmit_bytes{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval]) or\n rate(node_network_transmit_bytes_total{instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\",device!=\"lo\"}[$__rate_interval])\n ) unless on (device, instance)\n label_replace((node_bonding_slaves > 0), \"device\", \"$1\", \"master\", \"(.+)\"))\n))\n", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{instance}}", "refId": "A" } ], - "thresholds": [ ], - "timeFrom": null, - "timeShift": null, "title": "Network Load - Top 10 Hosts", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "timeseries", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ ] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": 0, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": 0, - "show": true - } - ] + "type": "timeseries" } ], "refresh": "30s", -- 2.39.5