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

如何使用PromQL将两个Prometheus时序按新标签合并生成新时序

方案实现

可以通过PromQL的label_replace函数结合or运算符实现需求,完整语句如下:

label_replace(ts1, "inner_ts", "ts1", "", "") or label_replace(ts2, "inner_ts", "ts2", "", "")

逻辑说明

  • 用label_replace分别给两个原始时序新增inner_ts标签,标签值对应各自的来源标识。函数最后两个空参数代表不需要匹配原有标签,直接给所有匹配到的时序新增指定标签。
  • 用or运算符拼接两个处理后的时序集合,因为两个集合的时序带有不同的inner_ts标签,不存在标签集完全一致的情况,所以所有原始时序都会被完整保留,不会发生指标值覆盖或合并。
  • 最终返回的结果中,{inner_ts="ts1"}的时序对应原ts1的所有数据,{inner_ts="ts2"}对应原ts2的所有数据,直接按照你要求的规则筛选即可使用。

原有写法问题说明

  • ts1 + ts2属于算术运算,仅会对标签集完全匹配的时序做值相加,不会新增标签,无法实现来源标识,也会丢失标签不匹配的时序。
  • ts1 or ts2虽然可以保留两个时序的所有数据,但不会新增来源标识标签,无法通过标签区分两个原始时序的内容。
  • (ts1, ts2)不是合法的PromQL语法,无法正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:04