Open giuliohome opened 1 year ago
Comparing murre
against kubectl top
[giulio@fedora murre]$ kubectl top pod -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default alertmanager-myprometheus-kube-promethe-alertmanager-0 1m 41Mi
default gke-golang-web-68d985fb4b-g62j5 1m 4Mi
default gke-golang-web-68d985fb4b-mwrvl 1m 4Mi
default myprometheus-grafana-7dd5858545-9rl85 17m 225Mi
default myprometheus-kube-promethe-operator-74b5bd4b97-9csg2 1m 43Mi
default myprometheus-kube-state-metrics-68795b6566-2vt6k 2m 30Mi
default myprometheus-prometheus-node-exporter-d598k 7m 21Mi
default postgres-statefulset-0 1m 58Mi
default prometheus-myprometheus-kube-promethe-prometheus-0 74m 259Mi
kube-system coredns-565d847f94-bsnxj 4m 53Mi
kube-system etcd-minikube 47m 95Mi
kube-system kube-apiserver-minikube 106m 395Mi
kube-system kube-controller-manager-minikube 27m 119Mi
kube-system kube-proxy-ljg98 1m 36Mi
kube-system kube-scheduler-minikube 6m 31Mi
kube-system metrics-server-769cd898cd-986hc 9m 20Mi
kube-system storage-provisioner 4m 25Mi
kubernetes-dashboard dashboard-metrics-scraper-b74747df5-9x4b4 1m 17Mi
kubernetes-dashboard kubernetes-dashboard-57bbdc5f89-hr7bn 1m 26Mi
Found the root cause!
Only the container name is empty, we can recover the pod name and namespace in a simpler way: at this point it is a one-liner fix! The comparison between murre and kubectl top is now consistent.
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default alertmanager-myprometheus-kube-promethe-alertmanager-0 2m 42Mi
default gke-golang-web-68d985fb4b-g62j5 1m 1Mi
default gke-golang-web-68d985fb4b-mwrvl 1m 7Mi
default myprometheus-grafana-7dd5858545-9rl85 20m 286Mi
default myprometheus-kube-promethe-operator-74b5bd4b97-9csg2 1m 54Mi
default myprometheus-kube-state-metrics-68795b6566-2vt6k 2m 36Mi
default myprometheus-prometheus-node-exporter-d598k 6m 19Mi
default postgres-statefulset-0 1m 54Mi
default prometheus-myprometheus-kube-promethe-prometheus-0 65m 287Mi
kube-system coredns-565d847f94-bsnxj 4m 29Mi
kube-system etcd-minikube 50m 84Mi
kube-system kube-apiserver-minikube 110m 405Mi
kube-system kube-controller-manager-minikube 29m 77Mi
kube-system kube-proxy-ljg98 2m 44Mi
kube-system kube-scheduler-minikube 5m 42Mi
kube-system metrics-server-769cd898cd-986hc 9m 48Mi
kube-system storage-provisioner 7m 31Mi
kubernetes-dashboard dashboard-metrics-scraper-b74747df5-9x4b4 1m 30Mi
kubernetes-dashboard kubernetes-dashboard-57bbdc5f89-hr7bn 1m 37Mi
Cherry :cake: on top: activating this change by a command argument --empty-container
:
[giulio@fedora murre]$ ./murre --help
murre is a command line tool to monitor kubernetes resources
Usage:
murre [flags]
Flags:
--container string filter by container
--empty-container metrics with no container name
What this PR does / why we need it:
Extract metrics multi-container pods
Which issue(s) this PR fixes:
Please, follow all my comments under this issue.
Special notes for your reviewer: Any other tree traversal method would work better than the current silent skipping.