Skip to content

Commit f9522f5

Browse files
authored
Merge pull request ceph#61476 from piyushagarwal1411/pool
mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in pool.libsonnet to fix inconsistency in Line Graphs Reviewed-by: Aashish Sharma <[email protected]>
2 parents 3101743 + 0980725 commit f9522f5

File tree

3 files changed

+513
-628
lines changed

3 files changed

+513
-628
lines changed

monitoring/ceph-mixin/dashboards/pool.libsonnet

Lines changed: 163 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -527,74 +527,85 @@ local g = import 'grafonnet/grafana.libsonnet';
527527
]
528528
),
529529

530-
$.simpleGraphPanel(
531-
{},
532-
'Top $topk Client IOPS by Pool',
533-
'This chart shows the sum of read and write IOPS from all clients by pool',
534-
'short',
535-
'IOPS',
536-
0,
537-
|||
538-
topk($topk,
539-
round(
540-
(
541-
rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) +
542-
rate(ceph_pool_wr{%(matchers)s}[$__rate_interval])
543-
), 1
544-
) * on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s})
545-
||| % $.matchers(),
546-
'{{name}} ',
547-
0,
548-
9,
549-
12,
550-
8
530+
$.timeSeriesPanel(
531+
title='Top $topk Client IOPS by Pool',
532+
datasource='$datasource',
533+
gridPosition={ x: 0, y: 9, w: 12, h: 8 },
534+
unit='short',
535+
axisLabel='IOPS',
536+
drawStyle='line',
537+
fillOpacity=8,
538+
tooltip={ mode: 'multi', sort: 'none' },
539+
colorMode='palette-classic',
540+
spanNulls=true,
551541
)
552-
.addTarget(
542+
.addTargets([
543+
$.addTargetSchema(
544+
|||
545+
topk($topk,
546+
round(
547+
(
548+
rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) +
549+
rate(ceph_pool_wr{%(matchers)s}[$__rate_interval])
550+
), 1
551+
) * on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s}
552+
)
553+
||| % $.matchers(),
554+
'{{name}}'
555+
),
553556
$.addTargetSchema(
554557
|||
555558
topk($topk,
556559
rate(ceph_pool_wr{%(matchers)s}[$__rate_interval]) +
557-
on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s}
560+
on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s}
558561
)
559562
||| % $.matchers(),
560563
'{{name}} - write'
561-
)
562-
),
563-
$.simpleGraphPanel(
564-
{},
565-
'Top $topk Client Bandwidth by Pool',
566-
'The chart shows the sum of read and write bytes from all clients, by pool',
567-
'Bps',
568-
'Throughput',
569-
0,
570-
|||
571-
topk($topk,
572-
(
573-
rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
564+
),
565+
]),
566+
$.timeSeriesPanel(
567+
title='Top $topk Client Bandwidth by Pool',
568+
datasource='$datasource',
569+
gridPosition={ x: 12, y: 9, w: 12, h: 8 },
570+
unit='Bps',
571+
axisLabel='Throughput',
572+
drawStyle='line',
573+
fillOpacity=8,
574+
tooltip={ mode: 'multi', sort: 'none' },
575+
colorMode='palette-classic',
576+
spanNulls=true,
577+
)
578+
.addTargets([
579+
$.addTargetSchema(
580+
|||
581+
topk($topk,
582+
(
583+
rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
574584
rate(ceph_pool_wr_bytes{%(matchers)s}[$__rate_interval])
575-
) * on(pool_id) group_left(instance, name) ceph_pool_metadata{%(matchers)s}
576-
)
577-
||| % $.matchers(),
578-
'{{name}}',
579-
12,
580-
9,
581-
12,
582-
8
583-
),
584-
$.simpleGraphPanel(
585-
{},
586-
'Pool Capacity Usage (RAW)',
587-
'Historical view of capacity usage, to help identify growth and trends in pool consumption',
588-
'bytes',
589-
'Capacity Used',
590-
0,
591-
'ceph_pool_bytes_used{%(matchers)s} * on(pool_id) group_right ceph_pool_metadata{%(matchers)s}' % $.matchers(),
592-
'{{name}}',
593-
0,
594-
17,
595-
24,
596-
7
597-
),
585+
) * on(pool_id) group_left(instance, name) ceph_pool_metadata{%(matchers)s}
586+
)
587+
||| % $.matchers(),
588+
'{{name}}'
589+
),
590+
]),
591+
$.timeSeriesPanel(
592+
title='Pool Capacity Usage (RAW)',
593+
datasource='$datasource',
594+
gridPosition={ x: 0, y: 17, w: 24, h: 7 },
595+
unit='bytes',
596+
axisLabel='Capacity Used',
597+
drawStyle='line',
598+
fillOpacity=8,
599+
tooltip={ mode: 'multi', sort: 'none' },
600+
colorMode='palette-classic',
601+
spanNulls=true,
602+
)
603+
.addTargets([
604+
$.addTargetSchema(
605+
'ceph_pool_bytes_used{%(matchers)s} * on(pool_id) group_right ceph_pool_metadata{%(matchers)s}' % $.matchers(),
606+
'{{name}}'
607+
),
608+
]),
598609
]),
599610
'pool-detail.json':
600611
$.dashboardSchema(
@@ -698,106 +709,111 @@ local g = import 'grafonnet/grafana.libsonnet';
698709
5,
699710
7
700711
),
701-
$.simpleGraphPanel(
702-
{
703-
read_op_per_sec:
704-
'#3F6833',
705-
write_op_per_sec: '#E5AC0E',
706-
},
707-
'$pool_name Object Ingress/Egress',
708-
'',
709-
'ops',
710-
'Objects out(-) / in(+) ',
711-
null,
712-
|||
713-
deriv(ceph_pool_objects{%(matchers)s}[1m]) *
714-
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
715-
||| % $.matchers(),
716-
'Objects per second',
717-
12,
718-
0,
719-
12,
720-
7
721-
),
722-
$.simpleGraphPanel(
723-
{
724-
read_op_per_sec: '#3F6833',
725-
write_op_per_sec: '#E5AC0E',
726-
},
727-
'$pool_name Client IOPS',
728-
'',
729-
'iops',
730-
'Read (-) / Write (+)',
731-
null,
732-
|||
733-
rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) *
734-
on(pool_id) group_left(instance,name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
735-
||| % $.matchers(),
736-
'reads',
737-
0,
738-
7,
739-
12,
740-
7
712+
$.timeSeriesPanel(
713+
title='$pool_name Object Ingress/Egress',
714+
datasource='$datasource',
715+
gridPosition={ x: 12, y: 0, w: 12, h: 7 },
716+
unit='ops',
717+
axisLabel='Objects out(-) / in(+)',
718+
drawStyle='line',
719+
fillOpacity=8,
720+
tooltip={ mode: 'multi', sort: 'none' },
721+
colorMode='palette-classic',
722+
spanNulls=true,
723+
)
724+
.addTargets([
725+
$.addTargetSchema(
726+
|||
727+
deriv(ceph_pool_objects{%(matchers)s}[1m]) *
728+
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
729+
||| % $.matchers(),
730+
'Objects per second'
731+
),
732+
]),
733+
$.timeSeriesPanel(
734+
title='$pool_name Client IOPS',
735+
datasource='$datasource',
736+
gridPosition={ x: 0, y: 7, w: 12, h: 7 },
737+
unit='iops',
738+
axisLabel='Read (-) / Write (+)',
739+
drawStyle='line',
740+
fillOpacity=8,
741+
tooltip={ mode: 'multi', sort: 'none' },
742+
colorMode='palette-classic',
743+
spanNulls=true,
741744
)
742-
.addSeriesOverride({ alias: 'reads', transform: 'negative-Y' })
743-
.addTarget(
745+
.addTargets([
746+
$.addTargetSchema(
747+
|||
748+
rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) *
749+
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
750+
||| % $.matchers(),
751+
'reads'
752+
),
744753
$.addTargetSchema(
745754
|||
746755
rate(ceph_pool_wr{%(matchers)s}[$__rate_interval]) *
747756
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
748757
||| % $.matchers(),
749758
'writes'
750-
)
751-
),
752-
$.simpleGraphPanel(
753-
{
754-
read_op_per_sec: '#3F6833',
755-
write_op_per_sec: '#E5AC0E',
756-
},
757-
'$pool_name Client Throughput',
758-
'',
759-
'Bps',
760-
'Read (-) / Write (+)',
761-
null,
762-
|||
763-
rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
764-
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
765-
||| % $.matchers(),
766-
'reads',
767-
12,
768-
7,
769-
12,
770-
7
759+
),
760+
])
761+
.addSeriesOverride({
762+
alias: 'reads',
763+
transform: 'negative-Y',
764+
}),
765+
$.timeSeriesPanel(
766+
title='$pool_name Client Throughput',
767+
datasource='$datasource',
768+
gridPosition={ x: 12, y: 7, w: 12, h: 7 },
769+
unit='Bps',
770+
axisLabel='Read (-) / Write (+)',
771+
drawStyle='line',
772+
fillOpacity=8,
773+
tooltip={ mode: 'multi', sort: 'none' },
774+
colorMode='palette-classic',
775+
spanNulls=true,
771776
)
772-
.addSeriesOverride({ alias: 'reads', transform: 'negative-Y' })
773-
.addTarget(
777+
.addTargets([
778+
$.addTargetSchema(
779+
|||
780+
rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
781+
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
782+
||| % $.matchers(),
783+
'reads'
784+
),
774785
$.addTargetSchema(
775786
|||
776787
rate(ceph_pool_wr_bytes{%(matchers)s}[$__rate_interval]) +
777-
on(pool_id) group_left(instance,name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
788+
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
778789
||| % $.matchers(),
779790
'writes'
780-
)
781-
),
782-
$.simpleGraphPanel(
783-
{
784-
read_op_per_sec: '#3F6833',
785-
write_op_per_sec: '#E5AC0E',
786-
},
787-
'$pool_name Objects',
788-
'',
789-
'short',
790-
'Objects',
791-
null,
792-
|||
793-
ceph_pool_objects{%(matchers)s} *
794-
on(pool_id) group_left(instance,name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
795-
||| % $.matchers(),
796-
'Number of Objects',
797-
0,
798-
14,
799-
12,
800-
7
801-
),
791+
),
792+
])
793+
.addSeriesOverride({
794+
alias: 'reads',
795+
transform: 'negative-Y',
796+
}),
797+
$.timeSeriesPanel(
798+
title='$pool_name Objects',
799+
datasource='$datasource',
800+
gridPosition={ x: 0, y: 14, w: 12, h: 7 },
801+
unit='short',
802+
axisLabel='Objects',
803+
drawStyle='line',
804+
fillOpacity=8,
805+
tooltip={ mode: 'multi', sort: 'none' },
806+
colorMode='palette-classic',
807+
spanNulls=true,
808+
)
809+
.addTargets([
810+
$.addTargetSchema(
811+
|||
812+
ceph_pool_objects{%(matchers)s} *
813+
on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
814+
||| % $.matchers(),
815+
'Number of Objects'
816+
),
817+
]),
802818
]),
803819
}

0 commit comments

Comments
 (0)