如何在Prometheus中的一个调用中执行多个查询

roi*_*oie 7 prometheus

我在kubernetes集群中运行prometheus。

我需要每分钟向Prometheus发送查询,以从许多容器中收集许多指标的信息。匹配查询也太多,因此我必须将它们组合起来。

我知道如何向Prometheus询问多个容器上的一个度量标准信息:my_metric{container_name=~"frontend|backend|db"},但是我还没有找到在一个查询中向Prometheus询问多个度量标准信息的方法。

我在寻找SQL查询中的“工会”。

roi*_*oie 7

我在这里找到此解决方案:{__name__=~"metricA|metricB|metricC",container_name=~"frontend|backend|db"}

  • 链接的文章称,其带有通配符的示例正则表达式“是一种反模式,因为您应该先验地知道您的指标名称”。我认为这个问题和答案的精神是你_do_知道你想要的指标的确切名称(也就是说,你没有在正则表达式中使用任何通配符),你只是一次想要多个。对我来说,这个答案似乎不符合他们担心的反模式。 (4认同)
  • 您链接到的文章特别指出,在“__name__”上使用正则表达式是一种反模式。 (2认同)
  • https://prometheus.io/docs/prometheus/latest/querying/basics/ 表示对这种构造没有任何疑虑。 (2认同)

bri*_*zil 6

您可以使用该or运算符,但这并不通用,因为它会忽略指标名称。我建议对 API 进行多次查询。