使用 PromQL 查询指标
主题
注意
OTLP 指标摄取、PromQL 查询、已出售 AWS 指标的 OTel 补充以及 Query Studio 均为公开预览版,免费提供,并可能会发生变更。
什么是 Prometheus 查询语言(PromQL)?
Prometheus 查询语言(PromQL)是一种功能性查询语言,可让您实时选择、聚合与转换时间序列数据。PromQL 最初是为 Prometheus 设计,现已成为一种流行的指标查询语言。
Amazon CloudWatch 支持使用 PromQL 来查询指标,包括通过 OpenTelemetry Line Protocol(OTLP)摄取的指标和 AWS 补充的已出售指标。您摄取 OTLP 指标时,CloudWatch 会保留遥测数据的完整语义结构,包括资源属性、埋点范围、数据点属性和特定于 AWS 的元数据,并将它们显示为可查询的 PromQL 标签。
借助 PromQL,您可以执行以下操作:
按指标名称和标签匹配器选择时间序列。
跨时间序列应用数学函数和运算符。
跨服务、区域或账户等维度聚合指标。
计算费率、直方图、分位数和移动平均值。
您可以在 在 Query Studio 中运行 PromQL 查询(预览版) 中以交互方式使用 PromQL 查询,也可以创建 CloudWatch 警报。有关更多信息,请参阅PromQL 查询和在警报中使用 PromQL。
注意
CloudWatch 根据 Prometheus 3.0 规范使用 PromQL。这包括对 UTF-8 指标名称和标签名称的支持。
以下概念是在 CloudWatch 中使用 PromQL 的基础。
| 概念 | 说明 |
|---|---|
时间序列 |
由指标名称和一组称为标签的键值对标识的带有时间戳的一系列值。指标名称和标签的每个唯一组合构成一个不同的时间序列。 |
即时向量 |
一组时间序列,包含每个序列的单个样本,所有序列共享相同的时间戳。由诸如 |
范围向量 |
一组时间序列,包含每个序列随时间变化的一系列数据点。通过在方括号中附加持续时间选择器来创建,例如 |
标签 |
附加到时间序列的键值对。在 OTLP 摄取的指标中,标签源自资源属性、埋点范围、数据点属性和特定于 AWS 的元数据。 |
标签匹配器 |
花括号中的表达式,用于按标签值筛选时间序列。支持精确匹配 ( |
聚合操作符 |
一种将多个时间序列组合成更少序列的函数。常见的操作符包括 |
PromQL 限额和限制
下表列出了 PromQL 的限额和限制:
| 限制 | 值 | 附加信息 | 错误代码 |
|---|---|---|---|
每个账户查询请求的最大 TPS |
300 |
每个账户允许的每秒查询请求(/query、/query_range)的最大数量。 |
422 |
每个账户的发现请求的最大 TPS |
10 |
每个账户允许的每秒发现请求(/series、/label、/label_values)的最大数量。 |
422 |
每个账户的最大并发查询请求数量 |
30 |
一个账户可以同时主动执行的查询(/query、/query_range)的最大数量。 |
429 |
每个账户的最大并发发现请求数量 |
30 |
一个账户可以同时主动执行的发现请求(/series、/label_values)的最大数量。 |
429 |
每个查询请求返回的最大序列数量 |
500 |
查询请求(/query、/query_range)可返回的唯一时间序列的最大数量。 |
200 – 已截断响应 |
每个发现请求返回的最大标签数量 |
10000 |
发现请求(/series、/labels、/label_values)可返回的唯一标签的最大数量。 |
200 – 已截断响应 |
每个请求的最大范围 |
7 days |
查询可跨越的最大时间范围,包括范围参数和回顾期。 |
422 |
每 24 小时时段扫描的最大序列数量 |
100000 |
每 24 小时时段查询执行可扫描的唯一时间序列的最大数量。 |
422 |
每 24 小时时段扫描的最大样本数量 |
3 亿 |
每 24 小时时段查询执行可扫描的最大样本数量。 |
422 |
每 24 小时时段处理的最大样本数量 |
30 亿 |
每 24 小时时段查询执行可处理的最大样本数量。 |
422 |
Execution timeout (执行超时) |
20 秒 |
引擎可花费在评估查询上的最长时间,不包括排队和从存储中提取数据所花费的时间。 |
422 |
支持的 AWS 区域
下表列出了提供 OTLP 指标摄取、PromQL 查询和 Query Studio 的 AWS 区域。
| 区域名称 | 区域代码 | IVS 指标摄取 | PromQL 查询 | Query Studio |
|---|---|---|---|---|
美国东部(弗吉尼亚州北部) |
us-east-1 |
✓ |
✓ |
✓ |
美国西部(俄勒冈州) |
us-west-2 |
✓ |
✓ |
✓ |
欧洲地区(爱尔兰) |
eu-west-1 |
✓ |
✓ |
✓ |
亚太地区(新加坡) |
ap-southeast-1 |
✓ |
✓ |
✓ |
亚太地区(悉尼) |
ap-southeast-2 |
✓ |
✓ |
✓ |
PromQL的 IAM 权限
要执行 PromQL 查询,您需要同时具有 cloudwatch:ListMetrics 和 cloudwatch:GetMetricData 权限。下表列出了新的 PromQL API 操作及其所需 IAM 操作:
| API 操作 | 所需的操作 |
|---|---|
ExecuteMetricQueryPost |
|
ExecuteMetricQueryGet |
|
ExecuteMetricRangeQuery |
|
ExecuteMetricRangeQueryGet |
|
ExecuteMetricSeriesPost |
|
ExecuteMetricSeriesGet |
|
ExecuteMetricLabelsPost |
|
ExecuteMetricLabelsGet |
|
ExecuteMetricLabelValuesGet |
|