让技术团队用上有设计感的监控工具,夜莺新版做到了

夜莺开发团队 2022年8月1日

夜莺监控开源两年半,正式成为“5K开源项目”,在 github 上获得了 5K 个 Star,有 70 多位 Contributor,数千个终端用户在生产环境中使用。其中每 5 个 Star,产生 1 次 Fork,每 10 次 Fork,产生 1 位 Contributor,“参与感”是夜莺开源社区的最美风景线。

夜莺-5K开源项目

众所周知,夜莺监控一直以来,以专业、易用的告警管理能力,打动着众多开发者和用户。但是,“告警管理”只是夜莺监控格外突出的那块木板。夜莺监控,立志要成为监控领域的“水桶机”,每一块木板都要:)

听听快猫星云团队设计师李金阳关于夜莺新版本在提升可视化和设计感方面的思考,让工程师用上有设计感的监控工具,我们在努力:

使用户更快定位问题

此次新版,对颜色进行了修改和调整,增强了危险类颜色的纯度亮度,通过颜色的视觉对比,使用户更快的定位问题/问题区域,提升页面查看效率。

养成平台内统一的操作习惯

对监控仪表盘卡片面板的功能进行区域划分,类似的功能操作会出现在同一个区域,即使后期有新增加的功能,也会根据功能类型进行添加,而不是随意的“挤入” “堆放”在卡片的任意空闲位置。功能区域划分也会使用户逐渐了解到什么类型的功能可以在哪个区域找到,即逐步养成平台内统一的用户操作习惯、形成统一的认知共识,减少功能找不到的问题。

功能区域划分

Dashboard 增加 Dark Mode 模式

特别的,照顾到程序员们夜间工作的习惯,增加了Dark Mode模式的仪表盘的展示方式。Dark Mode 在夜间不会产生较强的环境亮度对比,长期使用不会产生视觉不适。但此次改版迫于时间压力,仅增加了仪表盘部分的Dark Mode模式,后期会将此模式拓展到整个夜莺平台,大家敬请期待:)

夜莺Dark Mode

在提升可视化设计感之外,本次夜莺新版本迭代,包括以下功能更新:

1. 支持 recording rule 的管理

对于一些计算量比较大的 promql,查询的时候会耗时比较久,可以通过 recording rule 的方式,把 promql 配置上,周期性计算,这样最终用户查询的时候,直接就可以查到结果指标,速度会快很多。

2. 告警规则支持生效到多集群

上面的图片大家也可以看到,生效集群是支持多选的了,这样一条告警规则或记录规则可以生效到多个集群,大幅减少配置复杂度。

3. 仪表盘变量支持TextBox

这是高级玩法了,如果对数据了解比较深,可以直接通过正则来匹配想查看的数据,非常方便:

4. 告警屏蔽支持更多操作符

原来的告警屏蔽只支持 == =~ in 三种操作符,现在支持更多操作符了:!= !~ not in

5. 批量查询增强仪表盘查询性能

如果大盘里某个图表配置了多个 promql,按照原来的逻辑是每个 promql 发一次请求,新版本做了合并,多个 promql 可以做到只发一个请求,提升了查询效率。

6. 更方便的复制机器列表

使用告警自愈脚本批量执行命令的时候,经常需要拷贝一批机器,有的时候我们想根据业务组来筛选,新版本在对象列表的表格里增加了一个复制的图表,点击可以复制 ident 列表,然后直接贴到批量执行脚本的框里即可,更为方便

7. 快速找到机器所属的业务组

这是一个隐藏功能,在业务组的筛选框里,填入对象标识,系统会根据机器标识找到机器,然后找到机器所归属的业务组并展示

8. docker-compose 支持 m1 芯片

使用新版 MacBook 的用户有福了,可以在 m1 芯片运行 docker-compose 把夜莺跑起来了,这下测试更方便了。

9. n9e-server数据转发改成异步提升效率

社区中遇到了有用户反馈,因为后端TSDB太慢,导致数据积压,因此把发送逻辑改成了异步,提升发送效率,当然,这个可能会导致数据乱序,不过概率较小,典型的是服务端挂了,在客户端积累了一些数据,然后服务端起来了,客户端把积累的数据一股脑发给服务端,但是之后,数据正常发送了,就没问题了。两相权衡取其轻,最终改成了异步。

10. 增加夜莺自身的监控仪表盘

夜莺自身的监控指标,可以通过 /metrics 接口导出,n9e-webapi 和 n9e-server 都内置了相关埋点数据,n9e-server 的监控更重要一些,n9e-server 的监控仪表盘在这里:https://github.com/ccfos/nightingale/blob/main/doc/server-dash.json

红框标注的两个数据要额外注意,每秒接收的数据点的多少,以及内存队列是否拥塞。

11. 更灵活的自定义告警内容

除了可以通过 etc/template 下面的模板文件来定义告警消息的内容,还可以利用告警规则的备注,这个备注也支持 go template 语法了,为此特地写了一篇教程做讲解,地址在这里:https://n9e.github.io/docs/usage/format/

关于夜莺监控

夜莺监控是一款开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力,已有众多企业选择将 Prometheus + AlertManager + Grafana 的组合方案升级为使用夜莺监控。夜莺监控,由滴滴开发和开源,并于 2022 年 5 月 11 日,捐赠予中国计算机学会开源发展委员会(CCF ODC),为 CCF ODC 成立后接受捐赠的第一个开源项目。

夜莺监控项目文档站点:https://n9e.github.io/ 欢迎加入,一起打造最好用的云原生监控系统;也欢迎大家在 github 上 star 夜莺项目:https://github.com/ccfos/nightingale 及时了解社区动态。