Describe the bug
In the Nodes list view, the CPU column displays 0.0Ki for every node, regardless of actual CPU usage. The Memory column for the same nodes shows correct values (e.g. 18.0Gi). The CPU value
appears to be formatted with byte units (Ki/Mi/Gi), suggesting a unit-mismatch bug where CPU data (typically in nanocores or millicores) is being rendered through the bytes formatter.
Note that the Memory column works correctly, the node detail view (per-node Metrics tab graphs) renders CPU correctly, and the cluster itself reports CPU correctly through every other channel.
Reproduction steps
- Connect Freelens to a kubernetes cluster with a healthy
metrics-server and a running kube-prometheus-stack
- Open
Catalog → Workloads → Nodes or Cluster → Nodes
- Observe the
CPU column shows 0.0Ki for every node
Expected behavior
Expected: CPU column shows real CPU usage values (cores or millicores).
Actual: CPU column shows 0.0Ki uniformly. Memory column on the same row shows accurate values, so the issue is isolated to CPU rendering in the list view.
Screenshots
Freelens version
1.9.0
Operating system type and version
MacOS 26.5 M3
Installation method
Homebrew Cask
Kubernetes cluster version used with Freelens
1.35.2
Logs
No response
Kubeconfig
No response
Additional context
- Cluster type: OVH Managed Kubernetes (
r3-64 flavor nodes)
- metrics-server: present and reporting normally
- Prometheus stack:
kube-prometheus-stack v84.3.0 (also configured manually in cluster settings → Metrics → prometheus/<prometheus-svc>:9090)
Reproducibility
Persistent. Reproduces across:
- Disconnect / reconnect of the cluster
- Full uninstall + clean reinstall of Freelens (DMG removed,
~/Library/Application Support/Freelens, ~/Library/Preferences/app.freelens.*, ~/Library/Caches/*freelens*, and ~/Library/Saved Application State/*freelens* all wiped before reinstall)
- Two consecutive cluster nodepool shape migrations (b3-32 → r3-64 → r3-64 again) — the bug appeared first right after a drain operation that rescheduled
metrics-server to a new pod IP, and persisted
through subsequent migrations even after we ensured the cluster was fully clean
What we've already verified about the cluster
The cluster reports CPU correctly through every other channel:
$ kubectl --context=<cluster> top nodes
NAME CPU(cores) CPU(%) MEMORY(bytes) MEMORY(%)
thanos-node-14906f 3794m 48% 18250Mi 29%
# ... etc, all values populated correctly
$ kubectl --context=<cluster> get --raw '/apis/metrics.k8s.io/v1beta1/nodes' | jq '.items[0].usage'
{
"cpu": "3793172185n", # nanocores — correct
"memory": "18688656Ki" # kibibytes — correct (and Memory column renders this fine)
}
metrics-server is 1/1 Running, APIService v1beta1.metrics.k8s.io is Available=True, kubectl top works flawlessly.
The Freelens node detail view → Metrics tab also loads CPU charts correctly. The bug is isolated to the list view column.
Describe the bug
In the Nodes list view, the
CPUcolumn displays0.0Kifor every node, regardless of actual CPU usage. TheMemorycolumn for the same nodes shows correct values (e.g.18.0Gi). The CPU valueappears to be formatted with byte units (
Ki/Mi/Gi), suggesting a unit-mismatch bug where CPU data (typically in nanocores or millicores) is being rendered through the bytes formatter.Note that the
Memorycolumn works correctly, the node detail view (per-node Metrics tab graphs) renders CPU correctly, and the cluster itself reports CPU correctly through every other channel.Reproduction steps
metrics-serverand a runningkube-prometheus-stackCatalog → Workloads → NodesorCluster → NodesCPUcolumn shows0.0Kifor every nodeExpected behavior
Expected: CPU column shows real CPU usage values (cores or millicores).
Actual: CPU column shows
0.0Kiuniformly. Memory column on the same row shows accurate values, so the issue is isolated to CPU rendering in the list view.Screenshots
Freelens version
1.9.0
Operating system type and version
MacOS 26.5 M3
Installation method
Homebrew Cask
Kubernetes cluster version used with Freelens
1.35.2
Logs
No response
Kubeconfig
No response
Additional context
r3-64flavor nodes)kube-prometheus-stackv84.3.0 (also configured manually in cluster settings → Metrics →prometheus/<prometheus-svc>:9090)Reproducibility
Persistent. Reproduces across:
~/Library/Application Support/Freelens,~/Library/Preferences/app.freelens.*,~/Library/Caches/*freelens*, and~/Library/Saved Application State/*freelens*all wiped before reinstall)metrics-serverto a new pod IP, and persistedthrough subsequent migrations even after we ensured the cluster was fully clean
What we've already verified about the cluster
The cluster reports CPU correctly through every other channel:
metrics-serveris1/1 Running,APIService v1beta1.metrics.k8s.ioisAvailable=True,kubectl topworks flawlessly.The Freelens node detail view → Metrics tab also loads CPU charts correctly. The bug is isolated to the list view column.