Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add ContainerResource source type for ehpa prediction #859

Merged
merged 2 commits into from
Sep 13, 2023

Conversation

whitebear009
Copy link
Contributor

What type of PR is this?

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

@github-actions
Copy link
Contributor

🎉 Successfully Build Images.
Now Support ARM Platforms.
Comment Post Time: 2023-08-30 18:21
Git Version: b5475b7

Docker Registry

Overview: https://hub.docker.com/u/gocrane

Image Pull Command
crane-agent:pr-859-b5475b7 docker pull gocrane/crane-agent:pr-859-b5475b7
dashboard:pr-859-b5475b7 docker pull gocrane/dashboard:pr-859-b5475b7
metric-adapter:pr-859-b5475b7 docker pull gocrane/metric-adapter:pr-859-b5475b7
craned:pr-859-b5475b7 docker pull gocrane/craned:pr-859-b5475b7

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=gocrane/craned \
                   --set craned.image.tag=pr-859-b5475b7 \
                   --set metricAdapter.image.repository=gocrane/metric-adapter \
                   --set metricAdapter.image.tag=pr-859-b5475b7 \
                   --set craneAgent.image.repository=gocrane/crane-agent \
                   --set craneAgent.image.tag=pr-859-b5475b7 \
                   --set cranedDashboard.image.repository=gocrane/dashboard \
                   --set cranedDashboard.image.tag=pr-859-b5475b7 crane/crane

Coding Registry

Overview: https://finops.coding.net/public-artifacts/gocrane/crane/packages

Image Pull Command
crane-agent:pr-859-b5475b7 docker pull finops-docker.pkg.coding.net/gocrane/crane/crane-agent:pr-859-b5475b7
dashboard:pr-859-b5475b7 docker pull finops-docker.pkg.coding.net/gocrane/crane/dashboard:pr-859-b5475b7
metric-adapter:pr-859-b5475b7 docker pull finops-docker.pkg.coding.net/gocrane/crane/metric-adapter:pr-859-b5475b7
craned:pr-859-b5475b7 docker pull finops-docker.pkg.coding.net/gocrane/crane/craned:pr-859-b5475b7

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=finops-docker.pkg.coding.net/gocrane/crane/craned \
                   --set craned.image.tag=pr-859-b5475b7 \
                   --set metricAdapter.image.repository=finops-docker.pkg.coding.net/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-859-b5475b7 \
                   --set craneAgent.image.repository=finops-docker.pkg.coding.net/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-859-b5475b7 \
                   --set cranedDashboard.image.repository=finops-docker.pkg.coding.net/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-859-b5475b7 crane/crane

Ghcr Registry

Overview: https://github.com/orgs/gocrane/packages?repo_name=crane

Image Pull Command
crane-agent:pr-859-b5475b7 docker pull ghcr.io/gocrane/crane/crane-agent:pr-859-b5475b7
dashboard:pr-859-b5475b7 docker pull ghcr.io/gocrane/crane/dashboard:pr-859-b5475b7
metric-adapter:pr-859-b5475b7 docker pull ghcr.io/gocrane/crane/metric-adapter:pr-859-b5475b7
craned:pr-859-b5475b7 docker pull ghcr.io/gocrane/crane/craned:pr-859-b5475b7

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=ghcr.io/gocrane/crane/craned \
                   --set craned.image.tag=pr-859-b5475b7 \
                   --set metricAdapter.image.repository=ghcr.io/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-859-b5475b7 \
                   --set craneAgent.image.repository=ghcr.io/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-859-b5475b7 \
                   --set cranedDashboard.image.repository=ghcr.io/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-859-b5475b7 crane/crane

@whitebear009
Copy link
Contributor Author

@qmhu PTAL, thanks

podNameReg = utils.GetPodNameReg(ehpa.Spec.ScaleTargetRef.Name, ehpa.Spec.ScaleTargetRef.Kind)
}
}
case autoscalingv2.ContainerResourceMetricSourceType:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you help to provide a sample and explain how to convert it? Also please show how to config it in prometheus-adapter mode. tks.

Copy link
Contributor Author

@whitebear009 whitebear009 Sep 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is a sample:

metrics:
  - type: ContainerResource
    containerResource:
      container: app
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

the default expression will convert it to promql like irate(container_cpu_usage_seconds_total{container!="POD",namespace="kube-system",pod=~"pod1|pod2",container="app"}[3m]) in file https://github.com/gocrane/crane/pull/859/files#diff-58fd591c9f408018596b9c5b19515f115c97a0243aeadcab4984c3d5bed6edc9R128

In prometheus-adapter mode, its config is basicly the same with pod resource metrics. The only difference is that compared to pod resource metrics, there is an additional field representing container name. This field name defaults to "container" and can be modified through the containerLabel of prometheus-adapter(https://github.com/kubernetes-sigs/prometheus-adapter/blob/master/pkg/config/config.go#L110) (this is also the original purpose of this field, because compared with namespace/pod, container is not K8s resources, so a separate field is required)

@qmhu qmhu merged commit 94616ca into gocrane:main Sep 13, 2023
12 checks passed
@qmhu qmhu added enhancement New feature or request kind/feature labels Sep 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants