首页/云/可观测性速查/HTTP API:query 与 query_range 实战
Prometheus 与采集64 条

HTTP API:query 与 query_range 实战

Prometheus 提供 HTTP 查询接口:/api/v1/query 查瞬时值、/api/v1/query_range 查区间序列、/api/v1/series 列举序列;脚本化取数与系统集成很常用。

可观测性速查云更新于 2026-10-12

curl 示例

curl 示例
# 瞬时查询(用 --data-urlencode 规避转义问题)
curl -G 'http://127.0.0.1:9090/api/v1/query' --data-urlencode 'query=up{job="api"}'

# 区间查询(注意 step 参数)
curl -G 'http://127.0.0.1:9090/api/v1/query_range' \
  --data-urlencode 'query=rate(http_requests_total[5m])' \
  --data-urlencode 'start=1755000000' --data-urlencode 'end=1755003600' --data-urlencode 'step=15'
返回结构里的 data.resultType 决定解析方式:vector、matrix、scalar、string 形态不同。

易错点

  • query_range 的 step 太小会因返回点数上限被截断,长区间查询先把 step 放大
  • 查询参数未 URL 编码时大括号与引号会破坏请求,统一用 --data-urlencode

数据来源与参考

  • Prometheus 文档 · HTTP API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