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

Fix empty screen issue #5 for multi-container pods #23

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

giuliohome
Copy link

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.

@giuliohome
Copy link
Author

Comparing murre

image

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  

@giuliohome
Copy link
Author

giuliohome commented Dec 8, 2022

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   

image

@giuliohome
Copy link
Author

Cherry 🍰 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

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.

None yet

1 participant