-
Notifications
You must be signed in to change notification settings - Fork 386
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
Conversation
🎉 Successfully Build Images. Docker RegistryOverview: https://hub.docker.com/u/gocrane
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 RegistryOverview: https://finops.coding.net/public-artifacts/gocrane/crane/packages
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 RegistryOverview: https://github.com/orgs/gocrane/packages?repo_name=crane
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 |
@qmhu PTAL, thanks |
podNameReg = utils.GetPodNameReg(ehpa.Spec.ScaleTargetRef.Name, ehpa.Spec.ScaleTargetRef.Kind) | ||
} | ||
} | ||
case autoscalingv2.ContainerResourceMetricSourceType: |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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)
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: