夜莺监控 指标视图 详解

夜莺监控指标视图详解:通过内置 PromQL、中文名称、分类、采集器筛选和过滤条件,让普通用户无需手写 PromQL 也能查询常用监控指标。

作者 巴辉特

在 Prometheus 生态里查询数据,通常需要编写 PromQL。对普通研发或业务用户来说,PromQL 门槛偏高。

解决这个问题通常有两种思路:一种是用 AI 把自然语言诉求翻译成 PromQL;另一种是在平台里内置常用 PromQL,让用户点击即可查询。夜莺指标视图选择的是第二个方案:预置一批 PromQL,并允许用户自行增删。

指标视图的核心价值是把“会写 PromQL 的专家经验”沉淀为“普通用户可点击查询的指标入口”。

本文重点说明:

  • 指标视图有哪些入口。
  • 内置指标如何查询。
  • 过滤条件如何自动注入 PromQL。
  • 如何新增、导出和贡献内置指标。

操作入口

内置 PromQL 有两个查看入口:

  1. 在即时查询页面,直接点击搜索内置指标。
  2. 直接进入指标视图页面。

下面是即时查询页面样例:

内置指标

点击内置查询后,下面会出现一个下拉浮层,展示指标列表。你可以通过上方搜索条件筛选,例如图中选择的是 Linux 类别和 Categraf 采集器。

鼠标 hover 到某个指标上,右侧会展示指标信息,包括类型、采集器、表达式、单位、描述等。

为什么要设计采集器选项?因为夜莺可以接入多个时序库,不同时序库中的采集数据可能不同:有些来自 Categraf,有些来自 Exporter,有些来自自研 agent。采集器字段主要用于搜索过滤,避免用户选到不适用当前数据源的指标。

点击某个指标,就会自动填充到 promql 输入框里并触发查询,效果如下:

内置指标查询

另一个操作入口是在指标视图页面。

指标视图

指标视图页面如下:

夜莺指标视图

它的核心逻辑是:把 PromQL 提前内置,配上中文名称,难理解的指标再补充详细解释,同时按类别组织。最终用户点击指标中文名称,就可以直接出图。

点击某个指标,侧拉板里出图,如下:

夜莺指标视图-查询

这样一来,用户不需要懂 PromQL,只需要知道自己要查什么,就可以直接查到结果。

默认提供的 PromQL 都是查询整个时序库,没有过滤条件。对于某个业务的研发人员,可能只想看自己负责服务的指标,此时可以提前配置过滤条件。选中某个过滤条件之后再点击指标,夜莺会自动在 PromQL 中增加过滤条件。

下面的例子中,配置了一个过滤条件:

夜莺指标视图-过滤

这里我使用 ident 标签做过滤,值为 categraf01,你完全可以自定义其他标签的过滤条件。再次点击指标,效果如下:

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

可以看到 promql 已经被自动修改了,添加上了 ident="categraf01" 的过滤条件。

指标视图适合什么场景

指标视图特别适合下面几类场景:

场景 适合原因
基础设施指标查询 Linux、MySQL、Redis 等常用组件指标可以沉淀为固定 PromQL
专业团队服务普通研发 SRE 或平台团队维护指标,研发人员点击查询即可
统一指标口径 用同一批内置 PromQL 避免不同团队各写各的表达式
培训和交接 新同事可以通过中文指标名称快速理解常用监控项

内置的指标如何添加

夜莺内置指标如果不够用,可以自行添加,但需要具备指标视图下的相关写权限。

如果要添加的是自己公司特定指标,在指标视图里添加即可。如果要补充的是通用组件指标,比如 MySQL、Redis 的指标,建议去模板中心添加。比如要添加 Redis 指标:

模板中心添加指标

因为在这里添加的时候,可以省去选择组件字段。

假设你添加了一些指标,觉得整理得很好,想和社区分享,可以选中相关指标,然后使用右上角的导出指标操作,导出一段 JSON 内容。然后把这段内容提交到夜莺 GitHub 即可。

夜莺代码目录中有个 integrations 目录:

https://github.com/ccfos/nightingale/tree/main/integrations

里面分门别类放置了各类组件的仪表盘、告警规则、内置指标。其中内置指标位于各个组件目录下的 metrics 目录,你可以参考 Linux 的 metrics 目录里的内容

一般每个采集器分别有一个 JSON 文件。JSON 文件整体是一个数组,数组里的每个元素就是一个内置指标定义。

FAQ

Q1:指标视图是不是替代即时查询?

A:不是。即时查询适合调试 PromQL 和临时分析;指标视图适合把常用 PromQL 沉淀成可复用入口。

Q2:内置指标能覆盖所有监控指标吗?

A:不能。监控指标非常多,夜莺内置 PromQL 更像样例和常用入口。团队可以根据自己的数据源和组件自行增删。

Q3:为什么点击指标后要自动加过滤条件?

A:默认 PromQL 查询整个时序库。业务研发通常只关心自己负责的服务或机器,过滤条件可以把查询范围缩小到目标对象。

Q4:公司内部指标和社区通用指标应该分别放哪里?

A:公司内部特定指标可以在指标视图里维护;MySQL、Redis 等通用组件指标建议在模板中心添加,并可导出后贡献给社区。

欢迎大家提交 PR,这个事大家多多参与,很快就可以有一个丰富的内置指标库了。

联系我们交流

延伸路径

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

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

标签 夜莺监控
快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云