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

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

k8s node 图表不显示问题。 收集节点信息,依赖node-exporter 暴露的http接口。以获取cpu使用率接口为例,其格式如下:

  1. 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数据的公式如下:

可以看到k8s Node模板里面是使用 nodename 字段来获取不同节点的数据,但是node-exporter 暴露出来的接口中,并没有nodename 字段,因此导致了模板查询不到数据,从而无法绘制图形。

解决方法如下:

点击 k8s Node dashboard 页面中的设置按钮,选择Variable 菜单

可以看到当前有4个变量,点击右上角New 创建一个新变量

点击保存后,会弹出一个提示框。选择overwrite 即可。 

注意上图中的node_boot_time 要写成 node_boot_time_seconds,即

  1. label_values(node_boot_time_seconds,instance)

直到下面preview of values 显示主机列表的时候才算正常

如下所示

再回到 k8s Node dashboard 页面,可以看到多了instance 一栏

随后编辑各个panel, 将引用了nodename的地方改为instance。这里以cpu panel 为例: 

可以看到,修改后图形能正常展示了。 使用新版本最后还是不能正常显示,不过问题不大,主要原因是有些字段名字已经更换了,下面是部分更改属性的对应:

  1. * node_cpu -> node_cpu_seconds_total
  2. * node_memory_MemTotal -> node_memory_MemTotal_bytes
  3. * node_memory_MemFree -> node_memory_MemFree_bytes
  4. * node_filesystem_avail -> node_filesystem_avail_bytes
  5. * node_filesystem_size -> node_filesystem_size_bytes
  6. * node_disk_io_time_ms -> node_disk_io_time_seconds_total
  7. * node_disk_reads_completed -> node_disk_reads_completed_total
  8. * node_disk_sectors_written -> node_disk_written_bytes_total
  9. * node_time -> node_time_seconds
  10. * node_boot_time -> node_boot_time_seconds
  11. * node_intr -> node_intr_total
  12. * node_filesystem_free -> node_filesystem_free_bytes
  13. * node_filesystem_size -> node_filesystem_size_bytes
  14. * node_disk_bytes_read-> node_disk_read_bytes_total
  15. * node_disk_bytes_written -> node_disk_written_bytes_total
  16. * node_disk_reads_completed->node_disk_reads_completed_total
  17. * node_disk_writes_completed ->
  18. node_disk_writes_completed_total
  19. * node_network_receive_bytes ->
  20. node_network_receive_bytes_total
  21. * node_network_transmit_bytes ->
  22. node_network_transmit_bytes_total
  23. * node_network_receive_errs ->
  24. node_network_receive_errs_total

授人以鱼不如授人以渔。如果上面没有列出的属性,你复制一下到prometheus这儿通常会出现大意相同写法不同的属性名称。这就是对应的。 最后附上一张成功图。 

新版GRANAFA K8S插件 K8S NODE 图表不显示问题解决方法的更多相关文章

  1. 强大的Grafana k8s 插件

    原文参考: https://i4t.com/4152.html 参考:https://blog.csdn.net/mailjoin/article/details/81389700 插件链接:http ...

  2. 9、二进制安装K8s之增加node

    二进制安装K8s之增加node 1.复制文件,要部署几台就直接复制即可 #二进制文件 scp /data/k8s/bin/{kubelet,kube-proxy} root@192.168.100.1 ...

  3. 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)

    [K8S]K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本) 写在前面 K8S集群部署成功了,如何对集群进行可视化管理呢?别着急,接下来,我们一 ...

  4. jquery插件lazyload.js延迟加载图片的使用方法

    如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来.通过 ...

  5. highCharts图表应用-实现多种图表的显示

    在数据统计和分析业务中,有时需要在一个图表中将柱状图.饼状图.曲线图的都体现出来,即可以从柱状图中看出具体数据.又能从曲线图中看出变化趋势,还能从饼状图中看出各部分数据比重.highCharts可以轻 ...

  6. Highchar.js插件提示框千分位显示为空格而不是逗号 --(2018 08/06-08/12周总结)

    1.Oracle在已经存在主键的表中插入复合主键的SQL语句 如已有一个表test_key,其中a1列为主键. CREATE TABLE TEST_KEY( A1 VARCHAR2(3) NOT NU ...

  7. Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析

    上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...

  8. Flash图表控件FusionCharts如何在图表中显示标识和图片

    在FusionCharts的图表中显示外部商标 使用FusionCharts之后,用户可以在运行时加载需要在图表中显示的外部标识/图片/图像.这个标识可以GIF / JPEG / PNG或SWF文件格 ...

  9. QT visual stuido 集成插件不能打开ui文件的解决方法(去掉xml的UTF8标记)

    QT visual stuido 集成插件不能打开ui文件的解决方法 visual studio里不能打开这个ui文件,出现warning等解决方法是:于是将<?xml version=&quo ...

随机推荐

  1. python数据类型之二

    列表 list #定义:[]内可以有多个任意类型的值,逗号分隔 基本语法 # 定义:[]内可以有多个任意类型的值,逗号分隔 # my_girl_friends=['alex','wupeiqi','y ...

  2. 用session实现的用户登陆,客户端是怎样获取到cookie信息的

    大家都知道cookie是存在客户端,session存在服务器端.那么客户端具体是怎样获取cookie信息的呢? 更好的阅读体验可访问 这里. 实验环境 实验环境:xampp + Thinkphp5 + ...

  3. 利用pandas映射替换两个字典中的映射值

    在公司处理报表,中英文映射表与数值表替换 import pandas as pd data = { "a":"值一", "b":" ...

  4. C#使用Xamarin开发移动应用 ---- 系列文章

    C#使用Xamarin开发移动应用 C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.) C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练, ...

  5. 预计阅读时间核心jS代码

    <script type="text/javascript"> jq(document).ready(function() { var read_time=jq(&qu ...

  6. CSRF跨域伪造请求

    后端生成一个加密token,将其设置在cookie当中,专用于表单数据提交时的验证,并且前端在表单中多增加一个隐藏字段,每当用户提交表单数据时(post请求),将这个隐藏字段一并提交,后端再对表单中的 ...

  7. vue-cli3.0启动项目,在局域网内其他电脑通过自己ip访问

    最近一直在使用vue-cli3.0做项目, package.json中配置后,自启动项目,也就没留意过小黑窗, "scripts": { "serve": &q ...

  8. GitHub 干货 | 各大数据竞赛 Top 解决方案开源汇总

    AI 科技评论编者按:现在,越来越多的企业.高校以及学术组织机构通过举办各种类型的数据竞赛来「物色」数据科学领域的优秀人才,并借此激励他们为某一数据领域或应用场景找到具有突破性意义的方案,也为之后的数 ...

  9. 每日一问:不一样的角度吐槽下 DataBinding

    我们项目采用的是 kotlin && DataBinding 处理的,可能你会疑问,既然用的是 kotlin,为啥没有用 kotlinx?新的页面当然是用的 kotlinx 啦,但我们 ...

  10. SpringBoot整合MyBatis与MySql8.0

    一.前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis.最新MySQL8.0整合过程中遇到的问题进 ...