日志与可观测性

PromQL 格式化先看表达式,再查数据源

粘贴查询做本地解析;需要核对标签时切换到样本匹配或 RE2 测试。这里不会执行真实时序查询。

PromQL 格式化

PromQL 表达式

结果

仅在浏览器内处理;不连接 Prometheus,也不上传查询。

选项

输入表达式或载入示例。

图表没有数据时,问题可能出在括号、标签或数据源。PromQL 格式化 先把表达式本身和样本标签分开检查,避免把“语法通过”误读成“线上一定有数据”。

原查询始终保留在左侧。排版仅调整解析器确认的边界处空格,方便你比较改动后再放进告警规则或仪表盘。

为什么用 PromQL 格式化 检查查询

一页核对表达式、样本标签和正则,但三种结果各有明确含义。

逐条看选择器筛中了谁

PromQL 格式化 让纯向量选择器对粘贴的指标样本逐行判断。status=~"5.." 可以筛出 500 与 503,同时清楚标出 200 未命中;这些只是你给的样本。

向量选择器按 status 和 job 标签匹配两条指标样本,并排除一条

按 Prometheus 语义测正则

这里用 RE2 并锚定整个标签值,不拿 JavaScript 正则冒充。PromQL 格式化 会拒绝回溯引用和前后查找等不支持的写法,而不是报出假阳性。

RE2 模式匹配完整的 500 标签值,却排除只含局部匹配的 1500

按这个顺序排查

三个入口处理不同问题,别把选择器样本当成真实查询结果。

01

先解析完整表达式

在 PromQL 模式检查括号、选择器和调用结构。语法错误会指向行列,也不会生成可复制的“猜测修复”稿。

02

再换成纯选择器

样本模式只接受 http_requests_total{job="api"} 这类选择器。每行粘贴一条带标签的指标;尾部数字只作为样本说明,不参与计算。

03

最后核对正则边界

RE2 模式每行测试一个值。模式 5.. 会匹配 500,不会匹配 1500,因为标签正则默认匹配整个值。

本地检查能回答什么

看清 PromQL 查询、标签过滤和正则的不同责任。

语法与结构视图

PromQL 语法检查先解析,再给出保守排版和语法树。错误位置保留在页面,过期或失败结果不可导出。

标签选择器样本

PromQL 标签匹配同时应用 =、!=、=~、!~;缺失标签按空字符串参与比较,每一条未命中都会显示相关标签。

完整字符串 RE2 测试

PromQL 正则使用 RE2;不支持的语法直接报错。独立测试入口可先核对模式,再放回向量选择器。

复制前要知道的边界

这是一组本地文本检查,不是监控数据库的替身。

不执行真实查询
PromQL 格式化 不连接 TSDB 或 Prometheus API,因此不知道指标是否存在,也不返回图表、真实采样值或线上序列数量。
样本只测纯选择器
本地模式不会计算 rate()、sum by、关联或范围查询。完整 PromQL 查询可以解析;要筛样本,请单独输入向量选择器。
正则与导出都守住有效性
正则必须经 RE2 编译并整串匹配;语法有错时不自动补括号,也不开放旧结果下载。

关于 PromQL 格式化 的常见疑问

从 PromQL 语法、正则和分组检索词整理的问题。

PromQL 语法在哪里检查?

粘贴表达式后,PromQL 格式化 会在本地解析并标出错误行列。它只能检查文本,无法判断目标 Prometheus 中是否有同名指标。

PromQL 正则为什么没有匹配部分字符串?

标签正则会匹配完整的标签值。5.. 能匹配 500;要包含 1500,应明确写出两端允许的字符,并确认符合 RE2 语法。

PromQL 的 group by 能在这里算出结果吗?

分组与聚合要读取真实时序数据。页面可以解析带 by 的表达式,但样本模式只计算纯选择器是否匹配标签。

PromQL 的 label_replace 可以用样本模式执行吗?

不能。label_replace 是对时序数据的函数;这里可检查其表达式语法,不能拿单行标签样本运行该函数。

PromQL 的不等于标签如何处理缺失值?

缺失标签按空字符串比较。选择器模式会对每条样本同时应用所有匹配器,并列出未通过的标签。

遇到了未覆盖的 PromQL 边界?

用 PromQL 格式化 再检查一次

PromQL 格式化 把语法、样本过滤和 RE2 正则分开呈现,适合在写入告警或仪表盘前做本地核对。

输入一变,旧结果立即失效;等最新检查完成后再复制或下载。