summaryrefslogtreecommitdiffstats
path: root/monitoring/ceph-mixin/dashboards/pool.libsonnet
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--monitoring/ceph-mixin/dashboards/pool.libsonnet287
1 files changed, 258 insertions, 29 deletions
diff --git a/monitoring/ceph-mixin/dashboards/pool.libsonnet b/monitoring/ceph-mixin/dashboards/pool.libsonnet
index 6444335d9..87839963f 100644
--- a/monitoring/ceph-mixin/dashboards/pool.libsonnet
+++ b/monitoring/ceph-mixin/dashboards/pool.libsonnet
@@ -158,36 +158,264 @@ local g = import 'grafonnet/grafana.libsonnet';
3,
3
),
- $.addTableSchema(
- '$datasource',
- '',
- { col: 5, desc: true },
- [
- $.overviewStyle('', 'Time', 'hidden', 'short'),
- $.overviewStyle('', 'instance', 'hidden', 'short'),
- $.overviewStyle('', 'job', 'hidden', 'short'),
- $.overviewStyle('Pool Name', 'name', 'string', 'short'),
- $.overviewStyle('Pool ID', 'pool_id', 'hidden', 'none'),
- $.overviewStyle('Compression Factor', 'Value #A', 'number', 'none'),
- $.overviewStyle('% Used', 'Value #D', 'number', 'percentunit', 'value', ['70', '85']),
- $.overviewStyle('Usable Free', 'Value #B', 'number', 'bytes'),
- $.overviewStyle('Compression Eligibility', 'Value #C', 'number', 'percent'),
- $.overviewStyle('Compression Savings', 'Value #E', 'number', 'bytes'),
- $.overviewStyle('Growth (5d)', 'Value #F', 'number', 'bytes', 'value', ['0', '0']),
- $.overviewStyle('IOPS', 'Value #G', 'number', 'none'),
- $.overviewStyle('Bandwidth', 'Value #H', 'number', 'Bps'),
- $.overviewStyle('', '__name__', 'hidden', 'short'),
- $.overviewStyle('', 'type', 'hidden', 'short'),
- $.overviewStyle('', 'compression_mode', 'hidden', 'short'),
- $.overviewStyle('Type', 'description', 'string', 'short'),
- $.overviewStyle('Stored', 'Value #J', 'number', 'bytes'),
- $.overviewStyle('', 'Value #I', 'hidden', 'short'),
- $.overviewStyle('Compression', 'Value #K', 'string', 'short', null, [], [{ text: 'ON', value: '1' }]),
+
+ $.addTableExtended(
+ datasource='${datasource}',
+ title='Pool Overview',
+ gridPosition={ h: 6, w: 24, x: 0, y: 3 },
+ options={
+ footer: {
+ fields: '',
+ reducer: ['sum'],
+ countRows: false,
+ enablePagination: false,
+ show: false,
+ },
+ frameIndex: 1,
+ showHeader: true,
+ },
+ custom={ align: 'auto', cellOptions: { type: 'auto' }, filterable: true, inspect: false },
+ thresholds={
+ mode: 'absolute',
+ steps: [
+ { color: 'green', value: null },
+ { color: 'red', value: 80 },
+ ],
+ },
+ overrides=[
+ {
+ matcher: { id: 'byName', options: 'Time' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'instance' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'job' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'name' },
+ properties: [
+ { id: 'displayName', value: 'Pool Name' },
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'pool_id' },
+ properties: [
+ { id: 'displayName', value: 'Pool ID' },
+ { id: 'unit', value: 'none' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #A' },
+ properties: [
+ { id: 'displayName', value: 'Compression Factor' },
+ { id: 'unit', value: 'none' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #D' },
+ properties: [
+ { id: 'displayName', value: '% Used' },
+ { id: 'unit', value: 'percentunit' },
+ { id: 'decimals', value: 2 },
+ { id: 'custom.cellOptions', value: { type: 'color-text' } },
+ {
+ id: 'thresholds',
+ value: {
+ mode: 'absolute',
+ steps: [
+ {
+ color: 'rgba(245, 54, 54, 0.9)',
+ value: null,
+ },
+ {
+ color: 'rgba(237, 129, 40, 0.89)',
+ value: 70,
+ },
+ {
+ color: 'rgba(50, 172, 45, 0.97)',
+ value: 85,
+ },
+ ],
+ },
+ },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #B' },
+ properties: [
+ { id: 'displayName', value: 'Usable Free' },
+ { id: 'unit', value: 'bytes' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #C' },
+ properties: [
+ { id: 'displayName', value: 'Compression Eligibility' },
+ { id: 'unit', value: 'percent' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #E' },
+ properties: [
+ { id: 'displayName', value: 'Compression Savings' },
+ { id: 'unit', value: 'bytes' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #F' },
+ properties: [
+ { id: 'displayName', value: 'Growth (5d)' },
+ { id: 'unit', value: 'bytes' },
+ { id: 'decimals', value: 2 },
+ { id: 'custom.cellOptions', value: { type: 'color-text' } },
+ {
+ id: 'thresholds',
+ value: {
+ mode: 'absolute',
+ steps: [
+ {
+ color: 'rgba(245, 54, 54, 0.9)',
+ value: null,
+ },
+ {
+ color: 'rgba(237, 129, 40, 0.89)',
+ value: 70,
+ },
+ {
+ color: 'rgba(50, 172, 45, 0.97)',
+ value: 85,
+ },
+ ],
+ },
+ },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #G' },
+ properties: [
+ { id: 'displayName', value: 'IOPS' },
+ { id: 'unit', value: 'none' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #H' },
+ properties: [
+ { id: 'displayName', value: 'Bandwidth' },
+ { id: 'unit', value: 'Bps' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: '__name__' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'type' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'compression_mode' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'description' },
+ properties: [
+ { id: 'displayName', value: 'Type' },
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #J' },
+ properties: [
+ { id: 'displayName', value: 'Stored' },
+ { id: 'unit', value: 'bytes' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #I' },
+ properties: [
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
+ {
+ matcher: { id: 'byName', options: 'Value #K' },
+ properties: [
+ { id: 'displayName', value: 'Compression' },
+ { id: 'unit', value: 'short' },
+ { id: 'decimals', value: 2 },
+ ],
+ },
],
- 'Pool Overview',
- 'table'
+ pluginVersion='10.4.0'
)
- .addTargets(
+ .addTransformations([
+ {
+ id: 'merge',
+ options: {},
+ },
+ {
+ id: 'seriesToRows',
+ options: {},
+ },
+ {
+ id: 'organize',
+ options: {
+ excludeByName: {
+ Time: true,
+ 'Value #A': true,
+ instance: true,
+ job: true,
+ pool_id: true,
+ 'Value #B': false,
+ 'Value #C': true,
+ __name__: true,
+ compression_mode: true,
+ type: true,
+ 'Value #I': true,
+ 'Value #K': true,
+ 'Value #D': false,
+ 'Value #E': true,
+ cluster: true,
+ },
+ indexByName: {},
+ renameByName: {},
+ includeByName: {},
+ },
+ },
+ ]).addTargets(
[
$.addTargetSchema(
|||
@@ -286,7 +514,8 @@ local g = import 'grafonnet/grafana.libsonnet';
),
$.addTargetSchema('', 'L', '', '', null),
]
- ) + { gridPos: { x: 0, y: 3, w: 24, h: 6 } },
+ ),
+
$.simpleGraphPanel(
{},
'Top $topk Client IOPS by Pool',