歡迎光臨
每天分享高質量文章

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

SOFA Scalable Open Financial Architecture
是螞蟻金服自主研發的金融級分佈式中間件,包含了構建金融級雲原生架構所需的各個組件,是在金融場景里錘煉出來的最佳實踐。

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

| 前言

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

什麼是 SOFALookout

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

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

SOFALookout [2]

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

SOFALookout 安裝文件 [3]

https://www.sofastack.tech/sofa-lookout/docs/quickstart-metrics-server

 SOFALookout 服務器端的主要特性:

  • 適配社區主要 Metrics 資料源協議寫入(比如: Prometheus[4]Metricbeat [5]等);

  • 資料的儲存支持擴展,暫時開源版預設支持 Elasticsearch [6],並且透明和自動化了相關運維操作;

  • 遵循 Prometheus 查詢 API 的標準以及支持 PromQL [7] ,併進行了適當改進;

  • 自帶資料查詢的控制台,並支持 Grafana [8] 進行資料可視化;

  • 使用簡單,支持單一行程運行整個服務器端模塊。

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

| SOFALookout 專案結構

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

  1.  

    ├── boot

  2. ├── client

  3. ├── gateway

  4. └── server

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

| SOFALookout 工作機制

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

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

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

| 本次新增開源模塊

一、SOFALookout Gateway 模塊

SOFALookout Gateway 輕量的資料管道,它提供豐富的協議接入支持,包括自有SDK(SOFALookout Client)上報協議,還支持 Prometheus 的資料協議(推樣式和拉樣式),Metricbeat 協議(版本是6),OpenTSDB [9] 寫入協議。每種資料來源對應於一個 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 的支持,能夠滿足基本功能使用。

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

| 近期計劃

下圖是近期的 Roadmap:

非常歡迎更多同學參與 SOFALookout 共建,尤其是支持更多的 Metrics 儲存庫。

| 文中涉及的相關鏈接

[1] Metrics2.0:

http://metrics20.org/

[2] SOFALookout:

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

[3] SOFALookout 安裝文件:

https://www.sofastack.tech/sofa-lookout/docs/quickstart-metrics-server

[4] Prometheus:

https://prometheus.io

[5] Metricbeat:

https://www.elastic.co/guide/en/beats/metricbeat/6.4/index.html

[6] Elasticsearch:

https://www.elastic.co/cn/products/elasticsearch

[7] PromQL:

https://prometheus.io/docs/prometheus/latest/querying/basics/

[8] Grafana:

https://grafana.com/

[9] OpenTSDB:

http://opentsdb.net/

赞(0)

分享創造快樂