From 7cd0c59ecce48c84ac0ed5a7eeeb503c9c9f19fe Mon Sep 17 00:00:00 2001 From: LeaveMyYard Date: Wed, 24 Apr 2024 16:23:13 +0300 Subject: Filter Cronjob-created jobs from display --- .../prometheus/loaders/simple_parent.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/robusta_krr/core/integrations/kubernetes/workload_loader/prometheus/loaders/simple_parent.py b/robusta_krr/core/integrations/kubernetes/workload_loader/prometheus/loaders/simple_parent.py index 33a8c5a..9bc53d2 100644 --- a/robusta_krr/core/integrations/kubernetes/workload_loader/prometheus/loaders/simple_parent.py +++ b/robusta_krr/core/integrations/kubernetes/workload_loader/prometheus/loaders/simple_parent.py @@ -43,6 +43,26 @@ class SimpleParentLoader(BaseKindLoader): key = metric["namespace"], metric["owner_name"], metric["owner_kind"] workloads[key].append(metric["pod"]) + # NOTE: We do not show jobs that are a part of a cronjob, so we filter them out + job_workloads = [name for (_, name, kind) in workloads if kind == "Job"] + if job_workloads != []: + cronjobs = await self.connector.loader.query( + f""" + count by (namespace, job_name) ( + kube_job_owner{{ + {self.cluster_selector} + {namespace_selector}, + owner_kind="CronJob" + }} + ) + """ + ) + for cronjob in cronjobs: + metric = cronjob["metric"] + key = (metric["namespace"], metric["job_name"], "Job") + if key in workloads: + del workloads[key] + workloads_containers = dict( zip( workloads.keys(), -- cgit v1.2.3