跳至主要內容

在 HTTP API 中使用 PromQL

鸟书大约 2 分钟monitorprometheuspromqlhttpapi

在 HTTP API 中使用 PromQL

Prometheus 当前稳定的 HTTP API 可以通过 /api/v1 访问。

Prometheus 提供了一套 HTTP API,其中包括查询(Query)和查询范围(Query Range)API,它们允许你使用 PromQL(Prometheus Query Language)从 Prometheus Server 中检索指标数据。这些 API 为外部系统、监控仪表板(如 Grafana)和脚本提供了一种标准化的方式来访问 Prometheus 存储的时间序列数据。

查询(Query)API

查询 API (/api/v1/query) 用于获取 Prometheus Server 当前的即时快照数据。这意味着它返回的是最近接收到的数据点。这个 API 接受一个 PromQL 表达式作为查询参数,并返回与该表达式匹配的最新数据点。

请求格式如下:

GET /api/v1/query?query=<promql_expression>

其中 <promql_expression> 是你想要执行的 PromQL 查询语句。

查询范围(Query Range)API

查询范围 API (/api/v1/query_range) 允许你检索一段时间内的历史数据。这通常用于绘制图表或进行数据分析,因为你可以指定一个时间范围和步长,从而获取一系列数据点。

请求格式如下:

GET /api/v1/query_range?query=<promql_expression>&start=<start_time>&end=<end_time>&step=<step>

其中:

  • <promql_expression> 是 PromQL 查询语句。
  • <start_time> 是查询的开始时间。
  • <end_time> 是查询的结束时间。
  • <step> 是查询结果中数据点之间的间隔时间。

PromQL 是一种强大的表达式语言,允许你对 Prometheus 的时间序列数据进行各种操作,如过滤、聚合、计算衍生指标等。通过使用 HTTP API 和 PromQL,你可以灵活地从 Prometheus Server 中检索数据,以满足不同的监控和分析需求。

这些 API 的响应格式通常是 JSON,其中包含一个 status 字段,以及 data 字段,后者包含了查询结果。如果查询成功,status 字段的值为 success,而 data 字段则包含实际的查询结果。如果发生错误,status 字段的值将为 error,并且 data 字段会包含错误详情。

Prometheus 的 HTTP API 是其生态系统的重要组成部分,它使得 Prometheus 成为一个高度可集成的监控解决方案,能够轻松地与其他工具和服务协同工作。