]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in osd.libsonnet 61474/head
authorPiyush Agarwal <piyushagarwal14.pa@gmail.com>
Tue, 21 Jan 2025 23:46:03 +0000 (05:16 +0530)
committerPiyush Agarwal <piyushagarwal14.pa@gmail.com>
Fri, 28 Feb 2025 08:42:44 +0000 (14:12 +0530)
Fixes:- https://tracker.ceph.com/issues/70227
Signed-off-by: Piyush Agarwal <piyushagarwal14.pa@gmail.com>
monitoring/ceph-mixin/dashboards/osd.libsonnet
monitoring/ceph-mixin/dashboards_out/osd-device-details.json
monitoring/ceph-mixin/dashboards_out/osds-overview.json

index 2b066ea5ff098b2a17ae54c79acb3636b354cd72..5b4889e083a6f56e6b5bcc2c1f90016574f26ca5 100644 (file)
@@ -43,50 +43,48 @@ local g = import 'grafonnet/grafana.libsonnet';
       $.addClusterTemplate()
     )
     .addPanels([
-      $.simpleGraphPanel(
-        { '@95%ile': '#e0752d' },
-        'OSD Read Latencies',
-        '',
-        'ms',
-        null,
-        '0',
-        |||
-          avg (
-            rate(ceph_osd_op_r_latency_sum{%(matchers)s}[$__rate_interval]) /
-              on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval]) * 1000
-          )
-        ||| % $.matchers(),
-        'AVG read',
-        0,
-        0,
-        8,
-        8
+      $.timeSeriesPanel(
+        title='OSD Read Latencies',
+        datasource='$datasource',
+        gridPosition={ x: 0, y: 0, w: 8, h: 8 },
+        unit='ms',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addTargets(
-        [
-          $.addTargetSchema(
-            |||
-              max(
+      .addTargets([
+        $.addTargetSchema(
+          |||
+            avg(
+              rate(ceph_osd_op_r_latency_sum{%(matchers)s}[$__rate_interval]) /
+              on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval]) * 1000
+            )
+          ||| % $.matchers(),
+          'AVG read'
+        ),
+        $.addTargetSchema(
+          |||
+            max(
+              rate(ceph_osd_op_r_latency_sum{%(matchers)s}[$__rate_interval]) /
+              on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval]) * 1000
+            )
+          ||| % $.matchers(),
+          'MAX read'
+        ),
+        $.addTargetSchema(
+          |||
+            quantile(0.95,
+              (
                 rate(ceph_osd_op_r_latency_sum{%(matchers)s}[$__rate_interval]) /
                 on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval]) * 1000
               )
-            ||| % $.matchers(),
-            'MAX read'
-          ),
-          $.addTargetSchema(
-            |||
-              quantile(0.95,
-                (
-                  rate(ceph_osd_op_r_latency_sum{%(matchers)s}[$__rate_interval]) /
-                    on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval])
-                    * 1000
-                )
-              )
-            ||| % $.matchers(),
-            '@95%ile'
-          ),
-        ],
-      ),
+            )
+          ||| % $.matchers(),
+          '@95%ile'
+        ),
+      ]),
 
       $.addTableExtended(
         datasource='${datasource}',
@@ -170,51 +168,48 @@ local g = import 'grafonnet/grafana.libsonnet';
         )
       ),
 
-      $.simpleGraphPanel(
-        {
-          '@95%ile write': '#e0752d',
-        },
-        'OSD Write Latencies',
-        '',
-        'ms',
-        null,
-        '0',
-        |||
-          avg(
-            rate(ceph_osd_op_w_latency_sum{%(matchers)s}[$__rate_interval]) /
-              on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval])
-              * 1000
-          )
-        ||| % $.matchers(),
-        'AVG write',
-        12,
-        0,
-        8,
-        8
+      $.timeSeriesPanel(
+        title='OSD Write Latencies',
+        datasource='$datasource',
+        gridPosition={ x: 12, y: 0, w: 8, h: 8 },
+        unit='ms',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addTargets(
-        [
-          $.addTargetSchema(
-            |||
-              max(
+      .addTargets([
+        $.addTargetSchema(
+          |||
+            avg(
+              rate(ceph_osd_op_w_latency_sum{%(matchers)s}[$__rate_interval]) /
+              on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval]) * 1000
+            )
+          ||| % $.matchers(),
+          'AVG write'
+        ),
+        $.addTargetSchema(
+          |||
+            max(
+              rate(ceph_osd_op_w_latency_sum{%(matchers)s}[$__rate_interval]) /
+              on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval]) * 1000
+            )
+          ||| % $.matchers(),
+          'MAX write'
+        ),
+        $.addTargetSchema(
+          |||
+            quantile(0.95,
+              (
                 rate(ceph_osd_op_w_latency_sum{%(matchers)s}[$__rate_interval]) /
-                  on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval]) *
-                  1000
+                on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval]) * 1000
               )
-            ||| % $.matchers(), 'MAX write'
-          ),
-          $.addTargetSchema(
-            |||
-              quantile(0.95, (
-                rate(ceph_osd_op_w_latency_sum{%(matchers)s}[$__rate_interval]) /
-                  on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval]) *
-                  1000
-              ))
-            ||| % $.matchers(), '@95%ile write'
-          ),
-        ],
-      ),
-
+            )
+          ||| % $.matchers(),
+          '@95%ile write'
+        ),
+      ]),
       $.addTableExtended(
         datasource='${datasource}',
         title='Highest WRITE Latencies',
@@ -383,23 +378,27 @@ local g = import 'grafonnet/grafana.libsonnet';
       $.addRowSchema(false,
                      true,
                      'R/W Profile') + { gridPos: { x: 0, y: 16, w: 24, h: 1 } },
-      $.simpleGraphPanel(
-        {},
-        'Read/Write Profile',
-        'Show the read/write workload profile overtime',
-        'short',
-        null,
-        null,
-        'round(sum(rate(ceph_pool_rd{%(matchers)s}[$__rate_interval])))' % $.matchers(),
-        'Reads',
-        0,
-        17,
-        24,
-        8
+      $.timeSeriesPanel(
+        title='Read/Write Profile',
+        datasource='$datasource',
+        gridPosition={ x: 0, y: 17, w: 24, h: 8 },
+        unit='short',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addTargets([$.addTargetSchema(
-        'round(sum(rate(ceph_pool_wr{%(matchers)s}[$__rate_interval])))' % $.matchers(), 'Writes'
-      )]),
+      .addTargets([
+        $.addTargetSchema(
+          'round(sum(rate(ceph_pool_rd{%(matchers)s}[$__rate_interval])))' % $.matchers(),
+          'Reads'
+        ),
+        $.addTargetSchema(
+          'round(sum(rate(ceph_pool_wr{%(matchers)s}[$__rate_interval])))' % $.matchers(),
+          'Writes'
+        ),
+      ]),
 
       $.addTableExtended(
         datasource='${datasource}',
@@ -495,25 +494,22 @@ local g = import 'grafonnet/grafana.libsonnet';
                                 y,
                                 w,
                                 h) =
-      $.graphPanelSchema({},
-                         title,
-                         description,
-                         'null as zero',
-                         false,
-                         formatY1,
-                         'short',
-                         labelY1,
-                         null,
-                         null,
-                         1,
-                         '$datasource')
-      .addTargets(
-        [
-          $.addTargetSchema(expr1,
-                            legendFormat1),
-          $.addTargetSchema(expr2, legendFormat2),
-        ]
-      ) + { type: 'timeseries' } + { fieldConfig: { defaults: { unit: formatY1, custom: { fillOpacity: 8, showPoints: 'never' } } } } + { gridPos: { x: x, y: y, w: w, h: h } };
+      $.timeSeriesPanel(
+        title=title,
+        datasource='$datasource',
+        gridPosition={ x: x, y: y, w: w, h: h },
+        unit=formatY1,
+        axisLabel=labelY1,
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
+      )
+      .addTargets([
+        $.addTargetSchema(expr1, legendFormat1),
+        $.addTargetSchema(expr2, legendFormat2),
+      ]);
 
     $.dashboardSchema(
       'OSD device details',
@@ -565,77 +561,157 @@ local g = import 'grafonnet/grafana.libsonnet';
       $.addRowSchema(
         false, true, 'OSD Performance'
       ) + { gridPos: { x: 0, y: 0, w: 24, h: 1 } },
-      OsdDeviceDetailsPanel(
-        '$osd Latency',
-        '',
-        's',
-        'Read (-) / Write (+)',
-        |||
-          rate(ceph_osd_op_r_latency_sum{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval]) /
-            on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval])
-        ||| % $.matchers(),
-        |||
-          rate(ceph_osd_op_w_latency_sum{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval]) /
-            on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval])
-        ||| % $.matchers(),
-        'read',
-        'write',
-        0,
-        1,
-        6,
-        9
+      $.timeSeriesPanel(
+        title='$osd Latency',
+        datasource='$datasource',
+        gridPosition={ x: 0, y: 1, w: 6, h: 9 },
+        unit='s',
+        axisLabel='Read (-) / Write (+)',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addSeriesOverride(
-        {
-          alias: 'read',
-          transform: 'negative-Y',
-        }
-      ),
-      OsdDeviceDetailsPanel(
-        '$osd R/W IOPS',
-        '',
-        'short',
-        'Read (-) / Write (+)',
-        'rate(ceph_osd_op_r{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
-        'rate(ceph_osd_op_w{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
-        'Reads',
-        'Writes',
-        6,
-        1,
-        6,
-        9
+      .addTargets([
+        $.addTargetSchema(
+          |||
+            rate(ceph_osd_op_r_latency_sum{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval]) /
+              on (ceph_daemon) rate(ceph_osd_op_r_latency_count{%(matchers)s}[$__rate_interval])
+          ||| % $.matchers(),
+          'read'
+        ),
+        $.addTargetSchema(
+          |||
+            rate(ceph_osd_op_w_latency_sum{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval]) /
+              on (ceph_daemon) rate(ceph_osd_op_w_latency_count{%(matchers)s}[$__rate_interval])
+          ||| % $.matchers(),
+          'write'
+        ),
+      ])
+      .addSeriesOverride({
+        alias: 'read',
+        transform: 'negative-Y',
+      }),
+      $.timeSeriesPanel(
+        title='$osd R/W IOPS',
+        datasource='$datasource',
+        gridPosition={ x: 6, y: 1, w: 6, h: 9 },
+        unit='short',
+        axisLabel='Read (-) / Write (+)',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addSeriesOverride(
-        { alias: 'Reads', transform: 'negative-Y' }
-      ),
-      OsdDeviceDetailsPanel(
-        '$osd R/W Bytes',
-        '',
-        'bytes',
-        'Read (-) / Write (+)',
-        'rate(ceph_osd_op_r_out_bytes{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
-        'rate(ceph_osd_op_w_in_bytes{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
-        'Read Bytes',
-        'Write Bytes',
-        12,
-        1,
-        6,
-        9
+      .addTargets([
+        $.addTargetSchema(
+          'rate(ceph_osd_op_r{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
+          'Reads'
+        ),
+        $.addTargetSchema(
+          'rate(ceph_osd_op_w{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
+          'Writes'
+        ),
+      ])
+      .addSeriesOverride({
+        alias: 'Reads',
+        transform: 'negative-Y',
+      }),
+      $.timeSeriesPanel(
+        title='$osd R/W Bytes',
+        datasource='$datasource',
+        gridPosition={ x: 12, y: 1, w: 6, h: 9 },
+        unit='bytes',
+        axisLabel='Read (-) / Write (+)',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
+      .addTargets([
+        $.addTargetSchema(
+          'rate(ceph_osd_op_r_out_bytes{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
+          'Read Bytes'
+        ),
+        $.addTargetSchema(
+          'rate(ceph_osd_op_w_in_bytes{ceph_daemon=~"$osd", %(matchers)s}[$__rate_interval])' % $.matchers(),
+          'Write Bytes'
+        ),
+      ])
       .addSeriesOverride({ alias: 'Read Bytes', transform: 'negative-Y' }),
       $.addRowSchema(
         false, true, 'Physical Device Performance'
       ) + { gridPos: { x: 0, y: 10, w: 24, h: 1 } },
-      OsdDeviceDetailsPanel(
-        'Physical Device Latency for $osd',
-        '',
-        's',
-        'Read (-) / Write (+)',
-        |||
-          (
+      $.timeSeriesPanel(
+        title='Physical Device Latency for $osd',
+        datasource='$datasource',
+        gridPosition={ x: 0, y: 11, w: 6, h: 9 },
+        unit='s',
+        axisLabel='Read (-) / Write (+)',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
+      )
+      .addTargets([
+        $.addTargetSchema(
+          |||
+            (
+              label_replace(
+                rate(node_disk_read_time_seconds_total[$__rate_interval]) /
+                  rate(node_disk_reads_completed_total[$__rate_interval]),
+                "instance", "$1", "instance", "([^:.]*).*"
+              ) and on (instance, device) label_replace(
+                label_replace(
+                  ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
+                  "device", "$1", "device", "/dev/(.*)"
+                ), "instance", "$1", "instance", "([^:.]*).*"
+              )
+            )
+          ||| % $.matchers(),
+          '{{instance}}/{{device}} Reads'
+        ),
+        $.addTargetSchema(
+          |||
+            (
+              label_replace(
+                rate(node_disk_write_time_seconds_total[$__rate_interval]) /
+                  rate(node_disk_writes_completed_total[$__rate_interval]),
+                "instance", "$1", "instance", "([^:.]*).*") and on (instance, device)
+                label_replace(
+                  label_replace(
+                    ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s}, "device", "$1", "device", "/dev/(.*)"
+                  ), "instance", "$1", "instance", "([^:.]*).*"
+                )
+            )
+          ||| % $.matchers(),
+          '{{instance}}/{{device}} Writes'
+        ),
+      ])
+      .addSeriesOverride(
+        { alias: '/.*Reads/', transform: 'negative-Y' }
+      ),
+      $.timeSeriesPanel(
+        title='Physical Device R/W IOPS for $osd',
+        datasource='$datasource',
+        gridPosition={ x: 6, y: 11, w: 6, h: 9 },
+        unit='short',
+        axisLabel='Read (-) / Write (+)',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
+      )
+      .addTargets([
+        $.addTargetSchema(
+          |||
             label_replace(
-              rate(node_disk_read_time_seconds_total[$__rate_interval]) /
-                rate(node_disk_reads_completed_total[$__rate_interval]),
+              rate(node_disk_writes_completed_total[$__rate_interval]),
               "instance", "$1", "instance", "([^:.]*).*"
             ) and on (instance, device) label_replace(
               label_replace(
@@ -643,129 +719,97 @@ local g = import 'grafonnet/grafana.libsonnet';
                 "device", "$1", "device", "/dev/(.*)"
               ), "instance", "$1", "instance", "([^:.]*).*"
             )
-          )
-        ||| % $.matchers(),
-        |||
-          (
+          ||| % $.matchers(),
+          '{{device}} on {{instance}} Writes'
+        ),
+        $.addTargetSchema(
+          |||
             label_replace(
-              rate(node_disk_write_time_seconds_total[$__rate_interval]) /
-                rate(node_disk_writes_completed_total[$__rate_interval]),
-              "instance", "$1", "instance", "([^:.]*).*") and on (instance, device)
+              rate(node_disk_reads_completed_total[$__rate_interval]),
+              "instance", "$1", "instance", "([^:.]*).*"
+            ) and on (instance, device) label_replace(
               label_replace(
-                label_replace(
-                  ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s}, "device", "$1", "device", "/dev/(.*)"
-                ), "instance", "$1", "instance", "([^:.]*).*"
-              )
+                ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
+                "device", "$1", "device", "/dev/(.*)"
+              ), "instance", "$1", "instance", "([^:.]*).*"
             )
-        ||| % $.matchers(),
-        '{{instance}}/{{device}} Reads',
-        '{{instance}}/{{device}} Writes',
-        0,
-        11,
-        6,
-        9
-      )
+          ||| % $.matchers(),
+          '{{device}} on {{instance}} Reads'
+        ),
+      ])
       .addSeriesOverride(
         { alias: '/.*Reads/', transform: 'negative-Y' }
       ),
-      OsdDeviceDetailsPanel(
-        'Physical Device R/W IOPS for $osd',
-        '',
-        'short',
-        'Read (-) / Write (+)',
-        |||
-          label_replace(
-            rate(node_disk_writes_completed_total[$__rate_interval]),
-            "instance", "$1", "instance", "([^:.]*).*"
-          ) and on (instance, device) label_replace(
-            label_replace(
-              ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
-              "device", "$1", "device", "/dev/(.*)"
-            ), "instance", "$1", "instance", "([^:.]*).*"
-          )
-        ||| % $.matchers(),
-        |||
-          label_replace(
-            rate(node_disk_reads_completed_total[$__rate_interval]),
-            "instance", "$1", "instance", "([^:.]*).*"
-          ) and on (instance, device) label_replace(
-            label_replace(
-              ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
-              "device", "$1", "device", "/dev/(.*)"
-            ), "instance", "$1", "instance", "([^:.]*).*"
-          )
-        ||| % $.matchers(),
-        '{{device}} on {{instance}} Writes',
-        '{{device}} on {{instance}} Reads',
-        6,
-        11,
-        6,
-        9
+      $.timeSeriesPanel(
+        title='Physical Device R/W Bytes for $osd',
+        datasource='$datasource',
+        gridPosition={ x: 12, y: 11, w: 6, h: 9 },
+        unit='Bps',
+        axisLabel='Read (-) / Write (+)',
+        drawStyle='line',
+        fillOpacity=8,
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addSeriesOverride(
-        { alias: '/.*Reads/', transform: 'negative-Y' }
-      ),
-      OsdDeviceDetailsPanel(
-        'Physical Device R/W Bytes for $osd',
-        '',
-        'Bps',
-        'Read (-) / Write (+)',
-        |||
-          label_replace(
-            rate(node_disk_read_bytes_total[$__rate_interval]), "instance", "$1", "instance", "([^:.]*).*"
-          ) and on (instance, device) label_replace(
+      .addTargets([
+        $.addTargetSchema(
+          |||
             label_replace(
-              ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
-              "device", "$1", "device", "/dev/(.*)"
-            ), "instance", "$1", "instance", "([^:.]*).*"
-          )
-        ||| % $.matchers(),
-        |||
-          label_replace(
-            rate(node_disk_written_bytes_total[$__rate_interval]), "instance", "$1", "instance", "([^:.]*).*"
-          ) and on (instance, device) label_replace(
+              rate(node_disk_read_bytes_total[$__rate_interval]), "instance", "$1", "instance", "([^:.]*).*"
+            ) and on (instance, device) label_replace(
+              label_replace(
+                ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
+                "device", "$1", "device", "/dev/(.*)"
+              ), "instance", "$1", "instance", "([^:.]*).*"
+            )
+          ||| % $.matchers(),
+          '{{instance}} {{device}} Reads'
+        ),
+        $.addTargetSchema(
+          |||
             label_replace(
-              ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
-              "device", "$1", "device", "/dev/(.*)"
-            ), "instance", "$1", "instance", "([^:.]*).*"
-          )
-        ||| % $.matchers(),
-        '{{instance}} {{device}} Reads',
-        '{{instance}} {{device}} Writes',
-        12,
-        11,
-        6,
-        9
-      )
+              rate(node_disk_written_bytes_total[$__rate_interval]), "instance", "$1", "instance", "([^:.]*).*"
+            ) and on (instance, device) label_replace(
+              label_replace(
+                ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s},
+                "device", "$1", "device", "/dev/(.*)"
+              ), "instance", "$1", "instance", "([^:.]*).*"
+            )
+          ||| % $.matchers(),
+          '{{instance}} {{device}} Writes'
+        ),
+      ])
       .addSeriesOverride(
         { alias: '/.*Reads/', transform: 'negative-Y' }
       ),
-      $.graphPanelSchema(
-        {},
-        'Physical Device Util% for $osd',
-        '',
-        'null',
-        false,
-        'percentunit',
-        'short',
-        null,
-        null,
-        null,
-        1,
-        '$datasource'
+      $.timeSeriesPanel(
+        title='Physical Device Util% for $osd',
+        datasource='$datasource',
+        gridPosition={ x: 18, y: 11, w: 6, h: 9 },
+        unit='percentunit',
+        axisLabel='',
+        drawStyle='line',
+        fillOpacity=8,
+        showPoints='never',
+        tooltip={ mode: 'multi', sort: 'none' },
+        colorMode='palette-classic',
+        spanNulls=true,
       )
-      .addTarget($.addTargetSchema(
-        |||
-          label_replace(
-            rate(node_disk_io_time_seconds_total[$__rate_interval]),
-            "instance", "$1", "instance", "([^:.]*).*"
-          ) and on (instance, device) label_replace(
+      .addTargets([
+        $.addTargetSchema(
+          |||
             label_replace(
-              ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s}, "device", "$1", "device", "/dev/(.*)"
-            ), "instance", "$1", "instance", "([^:.]*).*"
-          )
-        ||| % $.matchers(),
-        '{{device}} on {{instance}}'
-      )) + { type: 'timeseries' } + { fieldConfig: { defaults: { unit: 'percentunit', custom: { fillOpacity: 8, showPoints: 'never' } } } } + { gridPos: { x: 18, y: 11, w: 6, h: 9 } },
+              rate(node_disk_io_time_seconds_total[$__rate_interval]),
+              "instance", "$1", "instance", "([^:.]*).*"
+            ) and on (instance, device) label_replace(
+              label_replace(
+                ceph_disk_occupation_human{ceph_daemon=~"$osd", %(matchers)s}, "device", "$1", "device", "/dev/(.*)"
+              ), "instance", "$1", "instance", "([^:.]*).*"
+            )
+          ||| % $.matchers(),
+          '{{device}} on {{instance}}'
+        ),
+      ]),
     ]),
 }
