This repository has been archived on 2023-04-02. You can view files and clone it, but cannot push or open issues or pull requests.
gitops-tbrnt/monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/dashboards/persistentvolumesusage.libs...

172 lines
5.9 KiB
Plaintext

local grafana = import 'github.com/grafana/grafonnet-lib/grafonnet/grafana.libsonnet';
local dashboard = grafana.dashboard;
local row = grafana.row;
local prometheus = grafana.prometheus;
local template = grafana.template;
local graphPanel = grafana.graphPanel;
local promgrafonnet = import '../lib/promgrafonnet/promgrafonnet.libsonnet';
local numbersinglestat = promgrafonnet.numbersinglestat;
local gauge = promgrafonnet.gauge;
{
grafanaDashboards+:: {
'persistentvolumesusage.json':
local sizeGraph = graphPanel.new(
'Volume Space Usage',
datasource='$datasource',
format='bytes',
min=0,
span=9,
stack=true,
legend_show=true,
legend_values=true,
legend_min=true,
legend_max=true,
legend_current=true,
legend_total=false,
legend_avg=true,
legend_alignAsTable=true,
legend_rightSide=false,
).addTarget(prometheus.target(
|||
(
sum without(instance, node) (kubelet_volume_stats_capacity_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"})
-
sum without(instance, node) (kubelet_volume_stats_available_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"})
)
||| % $._config,
legendFormat='Used Space',
intervalFactor=1,
)).addTarget(prometheus.target(
|||
sum without(instance, node) (kubelet_volume_stats_available_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"})
||| % $._config,
legendFormat='Free Space',
intervalFactor=1,
));
local sizeGauge = gauge.new(
'Volume Space Usage',
|||
(
kubelet_volume_stats_capacity_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"}
-
kubelet_volume_stats_available_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"}
)
/
kubelet_volume_stats_capacity_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"}
* 100
||| % $._config,
).withLowerBeingBetter();
local inodesGraph = graphPanel.new(
'Volume inodes Usage',
datasource='$datasource',
format='none',
min=0,
span=9,
stack=true,
legend_show=true,
legend_values=true,
legend_min=true,
legend_max=true,
legend_current=true,
legend_total=false,
legend_avg=true,
legend_alignAsTable=true,
legend_rightSide=false,
).addTarget(prometheus.target(
|||
sum without(instance, node) (kubelet_volume_stats_inodes_used{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"})
||| % $._config,
legendFormat='Used inodes',
intervalFactor=1,
)).addTarget(prometheus.target(
|||
(
sum without(instance, node) (kubelet_volume_stats_inodes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"})
-
sum without(instance, node) (kubelet_volume_stats_inodes_used{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"})
)
||| % $._config,
legendFormat=' Free inodes',
intervalFactor=1,
));
local inodeGauge = gauge.new(
'Volume inodes Usage',
|||
kubelet_volume_stats_inodes_used{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"}
/
kubelet_volume_stats_inodes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace", persistentvolumeclaim="$volume"}
* 100
||| % $._config,
).withLowerBeingBetter();
dashboard.new(
'%(dashboardNamePrefix)sPersistent Volumes' % $._config.grafanaK8s,
time_from='now-7d',
uid=($._config.grafanaDashboardIDs['persistentvolumesusage.json']),
tags=($._config.grafanaK8s.dashboardTags),
).addTemplate(
{
current: {
text: 'default',
value: 'default',
},
hide: 0,
label: null,
name: 'datasource',
options: [],
query: 'prometheus',
refresh: 1,
regex: '',
type: 'datasource',
},
)
.addTemplate(
template.new(
'cluster',
'$datasource',
'label_values(kubelet_volume_stats_capacity_bytes, %s)' % $._config.clusterLabel,
label='cluster',
refresh='time',
hide=if $._config.showMultiCluster then '' else 'variable',
sort=1,
)
)
.addTemplate(
template.new(
'namespace',
'$datasource',
'label_values(kubelet_volume_stats_capacity_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s}, namespace)' % $._config,
label='Namespace',
refresh='time',
sort=1,
)
)
.addTemplate(
template.new(
'volume',
'$datasource',
'label_values(kubelet_volume_stats_capacity_bytes{%(clusterLabel)s="$cluster", %(kubeletSelector)s, namespace="$namespace"}, persistentvolumeclaim)' % $._config,
label='PersistentVolumeClaim',
refresh='time',
sort=1,
)
)
.addRow(
row.new()
.addPanel(sizeGraph)
.addPanel(sizeGauge)
)
.addRow(
row.new()
.addPanel(inodesGraph)
.addPanel(inodeGauge)
) + { refresh: $._config.grafanaK8s.refresh },
},
}