了解PromQL聚合的结构吗?

时间:2018-07-23 04:22:12

标签: prometheus

我是Prometheus的新手,我试图了解PromQL查询的语法规则。从文档中,它指出<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)],考虑到它们显示的示例,这很有意义。

但是,在“健壮的感知”博客中,他显示了诸如sum without (cpu)(rate(node_cpu[1m]))之类的查询,并且内部存在一个查询,用于以健康指标count by (job) (up)扫描所有作业

我要在这里理解的似乎是将参数或向量表达式传递到聚合器中是可选的-如果是这样,则省略向量表达式时会查询什么?

看来count(up) by (job)count by (job) (up)相似并且可能相等吗?这种格式是Go编程语言的产物,还是只是查询语言没有记载的灵活性?

1 个答案:

答案 0 :(得分:0)

  

我要在这里理解的似乎是将参数或向量表达式传递到聚合器中是可选的-如果是这样,则省略向量表达式时会查询什么?

如果您不传递显式的by / without子句,则它与by()相同。

  

这种格式是Go编程语言的产物,还是只是查询语言没有记载的灵活性?

两者均受支持,并且关于使用哪种方法存在争议。我建议您将by by / without放在前面,因为这样可以轻松地读取非平凡的表达式。