add persistent volume capacity metric
This commit is contained in:
parent
83302c9ed1
commit
8d4984cc1a
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
| Metric name| Metric type | Labels/tags | Status |
|
| Metric name| Metric type | Labels/tags | Status |
|
||||||
| ---------- | ----------- | ----------- | ----------- |
|
| ---------- | ----------- | ----------- | ----------- |
|
||||||
|
| kube_persistentvolume_capacity | Gauge | `persistentvolume`=<pv-name> | STABLE |
|
||||||
| kube_persistentvolume_status_phase | Gauge | `persistentvolume`=<pv-name> <br>`phase`=<Bound\|Failed\|Pending\|Available\|Released>| STABLE |
|
| kube_persistentvolume_status_phase | Gauge | `persistentvolume`=<pv-name> <br>`phase`=<Bound\|Failed\|Pending\|Available\|Released>| STABLE |
|
||||||
| kube_persistentvolume_labels | Gauge | `persistentvolume`=<persistentvolume-name> <br> `label_PERSISTENTVOLUME_LABEL`=<PERSISTENTVOLUME_LABEL> | STABLE |
|
| kube_persistentvolume_labels | Gauge | `persistentvolume`=<persistentvolume-name> <br> `label_PERSISTENTVOLUME_LABEL`=<PERSISTENTVOLUME_LABEL> | STABLE |
|
||||||
| kube_persistentvolume_info | Gauge | `persistentvolume`=<pv-name> <br> `storageclass`=<storageclass-name> | STABLE |
|
| kube_persistentvolume_info | Gauge | `persistentvolume`=<pv-name> <br> `storageclass`=<storageclass-name> | STABLE |
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,21 @@ var (
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "kube_persistentvolume_capacity",
|
||||||
|
Type: metric.MetricTypeGauge,
|
||||||
|
Help: "persistentvolume capacity in Gigabytes.",
|
||||||
|
GenerateFunc: wrapPersistentVolumeFunc(func(p *v1.PersistentVolume) *metric.Family {
|
||||||
|
storage := p.Spec.Capacity[v1.ResourceStorage]
|
||||||
|
return &metric.Family{
|
||||||
|
Metrics: []*metric.Metric{
|
||||||
|
{
|
||||||
|
Value: float64(storage.Size()),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kube-state-metrics/pkg/metric"
|
"k8s.io/kube-state-metrics/pkg/metric"
|
||||||
)
|
)
|
||||||
|
|
@ -34,6 +35,8 @@ func TestPersistentVolumeCollector(t *testing.T) {
|
||||||
# TYPE kube_persistentvolume_labels gauge
|
# TYPE kube_persistentvolume_labels gauge
|
||||||
# HELP kube_persistentvolume_info Information about persistentvolume.
|
# HELP kube_persistentvolume_info Information about persistentvolume.
|
||||||
# TYPE kube_persistentvolume_info gauge
|
# TYPE kube_persistentvolume_info gauge
|
||||||
|
# HELP kube_persistentvolume_capacity The size of the persistentvolume in Gigabytes.
|
||||||
|
# TYPE kube_persistentvolume_capacity gauge
|
||||||
`
|
`
|
||||||
cases := []generateMetricsTestCase{
|
cases := []generateMetricsTestCase{
|
||||||
// Verify phase enumerations.
|
// Verify phase enumerations.
|
||||||
|
|
@ -201,6 +204,22 @@ func TestPersistentVolumeCollector(t *testing.T) {
|
||||||
`,
|
`,
|
||||||
MetricNames: []string{"kube_persistentvolume_labels"},
|
MetricNames: []string{"kube_persistentvolume_labels"},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Obj: &v1.PersistentVolume{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "test-pv",
|
||||||
|
},
|
||||||
|
Spec: v1.PersistentVolumeSpec{
|
||||||
|
Capacity: v1.ResourceList{
|
||||||
|
v1.ResourceStorage: resource.MustParse("5Gi"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Want: `
|
||||||
|
kube_persistentvolume_capacity{persistentvolume="test-pv"} 5
|
||||||
|
`,
|
||||||
|
MetricNames: []string{"kube_persistentvolume_capacity"},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for i, c := range cases {
|
for i, c := range cases {
|
||||||
c.Func = metric.ComposeMetricGenFuncs(persistentVolumeMetricFamilies)
|
c.Func = metric.ComposeMetricGenFuncs(persistentVolumeMetricFamilies)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue