mysql链路跟踪工具_SkyWalking全链路追踪利器
隨著目前系統架構的復雜度越來越高(中臺、微服務),并且線上應用的多級監控覆蓋到了通訊、應用處理過程監控并且實現端到端的應用監測,線上性能故障的快速定位修復;而傳統的監控分析方式已經無法滿足我們的需求,因此許多強大的APM工具應運而生(SkyWalking、Pinpoint、Cat、Zipkin)。性能測試也面臨同樣問題,目前越來越多的端到端的壓測,單體壓測已經比較成熟不管從實施到監控分析,全鏈路的壓測分析比較困難,特別是鏈路中瓶頸點的定位。我們今天就聊一下全鏈路的追蹤工具之一SkyWalking,它是一款優秀的國產 APM 工具,包括了分布式追蹤、性能指標分析、應用和服務依賴分析等。
1、全鏈路追蹤的三種場景
1)、Metrics 指標性統計
基于聚合信息,實現監控和告警。比如說我們會去做一個服務的 TBS 的正確率、成功率、流量等,這是我們常見的針對單個指標或者某一個數據庫的,這就是 Metrics 單指標分析。
2)、Tracing 分布式追蹤
采集并保留服務調用相關信息,幫助我們更好的理解系統的行為、輔助調試和排查性能問題。這里提到的是一次請求的范圍,比如說一次訂購的過程,從瀏覽商品到最后下訂單、支付、物流、最后交到我們的手上。這是一個流程化的東西,我們需要軌跡,需要去追蹤。
3)、?Logging 日志記錄
記錄標準格式日志信息,輸出到文件,基于日志文件進行聚合和分析。優點:信息全面;缺點:資源開銷大,難以展示完整鏈路
2、全鏈路追蹤需要實現的功能
1)故障定位——可以看到請求的完整路徑,相比離散的日志,更方便定位問題(由于真實線上環境會設置采樣率,可以利用debug開關實現對特定請求的全采樣);
2)依賴梳理——基于調用關系生成服務依賴圖;
3)性能分析和優化——可以方便的記錄統計系統鏈路上不同處理單元的耗時占用和占比;
4)容量規劃與評估;配合Logging和Metric強化監控和報警。
3、全鏈路追蹤工具對比:
4、SkyWalking介紹
1)架構圖:
SkyWalking 的核心是數據分析和度量結果的存儲平臺,通過 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量數據,SkyWalking Collecter 對數據進行分析和聚合,存儲到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我們可以通過 SkyWalking UI 的可視化界面對最終的結果進行查看。Skywalking 支持從多個來源和多種格式收集數據:多種語言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘測、Envoy 度量等數據格式。
整體架構看似模塊有點多,但在實際上還是比較清晰的,主要就是通過收集各種格式的數據進行存儲,然后展示。所以搭建 Skywalking 服務我們需要關注的是 SkyWalking Collecter、SkyWalking UI 和 存儲設備,SkyWalking Collecter、SkyWalking UI 官方下載安裝包內已包含,最終我們只需考慮存儲設備即可。
2)采集信息接收集群與聚合分析集群可獨立部署,部署架構圖:
3)SkyWalking工作原理:
skywalaking總體架構分為三部分:
a、? ?skywalking-collector:鏈路數據歸集器,數據可以落地ElasticSearch,單機也可以落地H2,不推薦,H2僅作為臨時演示用
b、? ?skywalking-web:web可視化平臺,用來展示落地的數據
c、? ?skywalking-agent:探針,用來收集和發送數據到歸集器
skywalking的核心在于agent部分,下圖展示了一次調用的詳細的運行過程:
4)、SkyWalking全鏈路追蹤核心過程:
核心追蹤過程解釋請參考:http://www.upyun.com/opentalk/334.html
5)SkyWalking特點:
a、性能好,針對單實例5000tps的應用,在全量采集的情況下,只增加 10% 的CPU開銷。
通過官網的壓測數據可以看出是否掛載Agent,應用的TPS和平均響應時間沒有差別,CPU消耗小幅提升。如下圖:
簡單訪問結果:
復雜訪問結果:
b、支持多語言探針
支持自動及手動探針;自動探針:Java支持的中間件、框架與類庫列表; 手動探針:OpenTrackingApi、@Trace注解、trackId集成到日志中。
c、采用探針技術,在使用過程中,完全是0代碼,無侵入,分布式自動采集與監控系統運行;
6)、SkyWalking展示界面:
首頁:
調用情況:
追蹤情況:
日志追蹤:
7)目前已經使用SkyWalking企業:
8)SkyWalking資料信息:
官方網站地址:
http://skywalking.apache.org/
http://incubator.apache.org/projects/skywalking.html
github項目地址:https://github.com/OpenSkywalking/skywalking-netcore
下載地址:http://skywalking.apache.org/downloads/
可以從上述地址下載,也可以直接到github上下載,選擇最新版本,運行環境:jdk7,jdk8,tomcat7,tomcat8(tomcat針對web項目),建議安裝使用過程,多看github上的doc文檔本次文章不在介紹具體的安裝部署過程;
備注:
1、目前SkyWalking全鏈路追蹤工具對于http類系統可以無縫支持,針對于TCP或者自研框架類系統需要二次開發支持。
2、建議針對SkyWalking的使用方式底層使用期開源框架源碼,針對自身系統特點做定制型開發。
總結
以上是生活随笔為你收集整理的mysql链路跟踪工具_SkyWalking全链路追踪利器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 聚合函数内比较运算符_关于常
- 下一篇: 2sin30°在python中如何表示_