grafana展示K8S节点时支持别名

2023-12-04 15:51:59 浏览数 (3)

需求背景:

创建TKE节点池默认都是以IP命名,也不想再自定义命名,所以在grafana展示过滤时不好识别每个节点用途

解决方案:

Prometheus支持label_join表达式,支持将metrics的2个label合并为1个新的label,grafana在展示时可以通过新label展示,过滤的值可以通过node标签展示。Prometheus kubernetes sd中node role会带上节点label,所以思路如下:

  1. 给节点打上labelkubectl label node <node_ip> trino=prod
  2. 在grafana 中变量模版: query: query_result(label_join(kubelet_node_name, "rename", "-", "trino", "node"))
  3.  在grafana中正则匹配变量的key和value: /rename="(?<text>^" )|node="(?<value>^" )/g 其中key为rename,dashboard展示使用 value为node,在dashboard那其他panel引用 展示效果: prod-10.0.0.139,符合客户

参考文档:

https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#filter-and-modify-using-named-text-and-value-capture-groups

0 人点赞