From 3bb7b30f4a4a55b5ce65fd61391f88308d9c7ebc Mon Sep 17 00:00:00 2001 From: xiongyao Date: Fri, 8 Nov 2024 00:50:16 +0800 Subject: [PATCH] add filtering judgment for the kube_pod_volcano_container_status_running and kube_pod_volcano_container_resource_requests metric Signed-off-by: xiongyao --- internal/store/pod.go | 76 +++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/internal/store/pod.go b/internal/store/pod.go index 6dfb11bc15..debe6b6943 100644 --- a/internal/store/pod.go +++ b/internal/store/pod.go @@ -587,11 +587,14 @@ func podMetricFamilies(allowLabelsList []string) []generator.FamilyGenerator { wrapPodFunc(func(p *v1.Pod) *metric.Family { ms := make([]*metric.Metric, len(p.Status.ContainerStatuses)) - for i, cs := range p.Status.ContainerStatuses { - ms[i] = &metric.Metric{ - LabelKeys: []string{"container", "job_name", "queue"}, - LabelValues: []string{cs.Name, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"]}, - Value: boolFloat64(cs.State.Running != nil), + if _, ok := p.Labels["volcano.sh/job-name"]; ok { + + for i, cs := range p.Status.ContainerStatuses { + ms[i] = &metric.Metric{ + LabelKeys: []string{"container", "job_name", "queue"}, + LabelValues: []string{cs.Name, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"]}, + Value: boolFloat64(cs.State.Running != nil), + } } } @@ -906,49 +909,50 @@ func podMetricFamilies(allowLabelsList []string) []generator.FamilyGenerator { "", wrapPodFunc(func(p *v1.Pod) *metric.Family { ms := []*metric.Metric{} + if _, ok := p.Labels["volcano.sh/job-name"]; ok { - for _, c := range p.Spec.Containers { - req := c.Resources.Requests + for _, c := range p.Spec.Containers { + req := c.Resources.Requests - for resourceName, val := range req { - switch resourceName { - case v1.ResourceCPU: - ms = append(ms, &metric.Metric{ - LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitCore)}, - Value: float64(val.MilliValue()) / 1000, - }) - case v1.ResourceStorage: - fallthrough - case v1.ResourceEphemeralStorage: - fallthrough - case v1.ResourceMemory: - ms = append(ms, &metric.Metric{ - LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitByte)}, - Value: float64(val.Value()), - }) - default: - if isHugePageResourceName(resourceName) { + for resourceName, val := range req { + switch resourceName { + case v1.ResourceCPU: ms = append(ms, &metric.Metric{ - LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitByte)}, - Value: float64(val.Value()), + LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitCore)}, + Value: float64(val.MilliValue()) / 1000, }) - } - if isAttachableVolumeResourceName(resourceName) { + case v1.ResourceStorage: + fallthrough + case v1.ResourceEphemeralStorage: + fallthrough + case v1.ResourceMemory: ms = append(ms, &metric.Metric{ LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitByte)}, Value: float64(val.Value()), }) - } - if isExtendedResourceName(resourceName) { - ms = append(ms, &metric.Metric{ - LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitInteger)}, - Value: float64(val.Value()), - }) + default: + if isHugePageResourceName(resourceName) { + ms = append(ms, &metric.Metric{ + LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitByte)}, + Value: float64(val.Value()), + }) + } + if isAttachableVolumeResourceName(resourceName) { + ms = append(ms, &metric.Metric{ + LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitByte)}, + Value: float64(val.Value()), + }) + } + if isExtendedResourceName(resourceName) { + ms = append(ms, &metric.Metric{ + LabelValues: []string{c.Name, p.Spec.NodeName, p.Namespace, p.Labels["volcano.sh/job-name"], p.Labels["volcano.sh/queue-name"], sanitizeLabelName(string(resourceName)), string(constant.UnitInteger)}, + Value: float64(val.Value()), + }) + } } } } } - for _, metric := range ms { metric.LabelKeys = []string{"container", "node", "volcano_namespace", "volcano_job", "queue", "resource", "unit"} }