in internal/store/statefulset.go [41:257]
func statefulSetMetricFamilies(allowAnnotationsList, allowLabelsList []string) []generator.FamilyGenerator {
return []generator.FamilyGenerator{
*generator.NewFamilyGenerator(
"kube_statefulset_created",
"Unix creation timestamp",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
ms := []*metric.Metric{}
if !s.CreationTimestamp.IsZero() {
ms = append(ms, &metric.Metric{
Value: float64(s.CreationTimestamp.Unix()),
})
}
return &metric.Family{
Metrics: ms,
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_replicas",
"The number of replicas per StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.Status.Replicas),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_replicas_available",
"The number of available replicas per StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.Status.AvailableReplicas),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_replicas_current",
"The number of current replicas per StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.Status.CurrentReplicas),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_replicas_ready",
"The number of ready replicas per StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.Status.ReadyReplicas),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_replicas_updated",
"The number of updated replicas per StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.Status.UpdatedReplicas),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_observed_generation",
"The generation observed by the StatefulSet controller.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.Status.ObservedGeneration),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_replicas",
"Number of desired pods for a StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
ms := []*metric.Metric{}
if s.Spec.Replicas != nil {
ms = append(ms, &metric.Metric{
Value: float64(*s.Spec.Replicas),
})
}
return &metric.Family{
Metrics: ms,
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_metadata_generation",
"Sequence number representing a specific generation of the desired state for the StatefulSet.",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(s.ObjectMeta.Generation),
},
},
}
}),
),
*generator.NewFamilyGenerator(
descStatefulSetAnnotationsName,
descStatefulSetAnnotationsHelp,
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
annotationKeys, annotationValues := createPrometheusLabelKeysValues("annotation", s.Annotations, allowAnnotationsList)
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: annotationKeys,
LabelValues: annotationValues,
Value: 1,
},
},
}
}),
),
*generator.NewFamilyGenerator(
descStatefulSetLabelsName,
descStatefulSetLabelsHelp,
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
labelKeys, labelValues := createPrometheusLabelKeysValues("label", s.Labels, allowLabelsList)
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: labelKeys,
LabelValues: labelValues,
Value: 1,
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_current_revision",
"Indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: []string{"revision"},
LabelValues: []string{s.Status.CurrentRevision},
Value: 1,
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_statefulset_status_update_revision",
"Indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)",
metric.Gauge,
"",
wrapStatefulSetFunc(func(s *v1.StatefulSet) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: []string{"revision"},
LabelValues: []string{s.Status.UpdateRevision},
Value: 1,
},
},
}
}),
),
}
}