@@ -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