夜莺监控(Nightingale)上线内置指标功能

夜莺监控(Nightingale)上线内置指标功能,把常用 PromQL 以中文指标视图沉淀下来,降低普通用户查询 Prometheus 指标的门槛,并支持通过过滤条件复用到具体业务或机器场景。

作者 巴辉特

核心要点

  • 夜莺监控(Nightingale)的内置指标功能,核心是把常用 PromQL 沉淀为可点击的中文指标视图。
  • 这个功能解决的是 PromQL 门槛问题:普通用户不必手写查询语句,也能快速查看常用监控指标。
  • 内置指标支持名称、单位、中文说明和表达式,适合把资深工程师的查询经验沉淀到平台里。
  • 指标过滤条件可以自动追加到 PromQL 中,让同一批内置指标复用到不同机器、服务或业务范围。
  • 升级到支持版本后,如果数据库账号没有建表权限,需要手工创建 builtin_metricsmetric_filter 两张表。

Prometheus 生态里,如果要查询指标数据,通常需要编写 PromQL。对熟悉 Prometheus 的工程师来说,这不是问题;但对普通研发、业务运维或刚接触监控的人来说,PromQL 门槛并不低。

解决这个问题通常有两种思路:

  1. 通过 AI 做自然语言翻译,用户用大白话描述诉求,由 AI 生成 PromQL。
  2. 在平台里内置常用 PromQL,覆盖高频场景,让用户开箱即用。

夜莺监控(Nightingale)最近上线的内置指标功能,采用的是第二种思路:把常用查询表达式提前沉淀在平台中,配上中文名称和说明,让普通用户点击指标名称就能出图。

版本说明

内置指标功能需要 v7.0.0.beta3 以上版本支持。

虽然版本号里带 beta,但原文说明中提到,既有功能实际是稳定的,当前还在持续添加新功能。按照夜莺发版节奏,正式版本固定每年七八月份发布,所以当前阶段的 beta 版本也可以用于生产,用户可以根据自身发布流程评估升级。

指标视图长下面这样:

夜莺指标视图

这个页面的核心是:把 PromQL 提前内置,配上中文名称;难理解的指标再补充详细解释;同时按类别组织。最终用户点击指标的中文名称,就可以直接查看对应图表。

点击某个指标后,侧拉板中会出图:

夜莺指标视图-查询

这样一来,用户不需要理解完整 PromQL,只需要知道自己要查什么,就能完成常见指标查询。

内置指标解决什么问题

内置指标不是为了替代 PromQL,而是把高频、稳定、可复用的 PromQL 产品化。

在企业内部,常见问题是:

  • 少数资深工程师会写 PromQL,多数普通用户不会写。
  • 同一个指标查询在不同团队反复被问、反复被写。
  • 查询语句散落在文档、聊天记录、仪表盘和告警规则里,很难沉淀。
  • 指标名称、单位、含义解释不统一,新人学习成本高。

夜莺的内置指标功能把这些内容放到统一的指标视图里。每条指标不仅有 PromQL 表达式,还可以包含中文名称、单位、说明和分类。这样,平台里沉淀的不只是查询语句,而是一套可复用的监控知识。

指标过滤:让同一条 PromQL 复用到具体范围

默认提供的 PromQL 通常查询整个时序库,没有过滤条件。但在实际使用中,某个业务研发人员往往只想看自己负责服务或机器的指标。

这种场景可以提前配置过滤条件。选中某个过滤条件之后再点击指标,夜莺会自动在 PromQL 中追加过滤条件。下面这个例子中,配置了一个过滤条件:

夜莺指标视图-过滤

这里使用 ident 标签做过滤,值为 categraf01。当然,你也可以根据自己的指标标签设计,配置其他标签过滤条件。

再次点击指标,效果如下:

夜莺指标视图-过滤查询效果

可以看到,PromQL 已经被自动修改,增加了 ident="categraf01" 过滤条件。

这个设计的价值在于:平台可以维护一套通用指标定义,用户通过过滤条件把它应用到具体机器、服务或业务范围中,减少重复维护。

适合沉淀哪些指标

内置指标适合沉淀这些类型的查询:

