metric-proxy
The metric-proxy acts as a translation layer between the Kubernetes Metrics Server and CAPI for use in cf-for-k8s. When a request comes into the metric-proxy the proxy will make a request to the Kube API and format the results to match the existing log-cache API. This ensures developers can get metrics from existing versions of the cf
cli. when running commands cf push
and cf app
.
Usage
Push an application and see its metrics with cf push <app_name>
$ cf push diego-docker-test -o cloudfoundry/diego-docker-app
Pushing from manifest to org system / space system as admin...
Getting app info...
Updating app with these attributes...
name: diego-docker-test
docker image: cloudfoundry/diego-docker-app
disk quota: 1G
health check type: port
instances: 1
memory: 1G
stack: cflinuxfs3
routes:
diego-docker-test.example.com
Updating app diego-docker-test...
Mapping routes...
timeout connecting to log server, no log will be shown
Stopping app...
Waiting for app to start...
name: diego-docker-test
requested state: started
isolation segment: placeholder
routes: diego-docker-test.example.com
last uploaded: Fri 06 Mar 16:03:06 MST 2020
stack:
docker image: cloudfoundry/diego-docker-app
type: web
instances: 1/1
memory usage: 1024M
state since cpu memory disk details
#0 running 2020-03-09T15:33:37Z 0.3% 27.2M of 1G 0 of 1G
Get application metrics using cf app <app_name>
$ cf app diego-docker-test
Showing health and status for app diego-docker-test in org system / space system as admin...
name: diego-docker-test
requested state: started
isolation segment: placeholder
routes: diego-docker-test.example.com
last uploaded: Fri 06 Mar 16:03:06 MST 2020
stack:
docker image: cloudfoundry/diego-docker-app
type: web
instances: 1/1
memory usage: 1024M
state since cpu memory disk details
#0 running 2020-03-06T23:03:08Z 0.3% 27.1M of 1G 0 of 1G
Metric Details
The kubelet reports CPU usage in millicores (thousandths of a core). See
Kubernetes docs
for more details. This is reported as a percentage in the Cloud Foundry CLI.
For backwards compatibility, disk
usage is still presented in the output but
will always return 0 as there is no equivalent pod metric in Kubernetes.

How to Contribute/Develop metric-proxy
There are several scripts to help automate building and deploying new versions
of metric-proxy
.
./hack/build-dev-image.sh
— runs tests and builds and pushes a new docker image to cloudfoundry/metric-proxy:dev
./hack/bump-cf-for-k8s.sh
- updates the vendired metric-proxy
directory in the cf-for-k8s
repo with any changes made to metric-proxy
./hack/cf_for_k8s_env_deploy.sh
- helper script to create a GCP K8s cluster,
deploy cf-for-k8s, and update DNS records. Update this script with your GCP
Service Account key and DNS information.
./hack/cf_for_k8s_login.sh
- helper to cf login to your cf-for-k8s
deployment using CF CLI v7
Confirm metric-proxy works by following steps in the Usage section.
See Concourse CI: cf-k8s-metric-proxy-validation
Have a question or feedback, reach out to us
Reach out to us in the Cloud Foundry Slack channel #cf-for-k8s