summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi-Robusta <97387909+Avi-Robusta@users.noreply.github.com>2023-06-29 16:08:37 +0300
committerGitHub <noreply@github.com>2023-06-29 16:08:37 +0300
commit87afa696b8fcd4dd9beb55df2e99f5e97e986300 (patch)
treea0fc73d3a8d332750176f3db85e1539c506647e0
parent4415367af4b1587306258b1e741553f7bd188fb8 (diff)
parent77fb7edef8ecef5c48b4c23703e815be292aa7c8 (diff)
Merge pull request #73 from robusta-dev/fix_multi_cluster_label
added cluster label for kube_pod_owner
-rw-r--r--robusta_krr/core/integrations/prometheus/metrics_service/base_metric_service.py11
-rw-r--r--robusta_krr/core/integrations/prometheus/metrics_service/prometheus_metrics_service.py4
2 files changed, 14 insertions, 1 deletions
diff --git a/robusta_krr/core/integrations/prometheus/metrics_service/base_metric_service.py b/robusta_krr/core/integrations/prometheus/metrics_service/base_metric_service.py
index e869ab0..4337e5e 100644
--- a/robusta_krr/core/integrations/prometheus/metrics_service/base_metric_service.py
+++ b/robusta_krr/core/integrations/prometheus/metrics_service/base_metric_service.py
@@ -55,3 +55,14 @@ class MetricsService(Configurable, abc.ABC):
step: datetime.timedelta = datetime.timedelta(minutes=30),
) -> ResourceHistoryData:
...
+
+ def get_prometheus_cluster_label(self) -> str:
+ """
+ Generates the cluster label for querying a centralized Prometheus
+
+ Returns:
+ str: a promql safe label string for querying the cluster.
+ """
+ if self.config.prometheus_cluster_label is None:
+ return ""
+ return f', {self.config.prometheus_label}="{self.config.prometheus_cluster_label}"'
diff --git a/robusta_krr/core/integrations/prometheus/metrics_service/prometheus_metrics_service.py b/robusta_krr/core/integrations/prometheus/metrics_service/prometheus_metrics_service.py
index 8213607..896387f 100644
--- a/robusta_krr/core/integrations/prometheus/metrics_service/prometheus_metrics_service.py
+++ b/robusta_krr/core/integrations/prometheus/metrics_service/prometheus_metrics_service.py
@@ -195,13 +195,14 @@ class PrometheusMetricsService(MetricsService):
period_literal = f"{days_literal}d"
pod_owners: list[str]
pod_owner_kind: str
-
+ cluster_label = self.get_prometheus_cluster_label()
if object.kind == "Deployment":
replicasets = await self.query(
"kube_replicaset_owner{"
f'owner_name="{object.name}", '
f'owner_kind="Deployment", '
f'namespace="{object.namespace}"'
+ f'{cluster_label}'
"}"
f"[{period_literal}]"
)
@@ -217,6 +218,7 @@ class PrometheusMetricsService(MetricsService):
f'owner_name=~"{owners_regex}", '
f'owner_kind="{pod_owner_kind}", '
f'namespace="{object.namespace}"'
+ f'{cluster_label}'
"}"
f"[{period_literal}]"
)