
阅读《2024 中国开源开发者报告》赢大奖,扫码申请享特权

以防读者不了解夜莺,开头先做个介绍:
夜莺监控,英文名字 Nightingale,是一款侧重告警的监控类开源项目。类似 Grafana 的数据源集成方式,夜莺也是对接多种既有的数据源,不过 Grafana 侧重在可视化,夜莺是侧重在告警引擎。比如把 Prometheus、VictoriaMetrics、ElasticSearch 等作为数据源接入夜莺,即可在夜莺里配置告警规则做指标、日志的告警。当然了,夜莺也不止做告警,还提供了 ad-hoc 查询、指标视图、仪表盘等可视化能力,不过在可视化方面没有 Grafana 道行深。配合 Categraf 采集器,夜莺可以做到一站式监控。其项目地址是:https://github.com/ccfos/nightingale
本次更新没有 Bugfix(主要是也没有已知 Bug 了),只有优化和新增功能,变动内容如下:
- feat: 接口鉴权支持使用用户自己的 token
- feat: 支持将接收的时序数据转发到 kafka
- feat: 仪表盘折线图新增 annotations 功能
- feat: 仪表盘折线图新增右对齐的表格模式图例
- feat: 仪表盘折线图阈值新增百分比模式,以及新增阈值样式支持虚线和区域等多样组合
- feat: 仪表盘排行榜新增 Retro LCD 显示模式
- feat: 仪表盘全局链接支持新增 dashboards 类型链接
- refactor: 告警规则数据源筛选 UI 优化
- refactor: 仪表盘配置改成手动保存模式(这点要注意)
- refactor: 面板标题字体大小颜色优化
- refactor: 面板标题栏展示自定义时间提示
- refactor: 分组面板折叠后显示包含面板数量信息
- refactor: 折线图文字颜色优化增强对比度
这里展开说一下其中的两点:鉴权 token 和告警规则数据源筛选 UI 优化。
接口鉴权支持使用用户自己的 token
之前夜莺的接口调用需要先调用 login 接口拿到 token,整个过程比较繁琐。根据广大用户的建议,我们新增了一个认证鉴权方式。可以在个人中心创建 token,之后把这个 token 放到 HTTP Header 里,就可以直接调用接口了。
比如调用用户列表接口,现在可以这样搞了:
desktop:~# curl -s -H "X-User-Token: afbb31b8-ed1d-4877-b6ae-c3af68c0a434" 'localhost:17000/api/n9e/users' | python3 -mjson.tool { "dat": { "admin": true, "list": [ { "id": 1, "username": "root", "nickname": "\u8d85\u7ba1", "phone": "", "email": "", "portrait": "", "roles": [ "Admin" ], "contacts": {}, "maintainer": 0, "create_at": 1739514850, "create_by": "system", "update_at": 1739516089, "update_by": "system", "belong": "", "admin": true, "user_groups": [ { "id": 1, "name": "demo-root-group" } ], "busi_groups": [ { "id": 1, "name": "Default Busi Group" } ], "last_active_time": 1739516089 } ], "total": 1 }, "err": "" }
把 token 放到 X-User-Token
里,就可以调用接口了。不过,这个功能需要通过配置文件打开,在夜莺的 config.toml 中,找到 [HTTP.JWTAuth]
部分,然后在上面增加一条配置:
... [HTTP.TokenAuth] Enable = true [HTTP.JWTAuth] ...
告警规则数据源筛选 UI 优化
告警规则中,数据源类型做了 UI 调整,更加直观了,方便用户选择。这些数据源类型,只有你配置了对应的数据源,并且刷新页面才会显示出来。比如你没有在集成中心-数据源
配置 Prometheus 数据源,那 Prometheus 数据源类型就不会显示出来。
Prometheus 这个数据源类型,适用于 VictoriaMetrics、M3DB、Thanos 等所有支持 Prometheus 协议的数据源。
我手头没有开源版本的环境,上面的截图是夜莺商业版的,商业版数据源类型更多一些,开源版本应该有 5 种类型:Prometheus、ElasticSearch、Loki、TDEngine、Host,样式和商业版一致。
如何升级
到 github 下载最新的 release 包,更新二进制、配置文件、integrations 目录,重启即可。配置文件一般不能直接覆盖,需要自行 diff 一下,看看有没有新增的配置项,有的话需要手动加到你的配置文件里。
结语
这个版本之后,后面的版本可能会发得慢点,目前正在搞一个通知规则的新功能,对现有的通知逻辑做一个大重构,这个工作量比较大,等完事之后夜莺的告警通知能力会上一个大台阶,敬请期待。
还没有评论,来说两句吧...