新版GRANAFA K8S插件 K8S NODE 圖表不顯示問題解決方法


原文:https://www.wchao.site/archives/granafa-k8s

其他參考:https://blog.csdn.net/bbwangj/article/details/82658419

k8s node 圖表不顯示問題。 2收集節點信息,依賴node-exporter 暴露的http接口。以獲取cpu使用率接口為例,其格式如下:

node_cpu_seconds_total{beta_kubernetes_io_arch="amd64",beta_kubernetes_io_os="linux",cpu="9",instance="slave1",job="kubernetes-nodes",kubernetes_io_arch="amd64",kubernetes_io_hostname="slave1",kubernetes_io_os="linux",mode="user"}

dashboard 中獲取的cpu數據的公式如下:

3

可以看到k8s Node模板里面是使用 nodename 字段來獲取不同節點的數據,但是node-exporter 暴露出來的接口中,並沒有nodename 字段,因此導致了模板查詢不到數據,從而無法繪制圖形。

解決方法如下:

點擊 k8s Node dashboard 頁面中的設置按鈕,選擇Variable 菜單

4

可以看到當前有4個變量,點擊右上角New 創建一個新變量

點擊保存后,會彈出一個提示框。選擇overwrite 即可。 5

注意上圖中的node_boot_time 要寫成 node_boot_time_seconds,即

label_values(node_boot_time_seconds,instance)

直到下面preview of values 顯示主機列表的時候才算正常

如下所示

 

再回到 k8s Node dashboard 頁面,可以看到多了instance 一欄

隨后編輯各個panel, 將引用了nodename的地方改為instance。這里以cpu panel 為例: 8

可以看到,修改后圖形能正常展示了。 使用新版本最后還是不能正常顯示,不過問題不大,主要原因是有些字段名字已經更換了,下面是部分更改屬性的對應:

* node_cpu -> node_cpu_seconds_total * node_memory_MemTotal -> node_memory_MemTotal_bytes * node_memory_MemFree -> node_memory_MemFree_bytes * node_filesystem_avail -> node_filesystem_avail_bytes * node_filesystem_size -> node_filesystem_size_bytes * node_disk_io_time_ms -> node_disk_io_time_seconds_total * node_disk_reads_completed -> node_disk_reads_completed_total * node_disk_sectors_written -> node_disk_written_bytes_total * node_time -> node_time_seconds * node_boot_time -> node_boot_time_seconds * node_intr -> node_intr_total * node_filesystem_free -> node_filesystem_free_bytes * node_filesystem_size -> node_filesystem_size_bytes * node_disk_bytes_read-> node_disk_read_bytes_total * node_disk_bytes_written -> node_disk_written_bytes_total * node_disk_reads_completed->node_disk_reads_completed_total * node_disk_writes_completed -> node_disk_writes_completed_total * node_network_receive_bytes -> node_network_receive_bytes_total * node_network_transmit_bytes -> node_network_transmit_bytes_total * node_network_receive_errs -> node_network_receive_errs_total 

授人以魚不如授人以漁。如果上面沒有列出的屬性,你復制一下到prometheus這兒通常會出現大意相同寫法不同的屬性名稱。這就是對應的。 9最后附上一張成功圖。 7


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM