如何在Prometheus折线图中批量选择同一主机的多时间序列?
按主机批量选中指标的实现方案
当然可行,以常用的Grafana(搭配Prometheus数据源)为例,有两种实用的实现方式:
方式一:主机变量联动
- 创建主机变量:在仪表盘设置的「变量」页面,添加类型为「查询」的变量,查询语句写
label_values(Java_HeapMemoryUsage_max, host),自动拉取所有host标签值。 - 配置指标查询:把每个指标的查询语句改成带变量的形式:
- 堆内存最大值:
Java_HeapMemoryUsage_max{host="$host"} - 堆内存已使用:
Java_HeapMemoryUsage_used{host="$host"}
- 堆内存最大值:
- 操作时,在仪表盘顶部的主机下拉框选择
host_1,所有关联该变量的指标会自动切换到对应主机的数据,相当于一次性选中该主机的所有指标。
方式二:图例点击联动(Grafana 8+支持)
如果不想用变量,可通过图例交互实现:
- 在指标面板的「选项」设置中,找到「图例」部分,开启「点击图例时按标签匹配联动」的功能(选项名随Grafana版本略有差异,核心是基于标签匹配关联)。
- 点击图例中的「Used host_1」时,系统会自动识别
host="host_1"标签,将所有带该标签的指标(包括「Max host_1」)同时选中高亮。
额外优化提示
如果指标命名规范(比如都以Java_HeapMemoryUsage_开头),可用通用查询语句统一拉取同一主机的所有相关指标:
{__name__=~"Java_HeapMemoryUsage_(max|used)", host="host_1"}
这样面板会自动展示该主机的max和used两条曲线,点击任意一条图例,都会基于host标签联动选中同主机的其他曲线。
内容的提问来源于stack exchange,提问作者subDir99
相关产品推荐
相关产品推荐

