From 4103ea2ba00a06e1b5135a178cd6d327abe3c34a Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sun, 10 May 2026 18:36:16 +0000 Subject: [PATCH] monitoring(prometheus): keep all 4 kubelet_volume_stats_inodes metrics pvc-autoresizer's GetMetrics() returns volume stats for a PVC only if all four kubelet_volume_stats metrics (available_bytes, capacity_bytes, inodes_free, inodes) are retrieved. The keep-list in the kubernetes-nodes scrape job had available_bytes and capacity_bytes (post 9d5da4d8) but was missing the two inode metrics, so the autoresizer's reconcile logged "failed to get volume stats" for every PVC and never resized anything. Add kubelet_volume_stats_inodes and kubelet_volume_stats_inodes_free to the regex. Co-Authored-By: Claude Opus 4.7 --- .../modules/monitoring/prometheus_chart_values.tpl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/stacks/monitoring/modules/monitoring/prometheus_chart_values.tpl b/stacks/monitoring/modules/monitoring/prometheus_chart_values.tpl index 1e15e98c..f1619033 100755 --- a/stacks/monitoring/modules/monitoring/prometheus_chart_values.tpl +++ b/stacks/monitoring/modules/monitoring/prometheus_chart_values.tpl @@ -380,11 +380,13 @@ serverFiles: regex: 'kubernetes_feature_enabled|kubelet_container_log_filesystem_used_bytes' action: drop # Whitelist: only keep essential kubelet metrics - # kubelet_volume_stats_available_bytes is required by pvc-autoresizer - # (it computes utilization as 1 - available/capacity). Without it the - # autoresizer is silent for every PVC in the cluster. + # pvc-autoresizer requires all four kubelet_volume_stats metrics + # (available_bytes, capacity_bytes, inodes_free, inodes); it skips + # any PVC missing even one. Without inodes_free + inodes the + # autoresizer's GetMetrics returns empty for every PVC and the + # reconcile is a no-op cluster-wide. - source_labels: [__name__] - regex: 'kubelet_volume_stats_capacity_bytes|kubelet_volume_stats_used_bytes|kubelet_volume_stats_available_bytes|kubelet_volume_stats_inodes_used|kubelet_running_containers|kubelet_runtime_operations_errors_total|process_cpu_seconds_total|process_resident_memory_bytes|process_start_time_seconds|go_memstats_alloc_bytes|up' + regex: 'kubelet_volume_stats_capacity_bytes|kubelet_volume_stats_used_bytes|kubelet_volume_stats_available_bytes|kubelet_volume_stats_inodes|kubelet_volume_stats_inodes_used|kubelet_volume_stats_inodes_free|kubelet_running_containers|kubelet_runtime_operations_errors_total|process_cpu_seconds_total|process_resident_memory_bytes|process_start_time_seconds|go_memstats_alloc_bytes|up' action: keep - job_name: kubernetes-nodes-cadvisor scheme: https