如何在Prometheus中拼接两个指标值并在统计面板展示为指定格式?
在统计面板中展示两个指标的数值拼接(格式为
当前值/最大值) 假设你使用的是Grafana这类主流监控面板工具,以下是实现21/100这类格式展示的两种可行方法:
方法1:利用Grafana字段自定义拼接(推荐)
这是最直观且易维护的方式:
- 添加一个Stat类型面板,在查询编辑器中新增两个查询:
- 第一个查询:
mysql_global_status_threads_connected{service_name="$service_name"},将查询别名设为used - 第二个查询:
mysql_global_variables_max_connections{service_name="$service_name"},将查询别名设为max
- 第一个查询:
- 切换到面板的字段配置页,点击「添加字段」,选择「自定义」类型
- 在自定义字段的「表达式」中输入:
${used} / ${max},并设置该字段的显示名称 - 隐藏原有的
used和max字段,只保留自定义的拼接字段,面板即可显示21/100格式的内容
方法2:使用PromQL拼接字符串(适合纯PromQL场景)
如果需要直接通过PromQL返回拼接后的字符串结果,可以使用label_replace和label_join组合实现:
label_join( label_replace( mysql_global_status_threads_connected{service_name="$service_name"}, "used", "$value", "", "" ) * on(service_name) group_left() label_replace( mysql_global_variables_max_connections{service_name="$service_name"}, "max", "$value", "", "" ), "/", "", "used", "max" )
该查询会将两个指标的数值转为标签,再通过label_join用/连接成字符串,最终返回包含used="21",max="100"的标签组合,提取后即可得到21/100格式。
内容的提问来源于stack exchange,提问作者Asuwini P
相关产品推荐
相关产品推荐

