Prometheus查询基础:PromQL入门指南
什么是PromQL
Prometheus Query Language (PromQL) 是Prometheus监控系统的核心查询语言,它允许用户实时选择和聚合时间序列数据。作为一种功能强大的查询语言,PromQL支持多种数据操作和分析方式,能够满足各种监控场景的需求。
查询类型
Prometheus支持两种基本查询类型:
- 即时查询(Instant Query):在单个时间点评估查询,返回该时刻的瞬时向量
- 范围查询(Range Query):在指定的时间范围内以固定间隔评估查询,返回范围向量
在Prometheus UI中,"Table"标签页用于即时查询,"Graph"标签页用于范围查询。理解这两种查询类型的区别对于有效使用Prometheus至关重要。
数据类型
PromQL表达式可以返回四种基本数据类型:
- 瞬时向量(Instant Vector):包含每个时间序列在特定时间点的单个样本
- 范围向量(Range Vector):包含每个时间序列在一段时间范围内的多个样本
- 标量(Scalar):简单的浮点数值
- 字符串(String):简单的字符串值(当前未使用)
每种数据类型适用于不同的场景,例如图形展示通常需要瞬时向量,而计算变化率则需要范围向量。
字面量
字符串字面量
PromQL支持三种字符串表示方式:
- 单引号:
'this is a string' - 双引号:
"this is a string" - 反引号:
`this is a string`
不同引号方式的转义规则不同,反引号内的字符串不会解析转义字符。
数值和时间字面量
PromQL支持标准的浮点数表示法,包括:
- 十进制:
23,-2.43,3.4e-9 - 十六进制:
0x8f - 特殊值:
Inf,NaN,-Inf
时间持续时间可以使用以下单位后缀:
ms:毫秒s:秒m:分钟h:小时d:天w:周y:年
例如:5m表示5分钟,等同于300秒。
时间序列选择器
瞬时向量选择器
瞬时向量选择器用于选择特定时间点的样本数据。基本语法是:
metric_name{label="value"}
例如:
http_requests_total{job="prometheus", method="GET"}
支持以下标签匹配操作符:
=:精确匹配!=:不等于=~:正则匹配!~:正则不匹配
范围向量选择器
范围向量选择器用于选择一段时间范围内的样本数据,语法是在瞬时向量选择器后添加时间范围:
metric_name{label="value"}[5m]
例如:
http_requests_total{job="prometheus"}[5m]
这会返回过去5分钟内所有http_requests_total指标的样本。
查询修饰符
偏移修饰符(offset)
offset允许查询历史数据:
http_requests_total offset 5m
这会返回5分钟前的http_requests_total值。
时间戳修饰符(@)
@允许指定精确的查询时间点:
http_requests_total @ 1609746000
这会返回Unix时间戳1609746000时的http_requests_total值。
子查询
子查询允许在指定时间范围和分辨率内执行即时查询:
rate(http_requests_total[5m:1m])
这会计算过去5分钟内每分钟的请求率。
注意事项
数据陈旧性(Staleness)
Prometheus会标记不再更新的时间序列为陈旧数据。默认情况下,如果5分钟内没有新样本,时间序列将被标记为陈旧。陈旧数据不会出现在查询结果中。
查询性能
处理大量数据的查询可能会超时或导致服务器过载。建议:
- 先在表格视图中测试查询
- 确保查询结果集合理(数百个时间序列)
- 对大数据集使用预计算规则
总结
PromQL是Prometheus监控系统的强大查询语言,掌握其基础知识对于有效使用Prometheus至关重要。本文介绍了PromQL的基本概念、语法和最佳实践,包括查询类型、数据类型、选择器、修饰符以及性能考虑因素。通过合理使用这些功能,您可以构建高效的监控查询,获取有价值的系统洞察。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00