在 Kibana Discover 中输入 TS metrics-*,即可获得数据中每个指标的图表,且已使用正确的聚合和单位。无需字段名称,无需逐个指标设置。
METRICS_INFO 是一个 ES|QL 命令,它报告查询范围内存在哪些指标和时间序列,每行一个。Discover 在后台将其附加到你的查询中,根据该单次响应构建每个指标图表,并可按数据暴露的任何维度拆分这些图表。仪表取平均值,计数器使用 SUM(RATE()),直方图取百分位数。你无需知道某个指标需要哪种聚合。
有关设计及内部实现,包括逐序列的兄弟命令 TS_INFO,请参阅 METRICS_INFO 和 TS_INFO 深度解析。
METRICS_INFO 返回什么METRICS_INFO 检索关于你的时间序列数据流中可用指标的信息,以及适用的维度和其他元数据,所有这些都限定在当前 TS 查询范围内。
TS metrics-* | METRICS_INFO你得到一行,描述查询范围内的每个指标:
metric_name | data_stream | unit | metric_type | field_type | dimension_fields |
|---|---|---|---|---|---|
system.cpu.user.pct | metrics-system.cpu-default | percent | gauge | double | [host.name, cloud.region] |
activemq.broker.connections.count | metrics-activemq.broker-default | null | counter | long | [activemq.broker.mbean,agent.id] |
有关语法,请参阅 METRICS_INFO 命令。有关设计及内部实现,包括逐序列的兄弟命令 TS_INFO,请参阅 METRICS_INFO 和 TS_INFO 深度解析。
Discover 为探索指标数据提供了专门的体验。当检测到 TS 查询时,它会自动为数据中可用的指标构建一个图表清单。
你的原始查询保持不变,照常运行。在后台,Discover 通过追加 | METRICS_INFO 从中派生第二个请求。
例如,如果你运行:
TS metrics-*| WHERE `cloud.provider` == "gcp" AND `cloud.region` == "us-central1"Discover 在后台派生第二个请求:
TS metrics-*| WHERE `cloud.provider` == "gcp" AND `cloud.region` == "us-central1"| METRICS_INFOMETRICS_INFO 响应被解析一次,成为 Discover 中专用指标体验的来源。从该清单中,Discover 可以生成图表,并提供搜索和过滤指标、按维度拆分指标、查看每个图表背后的 ES|QL 查询以及将指标添加到仪表板等功能。

METRICS_INFO 列控制什么Discover 使用一个 METRICS_INFO 响应来生成清单中的所有图表。该响应告诉 Discover 要渲染哪些指标、在哪里找到其数据、如何聚合其值以及如何显示它们。
响应中的每个列都扮演特定角色:
列名 | 在清单中控制的内容 |
|---|---|
metric_name | 渲染哪些指标面板 |
data_stream | 每个面板从何处获取数据 |
metric_type | 每个指标如何聚合 |
field_type | 字段类型,例如 double、long |
unit | 如何格式化值 |
dimension_fields | 哪些维度可用于过滤和拆分图表 |
METRICS_INFO 响应中的每个条目代表 Discover 可以可视化的一个指标。
Discover 遍历解析后的响应,为每个指标创建一个图表面板。因此,清单直接反映了响应的内容。
每个图表独立查询其数据,即使所有指标元数据来自同一个 METRICS_INFO 请求。
data_stream 值决定了用于构建图表 ES|QL 查询的数据源。
例如:
TS metrics-system.cpu-default| STATS AVG(system.cpu.user.pct) BY TBUCKET(100)对于跨多个项目的搜索,独立查询每个数据流尤为重要。
当同一个 metric_name 出现在多个 data_stream 值时,Discover 会为每个流创建一个单独的面板。例如,在具有跨项目搜索的无服务器环境中,每个面板查询其自己的后端数据,并标识其代表的流。
此指标存在于多个数据流中。此图表仅显示来自
metrics-system.cpu-default的数据。
Discover 有意区分面板。跨流合并结果可能掩盖它们之间的差异,而在跨项目或环境调查指标时,这些差异可能很重要。

metric_type 告诉 Lens 图表 如何聚合指标,而 field_type 描述字段。
当前支持三种指标类型:
metric_type | 图表计算的内容 | 示例 |
|---|---|---|
gauge | AVG(field),表示某个时间点的水平 | CPU 使用率 |
counter | SUM(RATE(field)),表示变化率 | 每秒发送的字节数 |
histogram | PERCENTILE(field, p),总结分布 | p99 延迟 |
unit 列控制 Y 轴上的值格式化方式。每个面板背后的图表库 Lens 应用格式化。
例如:
bytes:1,024 显示为 1 KB。percent:0.75 显示为 75%。dimension_fields 列标识与每个指标关联的维度,例如 host.name、cloud.region 或 service.name。
Discover 合并 METRICS_INFO 响应中的这些值,以填充清单工具栏中的维度下拉菜单。
选择维度会影响清单两个方面:
METRICS_INFO 并添加条件,例如 WHERE MV_CONTAINS(dimension_fields, "host.name"),移除不支持所选维度的指标。BY 子句中,为每个维度值生成一个序列。例如:
TS metrics-system.cpu-default| STATS AVG(system.cpu.user.pct) BY TBUCKET(100), host.name结果是每个 host.name 都有一个单独序列的图表,同时清单确保只包含支持该维度的指标。
当你查询不同的数据流时,之前选择的、新流不暴露的任何维度将自动清除,因此每个图表的查询永远不会引用其中不存在的字段。

可视化你的指标无需任何配置、无需仪表板设置,也无需编写逐个指标的查询。一条 TS 查询就够了。
如果从头开始,你可以使用 Prometheus Remote Write 将 Prometheus 指标发送到 Elasticsearch。任何收集系统或应用程序指标的 Elastic 集成 都以相同方式工作。一旦数据进入基于 TSDB 的 metrics-* 数据流,Discover 无需任何额外设置即可识别。
TS metrics-* 并运行查询。Discover 自动构建清单。从那里,你可以:
host.name、cloud.region 或数据暴露的任何维度拆分每个图表。你的指标立即可供探索,因此运行查询后即可开始调查数据。
请参阅文档,了解如何使用 Discover 探索指标数据(Kibana 中的 Discover 指标探索)。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。