1. 程式人生 > >螞蟻金服輕量級監控分析系統 SOFALookout 服務端開源

螞蟻金服輕量級監控分析系統 SOFALookout 服務端開源

SOFAStack Scalable Open Financial  Architecture Stack 是螞蟻金服自主研發的金融級分散式架構,包含了構建金融級雲原生架構所需的各個元件,是在金融場景裡錘鍊出來的最佳實踐。

SOFALookout 是螞蟻金服在 SOFAStack 體系內研發開源的一款解決系統的度量和監控問題的輕量級中介軟體服務。本文給大家介紹下 SOFALookout 伺服器端主要提供的特性以及使用方式。 SOFALookout:https://gitee.com/sofastack/sofa-lookout

前言

容器,K8S,微服務,Mesh 以及 Serverless 這些新技術方向正在根本的變革我們執行軟體的方式。我們構建的系統更加分散式化,另外由於容器,系統的生命週期更加短,變得易逝。針對這些變化,SOFALookout 希望提供一套輕量級解決方案。之前 SOFALookout 已經開源客戶端的能力。今天,SOFALookout 伺服器端 Metrics 部分的程式碼終於正式開源啦!本文給大家介紹下 SOFALookout 伺服器端的主要特性以及使用方法。

什麼是 SOFALookout

SOFALookout 是螞蟻金服開源的一款解決系統的度量和監控問題的輕量級中介軟體服務。它提供的服務包括:Metrics 的埋點、收集、加工、儲存與查詢等。該開源專案包括了兩個獨立部分,分別是客戶端與伺服器端服務。

SOFALookout 目標是打造一套輕量級 Observability 實時工具平臺,幫助使用者解決基礎設施、應用和服務等的監控和分析的問題。SOFALookout(目前已開源部分) 是一個利用多維度的 metrics 對目標系統進行度量和監控的專案。SOFALookout 的多維度 metrics 參考 Metrics2.0 標準。

SOFALookout :

https://github.com/sofastack/sofa-lookout

SOFALookout 安裝文件:https://www.sofastack.tech/sofa-lookout/docs/quickstart-metrics-server

image.png

 SOFALookout 伺服器端的主要特性:

  • 適配社群主要 Metrics 資料來源協議寫入(比如: PrometheusMetricbeat 等);
  • 資料的儲存支援擴充套件,暫時開源版預設支援 Elasticsearch, 並且透明和自動化了相關運維操作;
  • 遵循 Prometheus 查詢 API 的標準以及支援 PromQL,並進行了適當改進;
  • 自帶資料查詢的控制檯,並支援 Grafana 進行資料視覺化;
  • 使用簡單,支援單一程序執行整個伺服器端模組。

隨著 SOFALookout (metrics)伺服器端程式碼開源,metrics 資料的處理已經形成閉環。後續我們將會進一步開源 Trace 和 Event 相關的服務能力,敬請期待。

SOFALookout 專案結構

伺服器端程式碼分別包括兩部分:Gateway 模組和 Server 模組。如下圖所示(展示了 SOFALookout 原始碼專案的模組概要結構)

├── boot
├── client
├── gateway
└── server

專案中的 boot 模組作用是方便整合和執行服務端的模組,既可以單獨執行 Gateway 和 Server 的服務,也可以藉助 SOFAArk 完成(Gateway 和 Server)的 All in One 的合併為單一程序執行。

SOFALookout 工作機制

下圖完整展示了 SOFALookout 如何從 metrics 資料採集、上報、儲存到最終展示的完整流程路徑。

image.png

目前 SOFALookout 支援靈活的 metrics 資料儲存選型。但開源版本我們暫時只支援了 Elasticsearch 作為儲存的方案(後續可能繼續支援 Cassandra,InfluxDB...),其他儲存地適配我們希望更多同學能參與共建和支援。優先支援 Elasticsearch 是因為我們考慮到了 ELK 解決方案在業界已經廣泛使用,尤其是日誌資料。

為了開箱即用,同時考慮到不熟悉 Elasticsearch 的同學的使用,SOFALookout已經內建了關於 metrics 資料儲存的自動化運維工具,可以免除大家自己建 Index,和日常維護 ES Index 的麻煩,更多細節後續單獨講解。

本次新增開源模組

一、SOFALookout Gateway 模組

SOFALookout Gateway 輕量的資料管道,它提供豐富的協議接入支援,包括自有SDK(SOFALookout Client)上報協議,還支援 Prometheus 的資料協議(推模式和拉模式),Metricbeat 協議(版本是6),OpenTSDB 寫入協議。每種資料來源對應於一個 Importer 的概念。

SOFALookout Gateway 對於遠端(推模式)上報提供本地硬碟緩衝的支援。Gateway 總體設計是圍繞資料加工的Pipeline 形式,包括前置後置的資料過濾器方便進行開發者資料加工。 另外 Gateway 可以支援自定義 Exporter,預設提供了 Elasticsearch Exporter,Standard Exporter(用於 Gateway 間資料中繼),開發者也可以自定義其他儲存的 或 Kafka 等各式各樣 Exporter。

二、SOFALookout Server 模組

SOFALookout Server 相容和增強了 Prometheus 的資料及元資料查詢的 RESTful API。同樣對應 PromQL 我們也基本實現了相容和增強(不包括 Alert 相關語法),SOFALookout 的 promQL 相關解析邏輯是從 Prometheus 移植而來,做了一些優化和改進, 感謝 Prometheus 開源瞭如此易用和強大的 golang 版本的 QL 實現。

為了方便方便開發者做資料探索和試驗,我們也提供了自有 Web-UI 的支援,能夠滿足基本功能使用。

image.png

我們還是推薦大家使用 Grafana 進行資料展示。Grafana 整合 SOFALookout 很簡單,只需要選擇 Prometheus 作為資料來源協議即可(SOFALookout預設查詢埠也是: 9090)。下圖展示 Grafana 新增資料來源配置:

image.png

image.png

近期計劃

下圖是近期的 Roadmap:

image.png

非常歡迎更多同學參與 SOFALookout 共建,尤其是支援更多的