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

SOFAStack
html

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

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

SOFALookout: github.com/sofastack/s…

前言

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

什麼是 SOFALookout

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

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

SOFALookout :github.com/sofastack/s…架構

SOFALookout 安裝文檔:www.sofastack.tech/sofa-lookou…less

image.png

SOFALookout 服務器端的主要特性:運維

  • 適配社區主要 Metrics 數據源協議寫入(好比: PrometheusMetricbeat 等);
  • 數據的存儲支持擴展,暫時開源版默認支持 Elasticsearch, 而且透明和自動化了相關運維操做;
  • 遵循 Prometheus 查詢 API 的標準以及支持 PromQL,並進行了適當改進;
  • 自帶數據查詢的控制檯,並支持 Grafana 進行數據可視化;
  • 使用簡單,支持單一進程運行整個服務器端模塊。

隨着 SOFALookout (metrics)服務器端代碼開源,metrics 數據的處理已經造成閉環。後續咱們將會進一步開源 Trace 和 Event 相關的服務能力,敬請期待。elasticsearch

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 的麻煩,更多細節後續單獨講解。

本次新增開源模塊

1、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。

2、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 共建,尤爲是支持更多的 Metrics 存儲庫。

公衆號:金融級分佈式架構(Antfin_SOFA)

相關文章
相關標籤/搜索