電腦個(gè)人網(wǎng)站怎么做外貿(mào)建站
SkyWalking簡(jiǎn)介
????????APM (Application Performance Management) 即應(yīng)用性能管理,屬于IT運(yùn)維管理(ITOM)范疇。主要是針對(duì)企業(yè) 關(guān)鍵業(yè)務(wù)的IT應(yīng)用性能和用戶體驗(yàn)的監(jiān)測(cè)、優(yōu)化,提高企業(yè)IT應(yīng)用的可靠性和質(zhì)量,保證用戶得到良好的服務(wù),降 低IT總擁有成本(TCO)。
????????分布式系統(tǒng)的應(yīng)用程序性能監(jiān)視工具,專為微服務(wù)、云原生架構(gòu)和基于容器(Docker、K8s、Mesos)架構(gòu)而設(shè)計(jì)。提供分布式追蹤、服務(wù)網(wǎng)格遙測(cè)分析、度量聚合和可視化一體化解決方案
官網(wǎng)地址:Apache SkyWalking
SkyWalking主要功能
- 多種監(jiān)控手段??梢酝ㄟ^語(yǔ)言探針和 service mesh 獲得監(jiān)控是數(shù)據(jù)。
- 多個(gè)語(yǔ)言自動(dòng)探針。包括 Java,.NET Core 和 Node.JS。
- 輕量高效。無(wú)需大數(shù)據(jù)平臺(tái),和大量的服務(wù)器資源。
- 模塊化。UI、存儲(chǔ)、集群管理都有多種機(jī)制可選。
- 支持告警。
- 優(yōu)秀的可視化解決方案
SkyWalking架構(gòu)
- Agent?:負(fù)責(zé)從應(yīng)用中,收集鏈路信息,發(fā)送給 SkyWalking OAP 服務(wù)器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 數(shù)據(jù)信息。而我們目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 數(shù)據(jù),傳遞給服務(wù)器。
- SkyWalking OAP?:負(fù)責(zé)接收 Agent 發(fā)送的 Tracing 數(shù)據(jù)信息,然后進(jìn)行分析(Analysis Core) ,存儲(chǔ)到外部存儲(chǔ)器( Storage ),最終提供查詢( Query )功能。
- Storage?:Tracing 數(shù)據(jù)存儲(chǔ)。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多種存儲(chǔ)器。而我們目前采用的是 ES ,主要考慮是 SkyWalking 開發(fā)團(tuán)隊(duì)自己的生產(chǎn)環(huán)境采用 ES 為主。
- SkyWalking UI?:負(fù)責(zé)提供控臺(tái),查看鏈路等等。
開源APM對(duì)比
1.代碼入侵性
????????pinpoint和skywalking:基于字節(jié)碼注入技術(shù),可以做到完全的代碼無(wú)侵入。對(duì)現(xiàn)有系統(tǒng)的改造極小。
????????zipkin和cat:對(duì)代碼有一定的侵入性
2.社區(qū)比較
????????pinpoint:韓國(guó)公司開發(fā),在社區(qū)交流上會(huì)有一定滯后
????????skywalking:剛完成apache孵化,已成為 Apache 基金會(huì)頂級(jí)項(xiàng)目。skywalking完全由國(guó)人主導(dǎo)開發(fā),在國(guó)內(nèi)社區(qū)相當(dāng)活躍。我們能夠進(jìn)入官方群(Apache SkyWalking交流群:392443393)
2,支持語(yǔ)言比較
????????Pinpoint:只支持Java和PHP,
????????skywalking:支持5種語(yǔ)言:Java, C#, PHP, Node.js, Go。如果公司的服務(wù)涉及到多個(gè)開發(fā)語(yǔ)言,那么skywalking會(huì)是你更好的選擇。并且,如果你要實(shí)現(xiàn)自己的探針(比如python語(yǔ)言),skywalking的二次開發(fā)成本也比Pinpoint更低。
3,存儲(chǔ)比較
在大數(shù)據(jù)方面,底層存儲(chǔ)架構(gòu)決定上層功能。
????????pingpoint:只支持hbase,這就意味著,使用pinpoint必須有能力運(yùn)維住一套Hbase集群。
????????skywalking:支持es,h2,mysql,TiDb,sharding-sphere??蛇x類型比較多,可以根據(jù)自己團(tuán)隊(duì)的技術(shù)實(shí)力選擇。其實(shí)生產(chǎn)上來說還是用es的較多。
????????hbase和es比較,hbase強(qiáng)在存儲(chǔ)能力,es強(qiáng)在查詢能力。
4,UI比較
????????原生ui上比較,pinpoint要比skywalking好。
????????但是skywalking有一款第三方定制UI,做的又比pinpoint漂亮
5,JVM監(jiān)控
????????skywalking支持監(jiān)控:Heap, Non-Heap, GC(YGC和FGC)。 Pinpoint能夠監(jiān)控的指標(biāo)主要有:Heap, Non-Heap, FGC, DirectBufferMemory, MappedBufferMemory,但是沒有YGC。另外,Pinpoint還支持多個(gè)指標(biāo)同一時(shí)間點(diǎn)查看的功能。如下圖所示:
所以,對(duì)JVM的監(jiān)控方面,Pinpoint更勝一籌。
6,服務(wù)監(jiān)控
????????包括操作系統(tǒng),和部署的服務(wù)實(shí)例的監(jiān)控。 Pinpoint支持的維度有:CPU使用率,Open File Descriptor,數(shù)據(jù)源,活動(dòng)線程數(shù),RT,TPS。 skywalking支持的維度有:CPU使用率,SLA,RT,CPM(Call Per Minutes)。 所以,這方面兩者旗鼓相當(dāng),沒有明顯的差距。
7,跟蹤粒度比較
????????Pinpoint在這方面做的非常好,跟蹤粒度非常細(xì)。如下圖所示,是Pinpoint對(duì)某個(gè)接口的trace信息:
8,過濾追蹤
????????Pinpoint和skywalking都可以實(shí)現(xiàn),而且配置的表達(dá)式都是基于ant風(fēng)格。 Pinpoint在Web UI上配置 filter wizard 即可自定義過濾追蹤。 skywalking通過加載apm-trace-ignore-plugin插件就能自定義過濾跟蹤,skywalking這種方式更靈活,比如一臺(tái)高配服務(wù)器上有若干個(gè)服務(wù),在共用的agent配置文件apm-trace-ignore-plugin.config中可以配置通用的過濾規(guī)則,然后通過-D的方式為每個(gè)服務(wù)配置個(gè)性化過濾。
SkyWalking安裝和配置
- 第一步,搭建一個(gè) Elasticsearch 服務(wù)。
- 第二步,下載 SkyWalking 軟件包。
- 第三步,搭建一個(gè) SkyWalking OAP 服務(wù)。
- 第四步,啟動(dòng)一個(gè) Spring Boot 應(yīng)用,并配置 SkyWalking Agent。
- 第五步,搭建一個(gè) SkyWalking UI 服務(wù)。