例:
prometheus 采集到的数据是:
http_server_response_count{app_id="test-app-1",method="GET",path="/invoke/service-id-test/method/hello",namespace="my-namespace",status="200"} 1314
label_replace的格式
label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)
如计算最近5分钟内测得的HTTP请求的每秒速率,使用label_replace()替换:
label_replace((rate(http_server_response_count{app_id=~"$app_id", namespace="$namespace"}[5m])), "path_replace","$1","path",".*/method/(.*)")
如上语句将path 替换成了path_replace, $1的值为正则表达式中 .*/method/(.*) 的 (.*) 中的值,本例中为hello
注:
如果path的数据不符合正则表达式的格式,则$1即替换后的path_replace为空串
参考链接:
https://prometheus.io/docs/prometheus/latest/querying/functions/#label_replace
https://www.zhukun.net/archives/8376