func statefulSetMetricFamilies()

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,
						},
					},
				}
			}),
		),
	}
}