以防讀者不瞭解夜鶯,開頭先做個介紹:
夜鶯監控,英文名字 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 一下,看看有沒有新增的配置項,有的話需要手動加到你的配置文件裏。
結語
這個版本之後,後面的版本可能會發得慢點,目前正在搞一個通知規則的新功能,對現有的通知邏輯做一個大重構,這個工作量比較大,等完事之後夜鶯的告警通知能力會上一個大台階,敬請期待。