index 60f1ecc5ad0c4fe45ae5a5cc3fca8bfca491a680..199465a4578be1299c04d8f7db5c2161de245415 100644 (file)
          "type": "row"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "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": 6,
             "y": 1
          },
          "id": 3,
-         "legend": {
-            "alignAsTable": false,
-            "avg": false,
-            "current": false,
-            "max": false,
-            "min": false,
-            "rightSide": false,
-            "show": true,
-            "sideWidth": null,
-            "total": false,
-            "values": false
+         "options": {
+            "legend": {
+               "calcs": [ ],
+               "displayMode": "list",
+               "placement": "bottom",
+               "showLegend": true
+            },
+            "tooltip": {
+               "mode": "multi",
+               "sort": "none"
+            }
          },
-         "lines": true,
-         "linewidth": 1,
-         "links": [ ],
-         "nullPointMode": "null as zero",
-         "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": "rate(ceph_osd_op_r_latency_sum{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval]) /\n  on (ceph_daemon) rate(ceph_osd_op_r_latency_count{cluster=~\"$cluster\", }[$__rate_interval])\n",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "$osd Latency",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "s",
-               "label": "Read (-) / Write (+)",
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "spanNulls": true,
+                  "stacking": {
+                     "group": "A",
+                     "mode": "none"
+                  },
+                  "thresholdsStyle": {
+                     "mode": "off"
+                  }
+               },
+               "thresholds": {
+                  "mode": "absolute",
+                  "steps": [ ]
                },
                "unit": "short"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 9,
             "w": 6,
             "y": 1
          },
          "id": 4,
