你的 PromQL 查询现在可以在 Kibana 中运行了

作者:来自 Elastic Miguel SánchezVinay ChandrasekharFelix Barnsteiner

随着 PromQL 现在在 Kibana 中得到原生支持,你可以在 Discover 中编写并执行 PromQL,用于分析指标,也可以在 Dashboards 可视化、告警规则以及任何支持 ES|QL 的地方使用。PromQL 目前以技术预览(Tech Preview)形式提供,适用于常见的指标分析场景。

自 2012 年与 Prometheus 一起最初开发以来,PromQL 在过去十多年中一直是时序监控的基石。虽然 Kibana 已经通过 ES|QL TS 命令全面支持时序分析,但我们很高兴为常见的指标分析用例引入原生 PromQL 支持。对于已经熟悉 PromQL 的团队来说,这一支持意味着几乎零学习成本,并能显著降低直接接入 Elastic 生态的上手难度。

在 Kibana 中运行 PromQL 查询

在 Kibana 的 ES|QL 编辑器中,输入 PROMQL 命令,并在该代码块中编写你的 PromQL。PROMQL 会标记该片段,使 Elasticsearch 在 Kibana 发送的完整 ES|QL 请求中将其解析为 PromQL。

你可以查询的内容

以下是一些入门模式。

原始指标

go 复制代码
`PROMQL container.cpu.usage` AI写代码

所有容器的平均值

scss 复制代码
`PROMQL avg(container.cpu.usage)` AI写代码

对 counter 使用 rate()

scss 复制代码
`PROMQL rate(docker.network.inbound.bytes)` AI写代码

聚合速率(Aggregated rate)

python 复制代码
`PROMQL sum(rate(docker.network.inbound.bytes))` AI写代码

按 label 分组(Group by a label)

python 复制代码
`PROMQL sum by (agent.id) (rate(docker.network.inbound.bytes))` AI写代码

你可能会注意到,上述示例中没有在每个 rate() 中包含 start、end、step 或 lookback window。这些参数都是可选的:时间选择器和 Kibana 的默认设置会帮你处理大部分情况。

你也可以选择在 index= 参数中包含数据流名称。例如:PROMQL index=metrics-docker.cpu-default container.cpu.usage。添加该参数可以帮助缩小查询扫描的数据范围。

当前 PromQL 技术预览版本在覆盖率上已超过 80%,该指标基于对主流 Grafana dashboards 的基准测试。更高级的修饰符和特定函数正在考虑在未来版本中支持。

查找你的数据流和指标名称

如果你已有 PromQL 查询,可以直接在 PROMQL 命令中使用,无需修改。如果你是从头编写查询并需要查找准确的字段名称,可以在 Discover 中运行 TS metrics-* 来查看所有 metrics 数据流。每个 metric 会以小图表形式展示,方便你快速识别哪些是活跃的。将鼠标悬停在某个 metric 上,并点击 "View details" 操作,即可查看字段名称以及它所属的数据流。

更深入的讲解可以参考 Kibana 中使用 Discover 探索指标数据(在 Kibana 中使用 Discover 探索指标数据)。

时间选择器与查询时间处理

Kibana 中的时间选择器会设置查询的时间范围。Dashboard 面板和告警规则的处理方式相同,它们各自使用自己的时间范围,因此你不需要在查询中写 start= 或 end=。

step 是图表中两个连续数据点之间的间隔。step 越小,在相同时间跨度内数据点越多。如果不设置 step= 或 buckets=,默认值为 buckets=100。你可以将 step= 设置为固定宽度,例如 1m,或者使用 buckets= 来指定期望的最大数据点数量。

Discover 和 Dashboards

在 Discover 中,切换到 ES|QL 模式并运行你的 PROMQL 查询,这样你可以以时间序列图的形式查看指标在所选时间范围内的行为。当你想保存该可视化时,可以选择 "Save visualization to dashboard",并将其添加到新的或已有的 dashboard。

或者直接进入 Dashboards:添加一个 panel,选择 ES|QL,然后编写你的 PROMQL 查询。

告警(Alerting)

你可以使用 PromQL 创建告警规则。进入 Alerts,打开 Manage rules,然后创建一个规则。搜索 Elasticsearch query 并选择它,将查询类型设为 ES|QL。

编写你的 PromQL 查询,但需要将指标赋值给一个变量,这样你就可以在 WHERE 子句中用于告警条件:

python 复制代码
`

1.  PROMQL metric_value=(sum by (agent.id) (rate(docker.network.inbound.bytes)))
2.  | WHERE metric_value >= 500

`AI写代码

选择 @timestamp 作为时间字段,然后继续完成规则配置的其余部分。

试试看

  1. 在 Elastic Cloud Serverless 中打开一个 Observability 项目,或者使用 Elastic Stack 9.4。
  2. 编写你的查询:在 Kibana 的 ES|QL 编辑器中,通过 PROMQL 运行你的 PromQL。你也可以进入 Dashboards,添加一个 panel,选择 ES|QL,并在那里编写查询。
  3. 如果你是从头开始编写并需要查找 metric 名称,可以在 Discover 中运行 TS metrics-*(见上文 "查找你的数据流和指标名称")。
  4. 检查结果并根据需要调整查询。

Elasticsearch 和 Kibana 中的 PromQL 支持将持续演进。请关注 Observability Labs feed,以获取后续文章,了解覆盖范围和易用性改进。

原文:www.elastic.co/observabili...

相关推荐
如来神掌十八式4 小时前
Elasticsearch的dsl语句学习
elasticsearch
南棱笑笑生5 小时前
20260420给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时使用ll命令
java·大数据·elasticsearch·rockchip
HUGu RGIN7 小时前
探索Spring Cloud Config:构建高可用的配置中心
大数据·elasticsearch·搜索引擎
晓庆的故事簿7 小时前
【无标题】
elasticsearch·jenkins
生万千欢喜心8 小时前
linux 安装 Elasticsearch Kibana
linux·elasticsearch·jenkins
Java后端的Ai之路8 小时前
SSH配置与GitHub项目拉取操作指南
elasticsearch·ssh·github·公钥
南棱笑笑生13 小时前
20260420给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Buildroot时调通AP6256并实测网速109Mbits/sec
大数据·elasticsearch·搜索引擎·rockchip
Elastic 中国社区官方博客18 小时前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
历程里程碑19 小时前
2. Git版本回退全攻略:轻松掌握代码时光机
大数据·c++·git·elasticsearch·搜索引擎·github·全文检索