【发布时间】:2021-03-14 09:27:10
【问题描述】:
我想在 Grafana 中有一个面板,显示主机中当前正在运行的 pod。
对于主机变量,我有以下查询(作业变量只是label_values(node_uname_info, job)。):
label_values(node_uname_info{job="$job"}, instance)
这给了我一个套接字数组:host_ip:port
我可以从kube_pod_info{job="$job", host_ip="$host_ip"} 获取 pod 名称,但为了获得 IP,我需要删除套接字的端口部分:
label_replace(node_uname_info{job="$job", instance="$node"}, "host_ip", "$1", "instance", "(.*):.*")
我还没有找到如何在pod查询中使用新的host_ip标签最终得到kube_pod_info的所有pod标签值。我不想将 label_replace 放入 Prometheus 以避免数据重复 - 有没有办法在 pod 查询中使用新的 host_ip 标签?
编辑:
我添加了 host_ip 变量和正则表达式,正如 shan1024 在他的回答中显示的那样,并将面板的查询更改为:
sum by (pod) (kube_pod_info{job="$job", host_ip="$host_ip"})
然后我将面板的可视化更改为表格并将列样式添加到Time 和Value(选择隐藏类型)。这允许我以类似列表的方式显示主机正在运行的 pod。
【问题讨论】:
标签: kubernetes grafana promql