Skip to content

Conversation

@juli4n
Copy link
Contributor

@juli4n juli4n commented Sep 22, 2025

This change allows to specify the host project of a metric in the metric spec, so that the adapter can fetch metrics from a different project than the one where the adapter is running.

This is useful in scenarios where metrics are stored in a central project, but the HPA is running in a different project.

The host project can be specified by adding the resource.labels.metrics_host_project_id label to the metric selector in the HPA definition.

For external metrics, the legacy resource.labels.project_id label is also supported for backward compatibility.

How to use:

To fetch a metric from a different project, add the resource.labels.metrics_host_project_id label to the metric selector in the HPA definition.

Example for a custom metric:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: custom-metric-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metric:
        name: my-metric
        selector:
          matchLabels:
            "resource.labels.metrics_host_project_id": "my-metrics-project"
      target:
        type: AverageValue
        averageValue: 10

Fixes #979

This change allows to specify the host project of a metric in the metric spec, so that the adapter can fetch metrics from a different project than the one where the adapter is running.

This is useful in scenarios where metrics are stored in a central project, but the HPA is running in a different project.

The host project can be specified by adding the `resource.labels.metrics_host_project_id` label to the metric selector in the HPA definition.

For external metrics, the legacy `resource.labels.project_id` label is also supported for backward compatibility.

How to use:

To fetch a metric from a different project, add the `resource.labels.metrics_host_project_id` label to the metric selector in the HPA definition.

Example for a custom metric:

```yaml
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: custom-metric-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metric:
        name: my-metric
        selector:
          matchLabels:
            "resource.labels.metrics_host_project_id": "my-metrics-project"
      target:
        type: AverageValue
        averageValue: 10
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for cross-project metrics

1 participant