如何在 Prometheus 中跨作业汇总指标

How to sum metrics in Prometheus across jobs

我在 promethus.yml

中配置了两个作业
- job_name: serviceA
  scrape_interval: 60s
  metrics_path: /
  static_configs:
  - targets:
    - serviceA:8080
- job_name: serviceB
  scrape_interval: 60s
  metrics_path: /
  static_configs:
  - targets:
    - serviceB:8080

这两个服务在 serviceA 中的每个 metric1 中都有一个计数器指标;和服务 B 中的 metric2

在 Grafana 和 Prometheus 站点中,表达式 metric1 + metric2 没有 return 任何内容。我尝试了乘法、除法等,但也没有结果。与 gauge metric 的结果相同。

我做错了什么?

指标必须具有相同的标签和值。

如果“metric1”有标签“labelA”和“labelB”,而“metric2”有标签“labelA”和“labelC”,“metric1 + metric2”将return什么都没有。

如果“metric1”的标签“labelA”具有“A”和“B”值,并且“metric2”也具有标签“labelA”但具有“C”和“D”值,则“metric1 + metric2” return什么都不会。

您可以尝试使用函数聚合常用的标签和值,例如:

sum by (label1) (metric1) + sum by (label1) (metric1)