SkyWalking 是一個開源 APM 系統,包括針對 Cloud Native 體系結構中的分佈式系統的監視、跟蹤、診斷功能。核心功能以下:git
- 服務、服務實例、端點指標分析數據庫
- 根本緣由分析,在運行時分析代碼性能優化
- 服務拓撲圖分析微信
- 服務,服務實例和端點依賴性分析架構
- 檢測到慢速服務和端點框架
- 性能優化elasticsearch
- 分佈式跟蹤和上下文傳播分佈式
- 數據庫訪問指標,檢測慢速數據庫訪問語句(包括 SQL 語句)模塊化
- 報警源碼分析
SkyWalking 目前是 Apache 頂級項目,做爲這麼優秀的開源項目,它的架構設計理念確定會有不少值得咱們借鑑。
基於 SDK 的探針模型
基於 SDK 的探針模型,其實在咱們常規的框架技術中都有使用,好比事務原理,就是最典型的場景,裏面用到了動態代理,並經過 AOP 切面來完成事務邏輯的植入。那麼在傳統的分佈式鏈路追蹤系統中,基於 Spring Cloud 的 ZipKin 就是採用的基於 SDK 的探針模型。
ZipKin 的探針具體分佈在 instrumentation 項目中,會根據不一樣的組件造成不一樣的子項目,以便業務經過 SDK 依賴探針的時候,能夠比較靈活的應用各類不一樣的組件。
可是若是隻是 ZipKin 的探針還不能完成侵入,須要封裝切面,經過 SDK 零侵入到業務代碼,那麼是否有組件已經實現了這種解決方案呢?答案就是 Spring Cloud Sleuth。
Spring Cloud Sleuth 爲分佈式跟蹤提供了基於 Spring Boot 的自動配置。封裝了 Brave 的跟蹤程序庫,Brave 庫又是 openzipkin 的探針組件庫。Sleuth 配置業務須要的全部分佈式追蹤能力。包括跟蹤數據(span)的傳輸通道、保留多少跟蹤數據(採樣率)、是否發送 baggage 以及具有開關功能的鏈路探針。
原創不易,歡迎關注個人Gitchat,並訂閱文章:
分佈式鏈路追蹤:Skywalking 探針模型設計
https://gitbook.cn/new/gitchat/activity/5edcab73a7b8bf6bae033aca
往期文章精選:
分佈式鏈路追蹤 Skywalking:插件化和模塊化架構設計
分佈式鏈路追蹤Skywalking Skywalking 存儲客戶端設計
源碼分析-分佈式鏈路追蹤:Skywalking存儲插件能力-elasticsearch
遊俠-一名對技術、管理、業務和架構融合之道孜孜不倦的高級碼農。
本文分享自微信公衆號 - 架構師玄學之路(andy_aty)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。