You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复PromQL中label_replace()导致非UUID URI丢失的问题?

修复PromQL查询解决UUID路径分组问题

问题根源

你原来的正则表达式仅匹配包含UUID格式的URI,不含UUID的URI无法匹配该正则,导致label_replace()不会为这些序列生成uri2标签。而sum by (method, uri2)会过滤掉没有uri2标签的时间序列,最终普通URI消失。

修复后的查询

sum(label_replace(rate(http_server_requests_seconds_count{}[$__rate_interval]), "uri2", "$1", "uri", "^(.+?)(/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})?$")) by (method, uri2)

关键修改说明

  • 正则末尾添加?$,将UUID路径段标记为可选匹配,确保所有URI都能命中规则
  • 用非贪婪匹配(.+?)避免过度捕获路径内容,保证UUID前的路径被准确提取:
    • 含UUID的URI:$1捕获UUID之前的路径部分,实现UUID移除
    • 普通URI:$1捕获整个原URI,uri2与原uri值一致,保留原有分组

可选适配调整

如果你的UUID存在非标准格式(比如短UUID),可以调整正则中的长度限制,例如把{8}改为{0,8},但上述正则已覆盖标准UUID的8-4-4-4-12格式场景。

内容的提问来源于stack exchange,提问作者netikras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:33:12