diff --git a/docs/metrics/workload/statefulset-metrics.md b/docs/metrics/workload/statefulset-metrics.md
index 42ac8cac0..40e9352d4 100644
--- a/docs/metrics/workload/statefulset-metrics.md
+++ b/docs/metrics/workload/statefulset-metrics.md
@@ -2,19 +2,19 @@
| Metric name | Metric type | Description | Labels/tags | Status |
| ------------------------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
-| kube_statefulset_annotations | Gauge | Kubernetes annotations converted to Prometheus labels controlled via [--metric-annotations-allowlist](../../developer/cli-arguments.md) | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`annotation_STATEFULSET_ANNOTATION`=<STATEFULSET_ANNOTATION> | EXPERIMENTAL |
+| kube_statefulset_annotations | Gauge | Kubernetes annotations converted to Prometheus labels controlled via [--metric-annotations-allowlist](../../developer/cli-arguments.md) | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`annotation_STATEFULSET_ANNOTATION`=<STATEFULSET_ANNOTATION> | STABLE |
| kube_statefulset_status_replicas | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_status_replicas_current | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_status_replicas_ready | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
-| kube_statefulset_status_replicas_available | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | EXPERIMENTAL |
+| kube_statefulset_status_replicas_available | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_status_replicas_updated | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_status_observed_generation | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_replicas | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_ordinals_start | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_metadata_generation | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
-| kube_statefulset_persistentvolumeclaim_retention_policy | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`when_deleted`=<statefulset-when-deleted-pvc-policy>
`when_scaled`=<statefulset-when-scaled-pvc-policy> | EXPERIMENTAL |
+| kube_statefulset_persistentvolumeclaim_retention_policy | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`when_deleted`=<statefulset-when-deleted-pvc-policy>
`when_scaled`=<statefulset-when-scaled-pvc-policy> | STABLE |
| kube_statefulset_created | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
| kube_statefulset_labels | Gauge | Kubernetes labels converted to Prometheus labels controlled via [--metric-labels-allowlist](../../developer/cli-arguments.md) | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`label_STATEFULSET_LABEL`=<STATEFULSET_LABEL> | STABLE |
| kube_statefulset_status_current_revision | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`revision`=<statefulset-current-revision> | STABLE |
| kube_statefulset_status_update_revision | Gauge | | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace>
`revision`=<statefulset-update-revision> | STABLE |
-| kube_statefulset_deletion_timestamp | Gauge | Unix deletion timestamp | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | EXPERIMENTAL |
+| kube_statefulset_deletion_timestamp | Gauge | Unix deletion timestamp | `statefulset`=<statefulset-name>
`namespace`=<statefulset-namespace> | STABLE |
diff --git a/internal/store/statefulset.go b/internal/store/statefulset.go
index 77049e1a5..6751a0b0d 100644
--- a/internal/store/statefulset.go
+++ b/internal/store/statefulset.go
@@ -82,7 +82,7 @@ func statefulSetMetricFamilies(allowAnnotationsList, allowLabelsList []string) [
"kube_statefulset_status_replicas_available",
"The number of available replicas per StatefulSet.",
metric.Gauge,
- basemetrics.ALPHA,
+ basemetrics.STABLE,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
@@ -218,7 +218,7 @@ func statefulSetMetricFamilies(allowAnnotationsList, allowLabelsList []string) [
"kube_statefulset_persistentvolumeclaim_retention_policy",
"Count of retention policy for StatefulSet template PVCs",
metric.Gauge,
- basemetrics.ALPHA,
+ basemetrics.STABLE,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
@@ -245,7 +245,7 @@ func statefulSetMetricFamilies(allowAnnotationsList, allowLabelsList []string) [
descStatefulSetAnnotationsName,
descStatefulSetAnnotationsHelp,
metric.Gauge,
- basemetrics.ALPHA,
+ basemetrics.STABLE,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
if len(allowAnnotationsList) == 0 {
@@ -325,7 +325,7 @@ func statefulSetMetricFamilies(allowAnnotationsList, allowLabelsList []string) [
"kube_statefulset_deletion_timestamp",
"Unix deletion timestamp",
metric.Gauge,
- basemetrics.ALPHA,
+ basemetrics.STABLE,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
ms := []*metric.Metric{}
diff --git a/internal/store/statefulset_test.go b/internal/store/statefulset_test.go
index 45d810fb2..e7c730a45 100644
--- a/internal/store/statefulset_test.go
+++ b/internal/store/statefulset_test.go
@@ -64,13 +64,13 @@ func TestStatefulSetStore(t *testing.T) {
# HELP kube_statefulset_created [STABLE] Unix creation timestamp
# HELP kube_statefulset_labels [STABLE] Kubernetes labels converted to Prometheus labels.
# HELP kube_statefulset_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state for the StatefulSet.
- # HELP kube_statefulset_persistentvolumeclaim_retention_policy Count of retention policy for StatefulSet template PVCs
+ # HELP kube_statefulset_persistentvolumeclaim_retention_policy [STABLE] Count of retention policy for StatefulSet template PVCs
# HELP kube_statefulset_replicas [STABLE] Number of desired pods for a StatefulSet.
# HELP kube_statefulset_ordinals_start [STABLE] Start ordinal of the StatefulSet.
# HELP kube_statefulset_status_current_revision [STABLE] Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
# HELP kube_statefulset_status_observed_generation [STABLE] The generation observed by the StatefulSet controller.
# HELP kube_statefulset_status_replicas [STABLE] The number of replicas per StatefulSet.
- # HELP kube_statefulset_status_replicas_available The number of available replicas per StatefulSet.
+ # HELP kube_statefulset_status_replicas_available [STABLE] The number of available replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_current [STABLE] The number of current replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_ready [STABLE] The number of ready replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_updated [STABLE] The number of updated replicas per StatefulSet.
@@ -146,12 +146,12 @@ func TestStatefulSetStore(t *testing.T) {
Want: `
# HELP kube_statefulset_labels [STABLE] Kubernetes labels converted to Prometheus labels.
# HELP kube_statefulset_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state for the StatefulSet.
- # HELP kube_statefulset_persistentvolumeclaim_retention_policy Count of retention policy for StatefulSet template PVCs
+ # HELP kube_statefulset_persistentvolumeclaim_retention_policy [STABLE] Count of retention policy for StatefulSet template PVCs
# HELP kube_statefulset_replicas [STABLE] Number of desired pods for a StatefulSet.
# HELP kube_statefulset_status_current_revision [STABLE] Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
# HELP kube_statefulset_status_observed_generation [STABLE] The generation observed by the StatefulSet controller.
# HELP kube_statefulset_status_replicas [STABLE] The number of replicas per StatefulSet.
- # HELP kube_statefulset_status_replicas_available The number of available replicas per StatefulSet.
+ # HELP kube_statefulset_status_replicas_available [STABLE] The number of available replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_current [STABLE] The number of current replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_ready [STABLE] The number of ready replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_updated [STABLE] The number of updated replicas per StatefulSet.
@@ -218,11 +218,11 @@ func TestStatefulSetStore(t *testing.T) {
Want: `
# HELP kube_statefulset_labels [STABLE] Kubernetes labels converted to Prometheus labels.
# HELP kube_statefulset_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state for the StatefulSet.
- # HELP kube_statefulset_persistentvolumeclaim_retention_policy Count of retention policy for StatefulSet template PVCs
+ # HELP kube_statefulset_persistentvolumeclaim_retention_policy [STABLE] Count of retention policy for StatefulSet template PVCs
# HELP kube_statefulset_replicas [STABLE] Number of desired pods for a StatefulSet.
# HELP kube_statefulset_status_current_revision [STABLE] Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
# HELP kube_statefulset_status_replicas [STABLE] The number of replicas per StatefulSet.
- # HELP kube_statefulset_status_replicas_available The number of available replicas per StatefulSet.
+ # HELP kube_statefulset_status_replicas_available [STABLE] The number of available replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_current [STABLE] The number of current replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_ready [STABLE] The number of ready replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_updated [STABLE] The number of updated replicas per StatefulSet.
@@ -290,11 +290,11 @@ func TestStatefulSetStore(t *testing.T) {
Want: `
# HELP kube_statefulset_labels [STABLE] Kubernetes labels converted to Prometheus labels.
# HELP kube_statefulset_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state for the StatefulSet.
- # HELP kube_statefulset_persistentvolumeclaim_retention_policy Count of retention policy for StatefulSet template PVCs
+ # HELP kube_statefulset_persistentvolumeclaim_retention_policy [STABLE] Count of retention policy for StatefulSet template PVCs
# HELP kube_statefulset_replicas [STABLE] Number of desired pods for a StatefulSet.
# HELP kube_statefulset_status_current_revision [STABLE] Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
# HELP kube_statefulset_status_replicas [STABLE] The number of replicas per StatefulSet.
- # HELP kube_statefulset_status_replicas_available The number of available replicas per StatefulSet.
+ # HELP kube_statefulset_status_replicas_available [STABLE] The number of available replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_current [STABLE] The number of current replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_ready [STABLE] The number of ready replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_updated [STABLE] The number of updated replicas per StatefulSet.
@@ -363,12 +363,12 @@ func TestStatefulSetStore(t *testing.T) {
Want: `
# HELP kube_statefulset_labels [STABLE] Kubernetes labels converted to Prometheus labels.
# HELP kube_statefulset_metadata_generation [STABLE] Sequence number representing a specific generation of the desired state for the StatefulSet.
- # HELP kube_statefulset_persistentvolumeclaim_retention_policy Count of retention policy for StatefulSet template PVCs
+ # HELP kube_statefulset_persistentvolumeclaim_retention_policy [STABLE] Count of retention policy for StatefulSet template PVCs
# HELP kube_statefulset_replicas [STABLE] Number of desired pods for a StatefulSet.
# HELP kube_statefulset_ordinals_start [STABLE] Start ordinal of the StatefulSet.
# HELP kube_statefulset_status_current_revision [STABLE] Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).
# HELP kube_statefulset_status_replicas [STABLE] The number of replicas per StatefulSet.
- # HELP kube_statefulset_status_replicas_available The number of available replicas per StatefulSet.
+ # HELP kube_statefulset_status_replicas_available [STABLE] The number of available replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_current [STABLE] The number of current replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_ready [STABLE] The number of ready replicas per StatefulSet.
# HELP kube_statefulset_status_replicas_updated [STABLE] The number of updated replicas per StatefulSet.
@@ -432,7 +432,7 @@ func TestStatefulSetStore(t *testing.T) {
},
},
Want: `
- # HELP kube_statefulset_deletion_timestamp Unix deletion timestamp
+ # HELP kube_statefulset_deletion_timestamp [STABLE] Unix deletion timestamp
# TYPE kube_statefulset_deletion_timestamp gauge
kube_statefulset_deletion_timestamp{statefulset="statefulset6",namespace="ns6"} 1.8e+09
`,