diff options
| -rw-r--r-- | robusta_krr/core/integrations/prometheus/metrics_service/base_metric_service.py | 11 | ||||
| -rw-r--r-- | robusta_krr/core/integrations/prometheus/metrics_service/prometheus_metrics_service.py | 4 |
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}]" ) |