-         "legend": {
-            "alignAsTable": false,
-            "avg": false,
-            "current": false,
-            "max": false,
-            "min": false,
-            "rightSide": false,
-            "show": true,
-            "sideWidth": null,
-            "total": false,
-            "values": false
+         "options": {
+            "legend": {
+               "calcs": [ ],
+               "displayMode": "list",
+               "placement": "bottom",
+               "showLegend": true
+            },
+            "tooltip": {
+               "mode": "multi",
+               "sort": "none"
+            }
          },
-         "lines": true,
-         "linewidth": 1,
-         "links": [ ],
-         "nullPointMode": "null as zero",
-         "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": "rate(ceph_osd_op_r{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval])",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "$osd R/W IOPS",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "short",
-               "label": "Read (-) / Write (+)",
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "spanNulls": true,
+                  "stacking": {
+                     "group": "A",
+                     "mode": "none"
+                  },
+                  "thresholdsStyle": {
+                     "mode": "off"
+                  }
+               },
+               "thresholds": {
+                  "mode": "absolute",
+                  "steps": [ ]
                },
                "unit": "bytes"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 9,
             "w": 6,
             "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 as zero",
-         "percentage": false,
-         "pointradius": 5,
-         "points": false,
-         "renderer": "flot",
-         "repeat": null,
+         "pluginVersion": "9.1.3",
          "seriesOverrides": [
             {
                "alias": "Read Bytes",
                "transform": "negative-Y"
             }
          ],
