SkyWalking入門(mén)介紹

APM系統(tǒng)SkyWalking入門(mén)介紹

APM全稱(chēng)Application Performance Management應(yīng)用性能管理,目的是通過(guò)各種探針采集數(shù)據(jù),收集關(guān)鍵指標(biāo),同時(shí)搭配數(shù)據(jù)呈現(xiàn)以實(shí)現(xiàn)對(duì)應(yīng)用程序性能管理和故障管理的系統(tǒng)化解決方案。

Zabbix、Premetheus、open-falcon等監(jiān)控系統(tǒng)主要關(guān)注服務(wù)器硬件指標(biāo)與系統(tǒng)服務(wù)運(yùn)行狀態(tài)等,而APM系統(tǒng)則更重視程序內(nèi)部執(zhí)行過(guò)程指標(biāo)和服務(wù)之間鏈路調(diào)用情況的監(jiān)控,APM更有利于深入代碼找到請(qǐng)求響應(yīng)“慢”的根本問(wèn)題,與Zabbix之類(lèi)的監(jiān)控是互補(bǔ)關(guān)系

目前市面上開(kāi)源的APM系統(tǒng)主要有CAT、Zipkin、Pinpoint、SkyWalking,大都是參考Google的Dapper實(shí)現(xiàn)的

CAT: 是由國(guó)內(nèi)美團(tuán)點(diǎn)評(píng)開(kāi)源的,基于Java語(yǔ)言開(kāi)發(fā),目前提供Java、C/C++、Node.js、Python、Go等語(yǔ)言的客戶(hù)端,監(jiān)控?cái)?shù)據(jù)會(huì)全量統(tǒng)計(jì),國(guó)內(nèi)很多公司在用,例如美團(tuán)點(diǎn)評(píng)、攜程、拼多多等,CAT跟下邊要介紹的Zipkin都需要在應(yīng)用程序中埋點(diǎn),對(duì)代碼侵入性強(qiáng),我們傾向于選擇對(duì)代碼無(wú)侵入的產(chǎn)品,所以淘汰了CAT

Zipkin: 由Twitter公司開(kāi)發(fā)并開(kāi)源,Java語(yǔ)言實(shí)現(xiàn),侵入性相對(duì)于CAT要低一點(diǎn),需要對(duì)web.xml之類(lèi)的配置文件做修改,但依然對(duì)代碼有侵入,也沒(méi)有選擇

Pinpoint: 一個(gè)韓國(guó)團(tuán)隊(duì)開(kāi)源的產(chǎn)品,運(yùn)用了字節(jié)碼增強(qiáng)技術(shù),只需要在啟動(dòng)時(shí)添加啟動(dòng)參數(shù)即可,對(duì)代碼無(wú)侵入,目前支持Java和PHP語(yǔ)言,底層采用HBase來(lái)存儲(chǔ)數(shù)據(jù),探針收集的數(shù)據(jù)粒度非常細(xì),但性能損耗大,因其出現(xiàn)的時(shí)間較長(zhǎng),完成度也很高,應(yīng)用的公司較多

SkyWalking: 國(guó)人開(kāi)源的產(chǎn)品,主要開(kāi)發(fā)人員來(lái)自于華為,2019年4月17日Apache董事會(huì)批準(zhǔn)SkyWalking成為頂級(jí)項(xiàng)目,支持Java、.Net、NodeJs等探針,數(shù)據(jù)存儲(chǔ)支持Mysql、Elasticsearch等,跟Pinpoint一樣采用字節(jié)碼注入的方式實(shí)現(xiàn)代碼的無(wú)侵入,探針采集數(shù)據(jù)粒度粗,但性能表現(xiàn)優(yōu)秀,且對(duì)云原生支持,目前增長(zhǎng)勢(shì)頭強(qiáng)勁,社區(qū)活躍,中文文檔沒(méi)有語(yǔ)言障礙

SkyWalking

SkyWalking是分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專(zhuān)為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8S、Mesos)架構(gòu)而設(shè)計(jì)

SkyWalking是觀(guān)察性分析平臺(tái)和應(yīng)用性能管理系統(tǒng)。提供分布式追蹤、服務(wù)網(wǎng)格遙測(cè)分析、度量聚合和可視化一體化解決方案

