promQL API 端点
promQL API end points
根据文档 here,有 2 个 API 查询端点,一个用于范围查询 (GET /api/v1/query_range) 和一个用于即时查询 (GET /api/v1/query)
同时,我也在即时API端点发过这样的查询:
metric_name{db='cpu', category='db'}[5m]
上面查询的 return 个范围向量(矩阵结果类型)指定了持续时间。我假设由于查询需要一个范围向量结果,这就是 returned 尽管 API 端点用于即时查询。开始时间比执行时间早 5 分钟,可以在 'time' URL 参数中指定到 API,这实际上也是结束时间。不太清楚步骤是什么,我猜它正在收集所有可用的原始数据点?
对正在发生的事情的细分是否正确?
如果查询以方括号结尾,则每个系列 /api/v1/query
returns 多个数据点。存在两种情况:
- 如果查询不包含函数或运算符,只包含 time series selector。例如,
foo{bar="baz"}[5m]
。在这种情况下,所选时间序列的原始样本在时间范围 (time-5m ... time]
上 returned,其中 time
是传递给 /api/v1/query
. 的查询参数
- 如果查询包含函数或运算符。例如,
count(foo{bar="baz"})[5m:]
。在这种情况下,计算的数据点在时间范围 (time-5m ... time]
上 return 编辑,默认值为 step
。 step
可以在查询中在方括号中的冒号后显式传递。例如,count(m)[5m:10s]
会用 step=10s
return 计算数据点。此类查询在 Prometheus 生态系统中称为 subqueries。
在 this article 中查看有关如何使用外部工具分析原始 Prometheus 数据的更多详细信息。
根据文档 here,有 2 个 API 查询端点,一个用于范围查询 (GET /api/v1/query_range) 和一个用于即时查询 (GET /api/v1/query)
同时,我也在即时API端点发过这样的查询:
metric_name{db='cpu', category='db'}[5m]
上面查询的 return 个范围向量(矩阵结果类型)指定了持续时间。我假设由于查询需要一个范围向量结果,这就是 returned 尽管 API 端点用于即时查询。开始时间比执行时间早 5 分钟,可以在 'time' URL 参数中指定到 API,这实际上也是结束时间。不太清楚步骤是什么,我猜它正在收集所有可用的原始数据点?
对正在发生的事情的细分是否正确?
如果查询以方括号结尾,则每个系列 /api/v1/query
returns 多个数据点。存在两种情况:
- 如果查询不包含函数或运算符,只包含 time series selector。例如,
foo{bar="baz"}[5m]
。在这种情况下,所选时间序列的原始样本在时间范围(time-5m ... time]
上 returned,其中time
是传递给/api/v1/query
. 的查询参数
- 如果查询包含函数或运算符。例如,
count(foo{bar="baz"})[5m:]
。在这种情况下,计算的数据点在时间范围(time-5m ... time]
上 return 编辑,默认值为step
。step
可以在查询中在方括号中的冒号后显式传递。例如,count(m)[5m:10s]
会用step=10s
return 计算数据点。此类查询在 Prometheus 生态系统中称为 subqueries。
在 this article 中查看有关如何使用外部工具分析原始 Prometheus 数据的更多详细信息。