blob: 3f8af9b5713af815fd50ba68ffef7c35777476cf [file] [log] [blame]
local grafana = import '../../../vendor/grafonnet/grafana.libsonnet';
local dashboard = grafana.dashboard;
local row = grafana.row;
local template = grafana.template;
local defaults = import '../../globals/defaults.libsonnet';
local gridPos = import '../../globals/grid_pos.libsonnet';
local publishVariables = import '../../globals/publish.libsonnet';
local variables = import '../globals/variables.libsonnet';
local current_healthcheck_panel = import './panels/current-healthcheck.libsonnet';
local timeseries_healthcheck_panel = import './panels/timeseries-healthcheck.libsonnet';
local HEALTHCHECKS = [
'activeworkers',
'auth',
'deadlock',
'httpactiveworkers',
'jgit',
'projectslist',
'querychanges',
'reviewdb'
];
dashboard.new(
'Gerrit - Healthcheck',
tags=['gerrit'],
schemaVersion=defaults.dashboards.schemaVersion,
editable=defaults.dashboards.editable,
time_from=defaults.dashboards.timeFrom,
time_to=defaults.dashboards.timeTo,
refresh=defaults.dashboards.refresh,
graphTooltip='shared_tooltip',
)
.addTemplate(variables.instance)
.addTemplate(variables.replica)
.addTemplate(
template.new(
name='check',
datasource=defaults.datasource,
query='metrics(^plugins_healthcheck_.+_failure_total$)',
regex='plugins_healthcheck_(.+)_failure_total',
label='Check',
multi=true,
includeAll=true,
refresh='time',
)
)
.addPanel(
row.new(title='CURRENT'),
gridPos={x: 0, y: 0},
)
.addPanel(
current_healthcheck_panel.new() + {
repeat: 'check',
repeatDirection: 'h',
maxPerRow: 8,
},
gridPos={w: 3, h: 6})
.addPanel(
row.new(title='OVER TIME'),
gridPos={x: 0, y: 6},
)
.addPanel(
timeseries_healthcheck_panel.new() + {
repeat: 'check',
repeatDirection: 'h',
maxPerRow: 3,
},
gridPos={x: 0, y: 6, w: 8, h: 6})
+ if std.extVar('publish') then publishVariables else {}