diff --git a/docs/pod-metrics.md b/docs/pod-metrics.md
index 1127e381de..3f28a09c5a 100644
--- a/docs/pod-metrics.md
+++ b/docs/pod-metrics.md
@@ -32,6 +32,7 @@
| kube_pod_container_resource_limits_ephemeral_storage_bytes | Gauge | `container`=<container-name>
`pod`=<pod-name>
`namespace`=<pod-namespace> | EXPERIMENTAL |
| kube_pod_overhead_cpu_cores | Gauge | `pod`=<pod-name>
`namespace`=<pod-namespace> | EXPERIMENTAL |
| kube_pod_overhead_memory_bytes | Gauge | `pod`=<pod-name>
`namespace`=<pod-namespace> | EXPERIMENTAL |
+| kube_pod_runtimeclass_handler | Gauge | `pod`=<pod-name>
`namespace`=<pod-namespace> | EXPERIMENTAL |
| kube_pod_created | Gauge | `pod`=<pod-name>
`namespace`=<pod-namespace> | STABLE |
| kube_pod_deletion_timestamp | Gauge | `pod`=<pod-name>
`namespace`=<pod-namespace> | EXPERIMENTAL |
| kube_pod_restart_policy | Gauge | `pod`=<pod-name>
`namespace`=<pod-namespace>
`type`=<Always|Never|OnFailure> | STABLE |
diff --git a/internal/store/pod.go b/internal/store/pod.go
index 0a0a744d12..48d9f30767 100644
--- a/internal/store/pod.go
+++ b/internal/store/pod.go
@@ -1511,6 +1511,27 @@ var (
}
}
+ return &metric.Family{
+ Metrics: ms,
+ }
+ }),
+ ),
+ *generator.NewFamilyGenerator(
+ "kube_pod_runtimeclass_handler",
+ "The runtimeclass handler associated with the pod.",
+ metric.Gauge,
+ "",
+ wrapPodFunc(func(p *v1.Pod) *metric.Family {
+ ms := []*metric.Metric{}
+
+ if p.Spec.RuntimeClassName != nil {
+ ms = append(ms, &metric.Metric{
+ LabelKeys: []string{"runtimeclass_handler"},
+ LabelValues: []string{*p.Spec.RuntimeClassName},
+ Value: 1,
+ })
+ }
+
return &metric.Family{
Metrics: ms,
}
diff --git a/internal/store/pod_test.go b/internal/store/pod_test.go
index 1b7d2183f6..c1b5eeb499 100644
--- a/internal/store/pod_test.go
+++ b/internal/store/pod_test.go
@@ -1695,7 +1695,7 @@ func BenchmarkPodStore(b *testing.B) {
},
}
- expectedFamilies := 57
+ expectedFamilies := 58
for n := 0; n < b.N; n++ {
families := f(pod)
if len(families) != expectedFamilies {
diff --git a/main_test.go b/main_test.go
index 719bd7ad0d..764ab48bea 100644
--- a/main_test.go
+++ b/main_test.go
@@ -354,6 +354,8 @@ kube_pod_container_resource_limits{namespace="default",pod="pod0",container="pod
# TYPE kube_pod_overhead_cpu_cores gauge
# HELP kube_pod_overhead_memory_bytes The pod overhead in regards to memory associated with running a pod.
# TYPE kube_pod_overhead_memory_bytes gauge
+# HELP kube_pod_runtimeclass_handler The runtimeclass handler associated with the pod.
+# TYPE kube_pod_runtimeclass_handler gauge
`
expectedSplit := strings.Split(strings.TrimSpace(expected), "\n")