-         "spaceLength": 10,
-         "stack": false,
-         "steppedLine": false,
          "targets": [
             {
                "expr": "rate(ceph_osd_op_r_out_bytes{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }[$__rate_interval])",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "$osd R/W Bytes",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "bytes",
-               "label": "Read (-) / Write (+)",
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
          "collapse": false,
          "type": "row"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "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": 6,
             "y": 11
          },
          "id": 7,
-         "legend": {
-            "alignAsTable": false,
-            "avg": false,
-            "current": false,
-            "max": false,
-            "min": false,
-            "rightSide": false,
-            "show": true,
-            "sideWidth": null,
-            "total": false,
-            "values": false
+         "options": {
+            "legend": {
+               "calcs": [ ],
+               "displayMode": "list",
+               "placement": "bottom",
+               "showLegend": true
+            },
+            "tooltip": {
+               "mode": "multi",
+               "sort": "none"
+            }
          },
-         "lines": true,
-         "linewidth": 1,
-         "links": [ ],
-         "nullPointMode": "null as zero",
-         "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": "(\n  label_replace(\n    rate(node_disk_read_time_seconds_total[$__rate_interval]) /\n      rate(node_disk_reads_completed_total[$__rate_interval]),\n    \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n  ) and on (instance, device) label_replace(\n    label_replace(\n      ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n      \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n    ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n  )\n)\n",
                "refId": "A"
             },
             {
-               "expr": "(\n  label_replace(\n    rate(node_disk_write_time_seconds_total[$__rate_interval]) /\n      rate(node_disk_writes_completed_total[$__rate_interval]),\n    \"instance\", \"$1\", \"instance\", \"([^:.]*).*\") and on (instance, device)\n    label_replace(\n      label_replace(\n        ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n      ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n    )\n  )\n",
+               "expr": "(\n  label_replace(\n    rate(node_disk_write_time_seconds_total[$__rate_interval]) /\n      rate(node_disk_writes_completed_total[$__rate_interval]),\n    \"instance\", \"$1\", \"instance\", \"([^:.]*).*\") and on (instance, device)\n    label_replace(\n      label_replace(\n        ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n      ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n    )\n)\n",
                "format": "time_series",
                "intervalFactor": 1,
                "legendFormat": "{{instance}}/{{device}} Writes",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "Physical Device Latency for $osd",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "s",
-               "label": "Read (-) / Write (+)",
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "spanNulls": true,
+                  "stacking": {
+                     "group": "A",
+                     "mode": "none"
+                  },
+                  "thresholdsStyle": {
+                     "mode": "off"
+                  }
+               },
+               "thresholds": {
+                  "mode": "absolute",
+                  "steps": [ ]
                },
                "unit": "short"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 9,
             "w": 6,
             "y": 11
          },
          "id": 8,
-         "legend": {
-            "alignAsTable": false,
-            "avg": false,
-            "current": false,
-            "max": false,
-            "min": false,
-            "rightSide": false,
-            "show": true,
-            "sideWidth": null,
-            "total": false,
-            "values": false
+         "options": {
+            "legend": {
+               "calcs": [ ],
+               "displayMode": "list",
+               "placement": "bottom",
+               "showLegend": true
+            },
+            "tooltip": {
+               "mode": "multi",
+               "sort": "none"
+            }
          },
-         "lines": true,
-         "linewidth": 1,
-         "links": [ ],
-         "nullPointMode": "null as zero",
-         "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  rate(node_disk_writes_completed_total[$__rate_interval]),\n  \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n    \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "Physical Device R/W IOPS for $osd",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "short",
-               "label": "Read (-) / Write (+)",
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "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": 6,
             "y": 11
          },
          "id": 9,
-         "legend": {
-            "alignAsTable": false,
-            "avg": false,
-            "current": false,
-            "max": false,
-            "min": false,
-            "rightSide": false,
-            "show": true,
-            "sideWidth": null,
-            "total": false,
-            "values": false
+         "options": {
+            "legend": {
+               "calcs": [ ],
+               "displayMode": "list",
+               "placement": "bottom",
+               "showLegend": true
+            },
+            "tooltip": {
+               "mode": "multi",
+               "sort": "none"
+            }
          },
-         "lines": true,
-         "linewidth": 1,
-         "links": [ ],
-         "nullPointMode": "null as zero",
-         "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  rate(node_disk_read_bytes_total[$__rate_interval]), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", },\n    \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "Physical Device R/W Bytes for $osd",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "Bps",
-               "label": "Read (-) / Write (+)",
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "percentunit"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 9,
             "w": 6,
             "y": 11
          },
          "id": 10,
-         "legend": {
-            "alignAsTable": false,
-            "avg": false,
-            "current": false,
-            "max": false,
-            "min": false,
-            "rightSide": false,
-            "show": true,
-            "sideWidth": null,
-            "total": false,
-            "values": false
+         "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  rate(node_disk_io_time_seconds_total[$__rate_interval]),\n  \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n) and on (instance, device) label_replace(\n  label_replace(\n    ceph_disk_occupation_human{ceph_daemon=~\"$osd\", cluster=~\"$cluster\", }, \"device\", \"$1\", \"device\", \"/dev/(.*)\"\n  ), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\"\n)\n",
                "refId": "A"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "Physical Device Util% for $osd",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "percentunit",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": null,
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       }
    ],
    "refresh": "30s",
index 948f0d721b67d14d00adf2b912746c4ad786cf55..5460610de18384554daca321ff5605cd346319f8 100644 (file)
    "links": [ ],
    "panels": [
       {
-         "aliasColors": {
-            "@95%ile": "#e0752d"
-         },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "spanNulls": true,
+                  "stacking": {
+                     "group": "A",
+                     "mode": "none"
+                  },
+                  "thresholdsStyle": {
+                     "mode": "off"
+                  }
+               },
+               "thresholds": {
+                  "mode": "absolute",
+                  "steps": [ ]
                },
                "unit": "ms"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 8,
             "w": 8,
             "y": 0
          },
          "id": 2,
