Prometheus 中的表达式类型包括以下几种:
- Instant Vector(瞬时向量):表示在某个时间点上所有样本点的值。
例如,查询 up{job="node_exporter"} == 1
可以返回所有 job
标签为 node_exporter
的指标是否处于健康状态。
- Range Vector(区间向量):表示在一段时间范围内,每个样本点的值都是一个时间序列。
例如,查询 rate(http_requests_total{job="prometheus"}[5m])
可以返回过去 5 分钟内 Prometheus 实例接收到的 HTTP 请求速率。
- Scalar(标量):表示一个固定的数字或常量值。
例如,查询 sum(rate(container_cpu_usage_seconds_total{image!="",name=~"^k8s_.*"}[5m])) by (pod)
可以返回过去 5 分钟内所有 Kubernetes Pod 中 CPU 使用率的总和。
- String(字符串):表示字符串常量或标签名称。
例如,查询 http_requests_total{handler="/api/v1/query"}
可以返回处理器路径为 /api/v1/query
的 HTTP 请求总数。