summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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}]"
)