在 HTTP API 中使用 PromQL
在 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 成为一个高度可集成的监控解决方案,能够轻松地与其他工具和服务协同工作。