in internal/store/poddisruptionbudget.go [41:174]
func podDisruptionBudgetMetricFamilies(allowAnnotationsList, allowLabelsList []string) []generator.FamilyGenerator {
return []generator.FamilyGenerator{
*generator.NewFamilyGenerator(
descPodDisruptionBudgetAnnotationsName,
descPodDisruptionBudgetAnnotationsHelp,
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
annotationKeys, annotationValues := createPrometheusLabelKeysValues("annotation", p.Annotations, allowAnnotationsList)
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: annotationKeys,
LabelValues: annotationValues,
Value: 1,
},
},
}
}),
),
*generator.NewFamilyGenerator(
descPodDisruptionBudgetLabelsName,
descPodDisruptionBudgetLabelsHelp,
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
labelKeys, labelValues := createPrometheusLabelKeysValues("label", p.Labels, allowLabelsList)
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: labelKeys,
LabelValues: labelValues,
Value: 1,
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_poddisruptionbudget_created",
"Unix creation timestamp",
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
ms := []*metric.Metric{}
if !p.CreationTimestamp.IsZero() {
ms = append(ms, &metric.Metric{
Value: float64(p.CreationTimestamp.Unix()),
})
}
return &metric.Family{
Metrics: ms,
}
}),
),
*generator.NewFamilyGenerator(
"kube_poddisruptionbudget_status_current_healthy",
"Current number of healthy pods",
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(p.Status.CurrentHealthy),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_poddisruptionbudget_status_desired_healthy",
"Minimum desired number of healthy pods",
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(p.Status.DesiredHealthy),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_poddisruptionbudget_status_pod_disruptions_allowed",
"Number of pod disruptions that are currently allowed",
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(p.Status.DisruptionsAllowed),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_poddisruptionbudget_status_expected_pods",
"Total number of pods counted by this disruption budget",
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(p.Status.ExpectedPods),
},
},
}
}),
),
*generator.NewFamilyGenerator(
"kube_poddisruptionbudget_status_observed_generation",
"Most recent generation observed when updating this PDB status",
metric.Gauge,
"",
wrapPodDisruptionBudgetFunc(func(p *policyv1.PodDisruptionBudget) *metric.Family {
return &metric.Family{
Metrics: []*metric.Metric{
{
Value: float64(p.Status.ObservedGeneration),
},
},
}
}),
),
}
}