根据文档这里,有两个API端点用于查询,一个用于范围查询(GET /api/v1/query_ range ),一个用于即时查询(GET /api/v1/query)。
同时,我一直在将这样的查询发布到即时API端点:
metric_name{db='cpu', category='db'}[5m]作为上述查询返回范围向量(矩阵结果类型)的值具有指定的持续时间。我假设由于查询需要一个范围向量结果,这就是返回的内容,尽管API端点是用于即时查询的。开始时间比执行时间早5分钟,可以在API的“time”URL param中指定,API实际上也是结束时间。不太清楚步骤是什么,我猜它正在收集所有可用的原始数据点?
正在发生的事情的分解是正确的吗?
发布于 2021-02-23 10:42:30
如果查询以方括号结尾,则/api/v1/query每系列返回多个数据点。有两种情况存在:
foo{bar="baz"}[5m]。在本例中,所选时间序列的原始样本将在时间范围(time-5m ... time]上返回,其中time是传递给/api/v1/query的查询arg。count(foo{bar="baz"})[5m:]。在这种情况下,计算出的数据点将在具有默认step值的时间范围step上返回。在方括号中的冒号之后,可以在查询中显式传递step。例如,count(m)[5m:10s]将使用step=10s返回计算出的数据点。这类查询在普罗米修斯生态系统中被称为子查询。请参阅更多有关如何使用这篇文章中的外部工具分析原始Prometheus数据的详细信息。
https://stackoverflow.com/questions/66309977
复制相似问题