@@ -513,74 +513,85 @@ local g = import 'grafonnet/grafana.libsonnet';
513513 ]
514514 ),
515515
516- $.simpleGraphPanel(
517- {},
518- 'Top $topk Client IOPS by Pool' ,
519- 'This chart shows the sum of read and write IOPS from all clients by pool' ,
520- 'short' ,
521- 'IOPS' ,
522- 0 ,
523- |||
524- topk($topk,
525- round(
526- (
527- rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) +
528- rate(ceph_pool_wr{%(matchers)s}[$__rate_interval])
529- ), 1
530- ) * on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s})
531- ||| % $.matchers(),
532- '{{name}} ' ,
533- 0 ,
534- 9 ,
535- 12 ,
536- 8
516+ $.timeSeriesPanel(
517+ title='Top $topk Client IOPS by Pool' ,
518+ datasource='$datasource' ,
519+ gridPosition={ x: 0 , y: 9 , w: 12 , h: 8 },
520+ unit='short' ,
521+ axisLabel='IOPS' ,
522+ drawStyle='line' ,
523+ fillOpacity=8 ,
524+ tooltip={ mode: 'multi' , sort: 'none' },
525+ colorMode='palette-classic' ,
526+ spanNulls=true ,
537527 )
538- .addTarget(
528+ .addTargets([
529+ $.addTargetSchema(
530+ |||
531+ topk($topk,
532+ round(
533+ (
534+ rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) +
535+ rate(ceph_pool_wr{%(matchers)s}[$__rate_interval])
536+ ), 1
537+ ) * on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s}
538+ )
539+ ||| % $.matchers(),
540+ '{{name}}'
541+ ),
539542 $.addTargetSchema(
540543 |||
541544 topk($topk,
542545 rate(ceph_pool_wr{%(matchers)s}[$__rate_interval]) +
543- on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s}
546+ on(pool_id) group_left(instance,name) ceph_pool_metadata{%(matchers)s}
544547 )
545548 ||| % $.matchers(),
546549 '{{name}} - write'
547- )
548- ),
549- $.simpleGraphPanel(
550- {},
551- 'Top $topk Client Bandwidth by Pool' ,
552- 'The chart shows the sum of read and write bytes from all clients, by pool' ,
553- 'Bps' ,
554- 'Throughput' ,
555- 0 ,
556- |||
557- topk($topk,
558- (
559- rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
550+ ),
551+ ]),
552+ $.timeSeriesPanel(
553+ title='Top $topk Client Bandwidth by Pool' ,
554+ datasource='$datasource' ,
555+ gridPosition={ x: 12 , y: 9 , w: 12 , h: 8 },
556+ unit='Bps' ,
557+ axisLabel='Throughput' ,
558+ drawStyle='line' ,
559+ fillOpacity=8 ,
560+ tooltip={ mode: 'multi' , sort: 'none' },
561+ colorMode='palette-classic' ,
562+ spanNulls=true ,
563+ )
564+ .addTargets([
565+ $.addTargetSchema(
566+ |||
567+ topk($topk,
568+ (
569+ rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
560570 rate(ceph_pool_wr_bytes{%(matchers)s}[$__rate_interval])
561- ) * on(pool_id) group_left(instance, name) ceph_pool_metadata{%(matchers)s}
562- )
563- ||| % $.matchers(),
564- '{{name}}' ,
565- 12 ,
566- 9 ,
567- 12 ,
568- 8
569- ),
570- $.simpleGraphPanel(
571- {},
572- 'Pool Capacity Usage (RAW)' ,
573- 'Historical view of capacity usage, to help identify growth and trends in pool consumption' ,
574- 'bytes' ,
575- 'Capacity Used' ,
576- 0 ,
577- 'ceph_pool_bytes_used{%(matchers)s} * on(pool_id) group_right ceph_pool_metadata{%(matchers)s}' % $.matchers(),
578- '{{name}}' ,
579- 0 ,
580- 17 ,
581- 24 ,
582- 7
583- ),
571+ ) * on(pool_id) group_left(instance, name) ceph_pool_metadata{%(matchers)s}
572+ )
573+ ||| % $.matchers(),
574+ '{{name}}'
575+ ),
576+ ]),
577+ $.timeSeriesPanel(
578+ title='Pool Capacity Usage (RAW)' ,
579+ datasource='$datasource' ,
580+ gridPosition={ x: 0 , y: 17 , w: 24 , h: 7 },
581+ unit='bytes' ,
582+ axisLabel='Capacity Used' ,
583+ drawStyle='line' ,
584+ fillOpacity=8 ,
585+ tooltip={ mode: 'multi' , sort: 'none' },
586+ colorMode='palette-classic' ,
587+ spanNulls=true ,
588+ )
589+ .addTargets([
590+ $.addTargetSchema(
591+ 'ceph_pool_bytes_used{%(matchers)s} * on(pool_id) group_right ceph_pool_metadata{%(matchers)s}' % $.matchers(),
592+ '{{name}}'
593+ ),
594+ ]),
584595 ]),
585596 'pool-detail.json' :
586597 $.dashboardSchema(
@@ -670,106 +681,111 @@ local g = import 'grafonnet/grafana.libsonnet';
670681 5 ,
671682 7
672683 ),
673- $.simpleGraphPanel(
674- {
675- read_op_per_sec:
676- '#3F6833' ,
677- write_op_per_sec: '#E5AC0E' ,
678- },
679- '$pool_name Object Ingress/Egress' ,
680- '' ,
681- 'ops' ,
682- 'Objects out(-) / in(+) ' ,
683- null ,
684- |||
685- deriv(ceph_pool_objects{%(matchers)s}[1m]) *
686- on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
687- ||| % $.matchers(),
688- 'Objects per second' ,
689- 12 ,
690- 0 ,
691- 12 ,
692- 7
693- ),
694- $.simpleGraphPanel(
695- {
696- read_op_per_sec: '#3F6833' ,
697- write_op_per_sec: '#E5AC0E' ,
698- },
699- '$pool_name Client IOPS' ,
700- '' ,
701- 'iops' ,
702- 'Read (-) / Write (+)' ,
703- null ,
704- |||
705- rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) *
706- on(pool_id) group_left(instance,name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
707- ||| % $.matchers(),
708- 'reads' ,
709- 0 ,
710- 7 ,
711- 12 ,
712- 7
684+ $.timeSeriesPanel(
685+ title='$pool_name Object Ingress/Egress' ,
686+ datasource='$datasource' ,
687+ gridPosition={ x: 12 , y: 0 , w: 12 , h: 7 },
688+ unit='ops' ,
689+ axisLabel='Objects out(-) / in(+)' ,
690+ drawStyle='line' ,
691+ fillOpacity=8 ,
692+ tooltip={ mode: 'multi' , sort: 'none' },
693+ colorMode='palette-classic' ,
694+ spanNulls=true ,
695+ )
696+ .addTargets([
697+ $.addTargetSchema(
698+ |||
699+ deriv(ceph_pool_objects{%(matchers)s}[1m]) *
700+ on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
701+ ||| % $.matchers(),
702+ 'Objects per second'
703+ ),
704+ ]),
705+ $.timeSeriesPanel(
706+ title='$pool_name Client IOPS' ,
707+ datasource='$datasource' ,
708+ gridPosition={ x: 0 , y: 7 , w: 12 , h: 7 },
709+ unit='iops' ,
710+ axisLabel='Read (-) / Write (+)' ,
711+ drawStyle='line' ,
712+ fillOpacity=8 ,
713+ tooltip={ mode: 'multi' , sort: 'none' },
714+ colorMode='palette-classic' ,
715+ spanNulls=true ,
713716 )
714- .addSeriesOverride({ alias: 'reads' , transform: 'negative-Y' })
715- .addTarget(
717+ .addTargets([
718+ $.addTargetSchema(
719+ |||
720+ rate(ceph_pool_rd{%(matchers)s}[$__rate_interval]) *
721+ on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
722+ ||| % $.matchers(),
723+ 'reads'
724+ ),
716725 $.addTargetSchema(
717726 |||
718727 rate(ceph_pool_wr{%(matchers)s}[$__rate_interval]) *
719728 on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
720729 ||| % $.matchers(),
721730 'writes'
722- )
723- ),
724- $.simpleGraphPanel(
725- {
726- read_op_per_sec: '#3F6833' ,
727- write_op_per_sec: '#E5AC0E' ,
728- },
729- '$pool_name Client Throughput' ,
730- '' ,
731- 'Bps' ,
732- 'Read (-) / Write (+)' ,
733- null ,
734- |||
735- rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
736- on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
737- ||| % $.matchers(),
738- 'reads' ,
739- 12 ,
740- 7 ,
741- 12 ,
742- 7
731+ ),
732+ ])
733+ .addSeriesOverride({
734+ alias: 'reads' ,
735+ transform: 'negative-Y' ,
736+ }),
737+ $.timeSeriesPanel(
738+ title='$pool_name Client Throughput' ,
739+ datasource='$datasource' ,
740+ gridPosition={ x: 12 , y: 7 , w: 12 , h: 7 },
741+ unit='Bps' ,
742+ axisLabel='Read (-) / Write (+)' ,
743+ drawStyle='line' ,
744+ fillOpacity=8 ,
745+ tooltip={ mode: 'multi' , sort: 'none' },
746+ colorMode='palette-classic' ,
747+ spanNulls=true ,
743748 )
744- .addSeriesOverride({ alias: 'reads' , transform: 'negative-Y' })
745- .addTarget(
749+ .addTargets([
750+ $.addTargetSchema(
751+ |||
752+ rate(ceph_pool_rd_bytes{%(matchers)s}[$__rate_interval]) +
753+ on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
754+ ||| % $.matchers(),
755+ 'reads'
756+ ),
746757 $.addTargetSchema(
747758 |||
748759 rate(ceph_pool_wr_bytes{%(matchers)s}[$__rate_interval]) +
749- on(pool_id) group_left(instance,name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
760+ on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
750761 ||| % $.matchers(),
751762 'writes'
752- )
753- ),
754- $.simpleGraphPanel(
755- {
756- read_op_per_sec: '#3F6833' ,
757- write_op_per_sec: '#E5AC0E' ,
758- },
759- '$pool_name Objects' ,
760- '' ,
761- 'short' ,
762- 'Objects' ,
763- null ,
764- |||
765- ceph_pool_objects{%(matchers)s} *
766- on(pool_id) group_left(instance,name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
767- ||| % $.matchers(),
768- 'Number of Objects' ,
769- 0 ,
770- 14 ,
771- 12 ,
772- 7
773- ),
763+ ),
764+ ])
765+ .addSeriesOverride({
766+ alias: 'reads' ,
767+ transform: 'negative-Y' ,
768+ }),
769+ $.timeSeriesPanel(
770+ title='$pool_name Objects' ,
771+ datasource='$datasource' ,
772+ gridPosition={ x: 0 , y: 14 , w: 12 , h: 7 },
773+ unit='short' ,
774+ axisLabel='Objects' ,
775+ drawStyle='line' ,
776+ fillOpacity=8 ,
777+ tooltip={ mode: 'multi' , sort: 'none' },
778+ colorMode='palette-classic' ,
779+ spanNulls=true ,
780+ )
781+ .addTargets([
782+ $.addTargetSchema(
783+ |||
784+ ceph_pool_objects{%(matchers)s} *
785+ on(pool_id) group_left(instance, name) ceph_pool_metadata{name=~"$pool_name", %(matchers)s}
786+ ||| % $.matchers(),
787+ 'Number of Objects'
788+ ),
789+ ]),
774790 ]),
775791}
0 commit comments