-         "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": "avg (\n  rate(ceph_osd_op_r_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n    on (ceph_daemon) rate(ceph_osd_op_r_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) * 1000\n)\n",
+               "expr": "avg(\n  rate(ceph_osd_op_r_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n  on (ceph_daemon) rate(ceph_osd_op_r_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) * 1000\n)\n",
                "format": "time_series",
                "intervalFactor": 1,
                "legendFormat": "AVG read",
                "refId": "B"
             },
             {
-               "expr": "quantile(0.95,\n  (\n    rate(ceph_osd_op_r_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n      on (ceph_daemon) rate(ceph_osd_op_r_latency_count{cluster=~\"$cluster\", }[$__rate_interval])\n      * 1000\n  )\n)\n",
+               "expr": "quantile(0.95,\n  (\n    rate(ceph_osd_op_r_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n    on (ceph_daemon) rate(ceph_osd_op_r_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) * 1000\n  )\n)\n",
                "format": "time_series",
                "intervalFactor": 1,
                "legendFormat": "@95%ile",
                "refId": "C"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "OSD Read Latencies",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "ms",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": "0",
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": "0",
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
          "columns": [ ],
          "type": "table"
       },
       {
-         "aliasColors": {
-            "@95%ile write": "#e0752d"
-         },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "",
          "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": "",
+                  "spanNulls": true,
+                  "stacking": {
+                     "group": "A",
+                     "mode": "none"
+                  },
+                  "thresholdsStyle": {
+                     "mode": "off"
+                  }
+               },
+               "thresholds": {
+                  "mode": "absolute",
+                  "steps": [ ]
                },
                "unit": "ms"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 8,
             "w": 8,
             "y": 0
          },
          "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": "avg(\n  rate(ceph_osd_op_w_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n    on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval])\n    * 1000\n)\n",
+               "expr": "avg(\n  rate(ceph_osd_op_w_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n  on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) * 1000\n)\n",
                "format": "time_series",
                "intervalFactor": 1,
                "legendFormat": "AVG write",
                "refId": "A"
             },
             {
-               "expr": "max(\n  rate(ceph_osd_op_w_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n    on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) *\n    1000\n)\n",
+               "expr": "max(\n  rate(ceph_osd_op_w_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n  on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) * 1000\n)\n",
                "format": "time_series",
                "intervalFactor": 1,
                "legendFormat": "MAX write",
                "refId": "B"
             },
             {
-               "expr": "quantile(0.95, (\n  rate(ceph_osd_op_w_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n    on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) *\n    1000\n))\n",
+               "expr": "quantile(0.95,\n  (\n    rate(ceph_osd_op_w_latency_sum{cluster=~\"$cluster\", }[$__rate_interval]) /\n    on (ceph_daemon) rate(ceph_osd_op_w_latency_count{cluster=~\"$cluster\", }[$__rate_interval]) * 1000\n  )\n)\n",
                "format": "time_series",
                "intervalFactor": 1,
                "legendFormat": "@95%ile write",
                "refId": "C"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "OSD Write Latencies",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "xaxis": {
-            "buckets": null,
-            "mode": "time",
-            "name": null,
-            "show": true,
-            "values": [ ]
-         },
-         "yaxes": [
-            {
-               "format": "ms",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": "0",
-               "show": true
-            },
-            {
-               "format": "short",
-               "label": null,
-               "logBase": 1,
-               "max": null,
-               "min": "0",
-               "show": true
-            }
-         ]
+         "type": "timeseries"
       },
       {
          "columns": [ ],
          "type": "row"
       },
       {
-         "aliasColors": { },
-         "bars": false,
-         "dashLength": 10,
-         "dashes": false,
          "datasource": "$datasource",
-         "description": "Show the read/write workload profile overtime",
          "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": "",
+                  "spanNulls": true,
+                  "stacking": {
+                     "group": "A",
+                     "mode": "none"
+                  },
+                  "thresholdsStyle": {
+                     "mode": "off"
+                  }
+               },
+               "thresholds": {
+                  "mode": "absolute",
+                  "steps": [ ]
                },
                "unit": "short"
-            }
+            },
+            "overrides": [ ]
          },
-         "fill": 1,
-         "fillGradient": 0,
          "gridPos": {
             "h": 8,
             "w": 24,
             "y": 17
          },
          "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": [ ],
-         "spaceLength": 10,
-         "stack": false,
-         "steppedLine": false,
          "targets": [
             {
                "expr": "round(sum(rate(ceph_pool_rd{cluster=~\"$cluster\", }[$__rate_interval])))",
                "refId": "B"
             }
          ],
-         "thresholds": [ ],
-         "timeFrom": null,
-         "timeShift": null,
          "title": "Read/Write Profile",
-         "tooltip": {
-            "shared": true,
-            "sort": 0,
-            "value_type": "individual"
-         },
-         "type": "timeseries",
-         "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
-            }
-         ]
+         "type": "timeseries"
       },
       {
          "columns": [ ],