如何通过Grafana label_values正则提取不含查询参数的URI
去除URI查询参数的Prometheus变量查询方法
当前使用label_values(http_client_requests_seconds_count, uri)获取URI时,会包含带不同查询参数的重复路径(如/account/details?accnr=1234和/account/details?accnr=5678),可以通过label_replace函数配合正则提取去除参数的路径,具体查询语句如下:
label_values(label_replace(http_client_requests_seconds_count, "clean_uri", "$1", "uri", "^([^?]+).*$"), clean_uri)
逻辑说明:
label_replace函数会为指标创建一个新标签clean_uri:- 正则表达式
^([^?]+).*$匹配URI中从开头到第一个?的所有字符(即去除查询参数的核心路径) - 通过
$1将捕获到的核心路径赋值给新标签clean_uri
- 正则表达式
- 最后对新标签
clean_uri使用label_values,即可得到去重后的URI列表:
/user/accounts /user/contact_info /account/details
内容的提问来源于stack exchange,提问作者asli
相关产品推荐
相关产品推荐