SkyWalking是一個(gè)開(kāi)源APM系統(tǒng),包括對(duì)Cloud Native體系結(jié)構(gòu)中的分布式系統(tǒng)的監(jiān)視,跟蹤,診斷功能。 核心功能如下。

  • 服務(wù),服務(wù)實(shí)例,端點(diǎn)指標(biāo)分析

  • 根本原因分析

  • 服務(wù)拓?fù)鋱D分析

  • 服務(wù),服務(wù)實(shí)例和端點(diǎn)依賴(lài)關(guān)系分析

  • 檢測(cè)到慢速服務(wù)和端點(diǎn)

  • 性能優(yōu)化

  • 分布式跟蹤和上下文傳播

  • 數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)指標(biāo)。 檢測(cè)慢速數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)語(yǔ)句(包括SQL語(yǔ)句)。

  • 報(bào)警

SkyWalking支持從多種來(lái)源和多種格式收集遙測(cè)(跟蹤和度量)數(shù)據(jù),包括

  • SkyWalking格式的Java,.NET Core,NodeJS和PHP自動(dòng)儀器代理

  • SkyWalking格式的手動(dòng)儀器Go代理。

  • Istio遙測(cè)格式

  • 由Istio控制的服務(wù)網(wǎng)格中的Envoy gRPC訪(fǎng)問(wèn)日志服務(wù)(ALS)格式

  • 特使指標(biāo)服務(wù)格式。

  • Zipkin v1 / v2格式。

  • Jaeger gRPC格式。

SkyWalking架構(gòu)

[圖片上傳失敗...(image-92156f-1580045804024)]

SkyWalking采用組件式開(kāi)發(fā),易于擴(kuò)展,主要組件作用如下:

Skywalking Agent: 采集tracing(調(diào)用鏈數(shù)據(jù))和metric(指標(biāo))信息并上報(bào),上報(bào)通過(guò)HTTP或者gRPC方式發(fā)送數(shù)據(jù)到Skywalking Collector

Skywalking Collector : 鏈路數(shù)據(jù)收集器,對(duì)agent傳過(guò)來(lái)的tracingmetric數(shù)據(jù)進(jìn)行整合分析通過(guò)Analysis Core模塊處理并落入相關(guān)的數(shù)據(jù)存儲(chǔ)中,同時(shí)會(huì)通過(guò)Query Core模塊進(jìn)行二次統(tǒng)計(jì)和監(jiān)控告警

Storage: Skywalking的存儲(chǔ),支持以ElasticSearch、Mysql、TiDBH2等作為存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)存儲(chǔ)

UI: Web可視化平臺(tái),用來(lái)展示落地的數(shù)據(jù),目前官方采納了RocketBot作為SkyWalking的主UI

SkyWalking界面

image.png

儀表盤(pán)主要包含Service Dashboard和Database Dashboard

Service Dashboard內(nèi)分別有Global、Service、Endpoint、Instance面板,展示了全局以及服務(wù)、端點(diǎn)、實(shí)例的詳細(xì)信息

Database Dashboard內(nèi)可以展示數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間、響應(yīng)時(shí)間分布、吞吐量、SLA、慢SQL等詳細(xì)信息,便于直觀(guān)展示數(shù)據(jù)庫(kù)狀態(tài)

image.png
  • 拓?fù)鋱D
image.png

SkyWalking能夠根據(jù)獲取的數(shù)據(jù)自動(dòng)繪制服務(wù)之間的調(diào)用關(guān)系圖,并能識(shí)別常見(jiàn)的服務(wù)顯示在圖標(biāo)上,例如圖上的kafka、H2服務(wù)

每條連線(xiàn)的顏色反應(yīng)了服務(wù)之間的調(diào)用延遲情況,可以非常直觀(guān)的看到服務(wù)與服務(wù)之間的調(diào)用狀態(tài),連線(xiàn)中間的點(diǎn)能點(diǎn)擊,可顯示兩個(gè)服務(wù)之間鏈路的平均響應(yīng)時(shí)間、吞吐率以及SLA等信息

  • 追蹤面板
img

能夠顯示請(qǐng)求的代碼內(nèi)部執(zhí)行情況,一個(gè)完整的請(qǐng)求都經(jīng)過(guò)了哪些服務(wù)、執(zhí)行了哪些代碼方法、每個(gè)方法的執(zhí)行時(shí)間、執(zhí)行狀態(tài)等詳細(xì)信息,快速定位代碼問(wèn)題

  • 告警面板


    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容