指标类型 示例场景 沉淀价值
主机基础指标 CPU、内存、磁盘、网络、IO 新人最常用,查询方式高度重复
中间件指标 MySQL、Redis、Kafka、Nginx 等 指标名称多,口径解释很重要
业务通用指标 请求量、错误率、延迟 适合团队统一查询口径
故障排查指标 负载、连接数、队列堆积 排障时需要快速定位

不建议把临时排查、一次性实验或强依赖特定服务私有标签的表达式全部塞进内置指标。内置指标应该优先服务高频、稳定、可复用的查询。

v7.0.0.beta3 其他改动

v7.0.0.beta3 版本的其他 changelog 如下:

  • feat: 单点登录配置,敏感信息支持使用加密变量
  • refactor: Prometheus 源的即时查询支持使用内置指标查询数据,易用性提升
  • refactor: 一些 TextArea 组件打开 autoSize,高度会自动随着内容撑开
  • refactor: 仪表盘只会在点击全屏后展示关闭说明提示
  • fix: 修复订阅规则多选告警规则时会横向溢出问题
  • fix: 修复 VictoriaMetrics 源的仪表盘变量查询时间范围大于 1 天时可能存在缓存数据的问题
  • fix: 修复切换账号后本地缓存的 gid 不合法导致查询错误的问题

升级注意事项

升级方式比较直接:替换二进制以及 integrations 目录,重启即可。

夜莺会自动创建表结构。如果夜莺所用的数据库连接账号不具备建表权限,就需要手工建表。相关 SQL 如下:

CREATE TABLE `builtin_metrics` (
    `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
    `collector` varchar(191) NOT NULL COMMENT 'type of collector',
    `typ` varchar(191) NOT NULL COMMENT 'type of metric',
    `name` varchar(191) NOT NULL COMMENT 'name of metric',
    `unit` varchar(191) NOT NULL COMMENT 'unit of metric',
    `lang` varchar(191) NOT NULL DEFAULT '' COMMENT 'language of metric',
    `note` varchar(4096) NOT NULL COMMENT 'description of metric in Chinese',
    `expression` varchar(4096) NOT NULL COMMENT 'expression of metric',
    `created_at` bigint NOT NULL DEFAULT 0 COMMENT 'create time',
    `created_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
    `updated_at` bigint NOT NULL DEFAULT 0 COMMENT 'update time',
    `updated_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
    PRIMARY KEY (`id`),
    UNIQUE KEY `idx_collector_typ_name` (`lang`,`collector`, `typ`, `name`),
    INDEX `idx_collector` (`collector`),
    INDEX `idx_typ` (`typ`),
    INDEX `idx_name` (`name`),
    INDEX `idx_lang` (`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `metric_filter` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
  `name` varchar(191) NOT NULL COMMENT 'name of metric filter',
  `configs` varchar(4096) NOT NULL COMMENT 'configuration of metric filter',
  `groups_perm` text,
  `create_at` bigint NOT NULL DEFAULT '0' COMMENT 'create time',
  `create_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
  `update_at` bigint NOT NULL DEFAULT '0' COMMENT 'update time',
  `update_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

升级前建议先确认数据库账号是否有建表权限。如果没有,就先手工执行建表语句,再替换二进制和 integrations 目录。

FAQ

内置指标是不是只适合不会写 PromQL 的用户?

不是。内置指标对普通用户的价值是降低门槛,对资深用户的价值是沉淀经验。资深工程师可以把常用 PromQL、单位和解释整理成统一指标视图,让团队复用。

指标过滤条件会修改原始内置指标吗?

不会。过滤条件是在查询时自动追加到 PromQL 中,用于限定查询范围。内置指标本身仍然可以保持通用。

内置指标和仪表盘是什么关系?

内置指标更像可复用的查询知识库,仪表盘是固定布局的可视化页面。内置指标可以帮助用户在即时查询场景下快速出图,也可以作为构建仪表盘和告警规则的参考。

小结

夜莺监控上线内置指标功能,本质上是在 Prometheus 生态之上做知识沉淀:把常用 PromQL 转成中文可读、可点击、可过滤的指标视图。

对于平台团队来说,这能减少重复答疑,统一指标口径;对于普通用户来说,这能降低 PromQL 学习门槛;对于企业内部推广监控平台来说,这能让更多团队真正用起来。

如果你正在使用夜莺监控,并且团队里经常有人问“这个指标怎么查”,内置指标功能值得升级尝试。

联系我们交流

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云