日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

一文帶你了解SkyWalking

來源: 責(zé)編: 時(shí)間:2023-11-06 08:53:03 257觀看
導(dǎo)讀Apache SkyWalkingSkyWalking是一個(gè)開源可觀測(cè)平臺(tái),用于收集、分析、聚合和可視化來自服務(wù)和云原生基礎(chǔ)設(shè)施的數(shù)據(jù)。SkyWalking 提供了一種簡(jiǎn)單的方法來保持分布式系統(tǒng)的清晰視圖,甚至跨云。它是一種現(xiàn)代APM,專為云原生

Apache SkyWalking

SkyWalking是一個(gè)開源可觀測(cè)平臺(tái),用于收集、分析、聚合和可視化來自服務(wù)和云原生基礎(chǔ)設(shè)施的數(shù)據(jù)。SkyWalking 提供了一種簡(jiǎn)單的方法來保持分布式系統(tǒng)的清晰視圖,甚至跨云。它是一種現(xiàn)代APM,專為云原生、基于容器的分布式系統(tǒng)而設(shè)計(jì)。ROh28資訊網(wǎng)——每日最新資訊28at.com

文檔版本8.9.1,當(dāng)前最新版本9.10ROh28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ROh28資訊網(wǎng)——每日最新資訊28at.com

介紹

SkyWalking 是一個(gè)應(yīng)用性能監(jiān)控系統(tǒng)(APM)ROh28資訊網(wǎng)——每日最新資訊28at.com

為微服務(wù)、云原生和基于容器(Docker, Kubernetes, Mesos)體系結(jié)構(gòu)而設(shè)計(jì),主要實(shí)現(xiàn)功能包括分布式追蹤,性能指標(biāo)分析和服務(wù)依賴分析等ROh28資訊網(wǎng)——每日最新資訊28at.com

相似產(chǎn)品與對(duì)比

類似功能的組件還有:Zipkin、Pinpoint 、CAT、Dapper等ROh28資訊網(wǎng)——每日最新資訊28at.com

  • Zipkin是Twitter開源的調(diào)用鏈路分析工具,目前基于Spingcloud sleuth得到了廣泛的應(yīng)用,特點(diǎn)是輕量,部署簡(jiǎn)單。
  • 一個(gè)韓國(guó)團(tuán)隊(duì)開源的產(chǎn)品,運(yùn)用了字節(jié)碼增強(qiáng)技術(shù),只需要在啟動(dòng)時(shí)添加啟動(dòng)參數(shù)即可,對(duì)代碼無侵入,目前支持Java和PHP語(yǔ)言,底層采用HBase來存儲(chǔ)數(shù)據(jù),探針收集的數(shù)據(jù)- 粒度非常細(xì),但性能損耗大,因其出現(xiàn)的時(shí)間較長(zhǎng),完成度也很高,應(yīng)用的公司較多
  • Skywalking是本土開源的基于字節(jié)碼注入的調(diào)用鏈路分析以及應(yīng)用監(jiān)控分析工具,特點(diǎn)是支持多種插件,UI功能較強(qiáng),接入端無代碼侵入。
  • CAT是由國(guó)內(nèi)美團(tuán)點(diǎn)評(píng)開源的,基于Java語(yǔ)言開發(fā),目前提供Java、C/C++、Node.js、Python、Go等語(yǔ)言的客戶端,監(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)。


ROh28資訊網(wǎng)——每日最新資訊28at.com

CatROh28資訊網(wǎng)——每日最新資訊28at.com

ZipkinROh28資訊網(wǎng)——每日最新資訊28at.com

PinpointROh28資訊網(wǎng)——每日最新資訊28at.com

skywalkingROh28資訊網(wǎng)——每日最新資訊28at.com

依賴ROh28資訊網(wǎng)——每日最新資訊28at.com

Java 6,7,8ROh28資訊網(wǎng)——每日最新資訊28at.com

Maven 3.2.3+ROh28資訊網(wǎng)——每日最新資訊28at.com

mysql5.6ROh28資訊網(wǎng)——每日最新資訊28at.com

Linux 2.6以及之上(2.6內(nèi)核才可以支持epoll)ROh28資訊網(wǎng)——每日最新資訊28at.com

Java 6,7,8ROh28資訊網(wǎng)——每日最新資訊28at.com

Maven3.2+ROh28資訊網(wǎng)——每日最新資訊28at.com

rabbitMQROh28資訊網(wǎng)——每日最新資訊28at.com

Java 6,7,8ROh28資訊網(wǎng)——每日最新資訊28at.com

maven3+ROh28資訊網(wǎng)——每日最新資訊28at.com

Hbase0.94+ROh28資訊網(wǎng)——每日最新資訊28at.com

Java 6,7,8ROh28資訊網(wǎng)——每日最新資訊28at.com

maven3.0+ROh28資訊網(wǎng)——每日最新資訊28at.com

nodejsROh28資訊網(wǎng)——每日最新資訊28at.com

zookeeperROh28資訊網(wǎng)——每日最新資訊28at.com

elasticsearchROh28資訊網(wǎng)——每日最新資訊28at.com

實(shí)現(xiàn)方式ROh28資訊網(wǎng)——每日最新資訊28at.com

代碼埋點(diǎn)(攔截器,注解,過濾器等)ROh28資訊網(wǎng)——每日最新資訊28at.com

攔截請(qǐng)求,發(fā)送(http,mq)數(shù)據(jù)至zipkin服務(wù)ROh28資訊網(wǎng)——每日最新資訊28at.com

java探針,字節(jié)碼增強(qiáng)ROh28資訊網(wǎng)——每日最新資訊28at.com

java探針,字節(jié)碼增強(qiáng)ROh28資訊網(wǎng)——每日最新資訊28at.com

顆粒度ROh28資訊網(wǎng)——每日最新資訊28at.com

代碼級(jí)ROh28資訊網(wǎng)——每日最新資訊28at.com

接口級(jí)ROh28資訊網(wǎng)——每日最新資訊28at.com

方法級(jí)ROh28資訊網(wǎng)——每日最新資訊28at.com

方法級(jí)ROh28資訊網(wǎng)——每日最新資訊28at.com

頁(yè)面UIROh28資訊網(wǎng)——每日最新資訊28at.com

*****ROh28資訊網(wǎng)——每日最新資訊28at.com

**ROh28資訊網(wǎng)——每日最新資訊28at.com

*****ROh28資訊網(wǎng)——每日最新資訊28at.com

****ROh28資訊網(wǎng)——每日最新資訊28at.com

存儲(chǔ)選擇ROh28資訊網(wǎng)——每日最新資訊28at.com

Mysql,hdfsROh28資訊網(wǎng)——每日最新資訊28at.com

In-memory,mysql,cassandra,elasticsearchROh28資訊網(wǎng)——每日最新資訊28at.com

HbaseROh28資訊網(wǎng)——每日最新資訊28at.com

Elasticsearch,h2ROh28資訊網(wǎng)——每日最新資訊28at.com

通信方式ROh28資訊網(wǎng)——每日最新資訊28at.com

-ROh28資訊網(wǎng)——每日最新資訊28at.com

http,mqROh28資訊網(wǎng)——每日最新資訊28at.com

ThriftROh28資訊網(wǎng)——每日最新資訊28at.com

GRPCROh28資訊網(wǎng)——每日最新資訊28at.com

MQ監(jiān)控ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

RocketMq,kafkaROh28資訊網(wǎng)——每日最新資訊28at.com

全局調(diào)用 統(tǒng)計(jì)ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

Trace查詢ROh28資訊網(wǎng)——每日最新資訊28at.com

不持支ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

報(bào)警ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

Jvm監(jiān)控ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

支持ROh28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)點(diǎn)ROh28資訊網(wǎng)——每日最新資訊28at.com

功能完善ROh28資訊網(wǎng)——每日最新資訊28at.com

spring-cloud-sleuth可以很好的集成zipkin , 代碼無侵入,集成非常簡(jiǎn)單 , 社區(qū)更加活躍。對(duì)外提供有query接口,更加容易二次開發(fā)ROh28資訊網(wǎng)——每日最新資訊28at.com

完全無侵入, 僅需修改啟動(dòng)方式,界面完善,功能細(xì)致。ROh28資訊網(wǎng)——每日最新資訊28at.com

完全無侵入,界面完善,支持應(yīng)用拓?fù)鋱D及單個(gè)調(diào)用鏈查詢。功能比較完善(zipkin + pinpoint)ROh28資訊網(wǎng)——每日最新資訊28at.com

缺點(diǎn)ROh28資訊網(wǎng)——每日最新資訊28at.com

代碼侵入性較強(qiáng),需要埋點(diǎn)文檔比較混亂,文檔與發(fā)布版本的符合性較低,需要依賴點(diǎn)評(píng)私服 (或者需要把他私服上的jar手動(dòng)下載下來,然后上傳到我們的私服上去)。ROh28資訊網(wǎng)——每日最新資訊28at.com

默認(rèn)使用的是http請(qǐng)求向zipkin上報(bào)信息,耗性能。跟sleuth結(jié)合可以使用rabbitMQ的方式異步來做,增加了復(fù)雜度,需要引入rabbitMQ 。數(shù)據(jù)分析比較簡(jiǎn)單。ROh28資訊網(wǎng)——每日最新資訊28at.com

不支持查詢單個(gè)調(diào)用鏈, 對(duì)外表現(xiàn)的是整個(gè)應(yīng)用的調(diào)用生態(tài)。二次開發(fā)難度較高ROh28資訊網(wǎng)——每日最新資訊28at.com

3.2版本之前BUG較多 ,網(wǎng)上反映兼容性較差 . 3.2新版本的反映情況較少依賴較多。ROh28資訊網(wǎng)——每日最新資訊28at.com

文檔ROh28資訊網(wǎng)——每日最新資訊28at.com

網(wǎng)上資料較少,僅官網(wǎng)提供的文檔,比較亂ROh28資訊網(wǎng)——每日最新資訊28at.com

文檔完善ROh28資訊網(wǎng)——每日最新資訊28at.com

文檔完善ROh28資訊網(wǎng)——每日最新資訊28at.com

文檔完善ROh28資訊網(wǎng)——每日最新資訊28at.com

開發(fā)者ROh28資訊網(wǎng)——每日最新資訊28at.com

大眾點(diǎn)評(píng)ROh28資訊網(wǎng)——每日最新資訊28at.com

TwiterROh28資訊網(wǎng)——每日最新資訊28at.com

NaverROh28資訊網(wǎng)——每日最新資訊28at.com

吳晟(華為開發(fā)者) ,目前已經(jīng)加入Apache孵化器ROh28資訊網(wǎng)——每日最新資訊28at.com

使用公司ROh28資訊網(wǎng)——每日最新資訊28at.com

大眾點(diǎn)評(píng),攜程,陸金所,同程旅游,獵聘網(wǎng),拼多多ROh28資訊網(wǎng)——每日最新資訊28at.com

TwiterROh28資訊網(wǎng)——每日最新資訊28at.com

NaverROh28資訊網(wǎng)——每日最新資訊28at.com

華為,alibaba cloud,天源迪科,當(dāng)當(dāng)網(wǎng),京東金融ROh28資訊網(wǎng)——每日最新資訊28at.com

功能

開源監(jiān)控平臺(tái),用于從服務(wù)和云原生基礎(chǔ)設(shè)施收集、分析、聚合和可視化數(shù)據(jù)。SkyWalking提供了一種簡(jiǎn)單的方法來維護(hù)分布式系統(tǒng)的清晰視圖,甚至可以跨云查看。它是一種現(xiàn)代APM,專門為云原生、基于容器的分布式系統(tǒng)設(shè)計(jì)ROh28資訊網(wǎng)——每日最新資訊28at.com

監(jiān)測(cè)對(duì)象包括:service(服務(wù)), service instance(實(shí)例), endpoint(端點(diǎn))ROh28資訊網(wǎng)——每日最新資訊28at.com

功能描述:ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 多種監(jiān)控手段,可以通過語(yǔ)言探針和service mesh獲得監(jiān)控的數(shù)據(jù)
  • 支持多重語(yǔ)言的自動(dòng)探針,包括JAVA, .NET Core和NodeJS
  • 輕量高效,無需大數(shù)據(jù)平臺(tái)和大量的服務(wù)器資源
  • 模塊化,UI ,存儲(chǔ),集群管理都有多種機(jī)制可選
  • 支持告警
  • 優(yōu)秀的可視化解決方案

架構(gòu)

SkyWalking 在邏輯上分為四個(gè)部分:Probes、Platform backend、Storage 和 UI。ROh28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片ROh28資訊網(wǎng)——每日最新資訊28at.com

探針Probe

采集tracing(調(diào)用鏈數(shù)據(jù))和metric(指標(biāo))信息并上報(bào),上報(bào)通過HTTP或者gRPC方式按要求重新格式化數(shù)據(jù)發(fā)送數(shù)據(jù)到Skywalking CollectorROh28資訊網(wǎng)——每日最新資訊28at.com

  • 自動(dòng)探針:Java支持的中間件、框架與類庫(kù)列表
  • 手動(dòng)探針:OpenTrackingApi、@Trace注解、trackId集成到日志中。

后端Platform backend

支持?jǐn)?shù)據(jù)聚合、分析和流式處理,包括跟蹤、度量和日志。

基于gRpc、Http 鏈路數(shù)據(jù)收集器,對(duì)agent傳過來的tracing和metric數(shù)據(jù)進(jìn)行整合分析通過Analysis Core模塊處理并落入相關(guān)的數(shù)據(jù)存儲(chǔ)中,同時(shí)會(huì)通過Query Core模塊進(jìn)行二次統(tǒng)計(jì)和監(jiān)控告警ROh28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)存儲(chǔ)Storage

通過開放/可插入接口存儲(chǔ) SkyWalking 數(shù)據(jù),支持多種方式存儲(chǔ)數(shù)據(jù) H2,ElasticSearch,MySQL, TiDB, InfluxDB或自定義ROh28資訊網(wǎng)——每日最新資訊28at.com

可視化平臺(tái)UI

基于GraphQL Http 高度可定制的基于 Web 的界面的可視化平臺(tái),允許 SkyWalking 最終用戶可視化和管理。ROh28資訊網(wǎng)——每日最新資訊28at.com

下載安裝

下載

官方下載地址:https://skywalking.apache.org/downloads/ROh28資訊網(wǎng)——每日最新資訊28at.com

歷史版本下載:https://archive.apache.org/dist/skywalking/ROh28資訊網(wǎng)——每日最新資訊28at.com

Rocketbot-UI 8.x:https://github.com/apache/skywalking-rocketbot-uiROh28資訊網(wǎng)——每日最新資訊28at.com

Booster UI 9.x:https://github.com/apache/skywalking-booster-uiROh28資訊網(wǎng)——每日最新資訊28at.com

注:APM已經(jīng)集成UI,不需要單獨(dú)下載與部署ROh28資訊網(wǎng)——每日最新資訊28at.com

Window安裝

  • 安裝APM (8.9.1,h2)
  • 下載apache-skywalking-apm-bin
  • 解壓執(zhí)行命名 ~/bin/startup.bat
  • 訪問http://localhost:8080

圖片圖片ROh28資訊網(wǎng)——每日最新資訊28at.com

Docker安裝

  • 安裝OAP

下載鏡像ROh28資訊網(wǎng)——每日最新資訊28at.com

docker pull apache/skywalking-oap-server:8.9.1

啟動(dòng)容器ROh28資訊網(wǎng)——每日最新資訊28at.com

docker run --name oap -p 12800:12800 -p 11800:11800 -p 1234:1234 --restart always -d apache/skywalking-oap-server:8.9.1
  • 安裝UI

下載鏡像ROh28資訊網(wǎng)——每日最新資訊28at.com

docker pull apache/skywalking-ui

啟動(dòng)容器ROh28資訊網(wǎng)——每日最新資訊28at.com

docker run --name oap-ui -p 18080:8080 --restart always -d -e SW_OAP_ADDRESS=http://localhost:12800 apache/skywalking-ui

訪問http://localhost:18080ROh28資訊網(wǎng)——每日最新資訊28at.com

系統(tǒng)集成

  • 探針

負(fù)責(zé)進(jìn)行數(shù)據(jù)的收集,包含了Tracing和Metrics的數(shù)據(jù),agent會(huì)被安裝到服務(wù)所在的服務(wù)器上,以方便數(shù)據(jù)的獲取。探針使用gRPC協(xié)議與OAP平臺(tái)通信并上報(bào)數(shù)據(jù)。ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 可觀測(cè)性分析平臺(tái) OAP

接收探針發(fā)送的數(shù)據(jù),并在內(nèi)存中使用分析引擎(Analysis Core)進(jìn)行數(shù)據(jù)的整合運(yùn)算,然后將數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的存儲(chǔ)介質(zhì)上,比如 Elasticsearch、MySQL等存儲(chǔ)服務(wù)。同時(shí)OAP還使用查詢引擎(Query Core)提供HTTP查詢接口。OAP默認(rèn)監(jiān)聽兩個(gè)端口gRPC協(xié)議端口11800、HTTP端口12800,gRPC用于探針上報(bào)數(shù)據(jù),HTTP端口用于UI連接OAP平臺(tái)獲取數(shù)據(jù)。ROh28資訊網(wǎng)——每日最新資訊28at.com

  • UI

Skywalking 提供單獨(dú)的UI進(jìn)行數(shù)據(jù)的查看,UI調(diào)用OAP提供的接口,獲取對(duì)應(yīng)的數(shù)據(jù)根據(jù)UI模板的配置進(jìn)行展示。Skywalking UI與OAP之間使用Http協(xié)議進(jìn)行通信。Skywalking UI默認(rèn)監(jiān)聽8080端口提供Web服務(wù)。ROh28資訊網(wǎng)——每日最新資訊28at.com

Java AgentROh28資訊網(wǎng)——每日最新資訊28at.com

  • 下載:Java Agent v8.11.0
  • 目錄結(jié)構(gòu)

activations                 # 工具包,默認(rèn)加載。ROh28資訊網(wǎng)——每日最新資訊28at.com

bootstrap-plugins           # 啟動(dòng)插件,默認(rèn)加載。ROh28資訊網(wǎng)——每日最新資訊28at.com

config                      # 配置文件ROh28資訊網(wǎng)——每日最新資訊28at.com

logs                        # 日志ROh28資訊網(wǎng)——每日最新資訊28at.com

optional-plugins            # 可選擴(kuò)展插件,啟動(dòng)不加載,如需加載將其移到到plugins目錄下。ROh28資訊網(wǎng)——每日最新資訊28at.com

optional-reporter-plugins   # 可選統(tǒng)計(jì)類插件,啟動(dòng)不加載。ROh28資訊網(wǎng)——每日最新資訊28at.com

plugins                     # 服務(wù)類插件ROh28資訊網(wǎng)——每日最新資訊28at.com

skywalking-agent.jar        # 客戶端主程序,需要被服務(wù)啟動(dòng)是引用。ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 使用:項(xiàng)目啟動(dòng)命令添加-javaagent:/path/skywalking-agent/skywalking-agent.jar
  • 示例:
java -javaagent:/path/skywalking-agent/skywalking-agent.jar -jar your-app.jar
  • 配置:
  • 系統(tǒng)屬性:-Dskywalking.[config]=[value]
  • 代理參數(shù): -javaagent:skywalking-agent.jar=[config]=[value],...
  • 系統(tǒng)環(huán)境變量:agent.service_name=${SW_AGENT_NAME:Your_ApplicationName},如果SW_AGENT_NAME 您的操作系統(tǒng)中存在環(huán)境變量,并且其值為skywalking-agent-demo,則agent.service_name此處的值將被覆蓋為skywalking-agent-demo,否則將被設(shè)置為Your_ApplicationName。
  • 修改目錄/path/skywalking-agent/config/agent.config文件
// todo//服務(wù)名稱agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}// OAP服務(wù)地址collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

代理選項(xiàng) > System.Properties(-D) > 系統(tǒng)環(huán)境變量 > 配置文件ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 官方文檔

Client JavaScriptROh28資訊網(wǎng)——每日最新資訊28at.com

  • 安裝
npm install skywalking-client-js --save
  • 注冊(cè)
import ClientMonitor from 'skywalking-client-js';   // Report collected data to `http:// + window.location.host + /browser/perfData` in default   ClientMonitor.register({      collector: 'http://127.0.0.1:8080',      service: 'test-ui',      pagePath: '/current/page/name',      serviceVersion: 'v1.0.0',   });
// options   {      // 參考方法文檔   }
  • 手動(dòng)收集指標(biāo)頁(yè)面加載時(shí)或任何其他有意義的時(shí)刻的指標(biāo),PV

register時(shí)設(shè)置autoTracePerf:falseROh28資訊網(wǎng)——每日最新資訊28at.com

  • 調(diào)用setPerformance
import ClientMonitor from 'skywalking-client-js';   ClientMonitor.setPerformance({      collector: 'http://127.0.0.1:8080',      service: 'browser-app',      serviceVersion: '1.0.0',      pagePath: location.href,      useFmp: true   });
  • SPA

register時(shí)設(shè)置enableSPA:true,開啟單頁(yè)面應(yīng)用基于hashchange event觸發(fā)指標(biāo)采集行為ROh28資訊網(wǎng)——每日最新資訊28at.com

或者通過以下方法手動(dòng)處理,在上報(bào)數(shù)據(jù)時(shí)手動(dòng)更新頁(yè)面名稱,當(dāng)調(diào)用該方法時(shí),默認(rèn)情況下將重新報(bào)告頁(yè)面PVROh28資訊網(wǎng)——每日最新資訊28at.com

app.on('routeChange', function (next) {      ClientMonitor.setPerformance({         collector: 'http://127.0.0.1:8080',         service: 'browser-app',         serviceVersion: '1.0.0',         pagePath: location.href,         useFmp: true      });   });
  • 跟蹤請(qǐng)求數(shù)據(jù)支持跟蹤這些(XMLHttpRequest和Fetch API)兩種模式的數(shù)據(jù)請(qǐng)求。同時(shí),支持基于XMLHttpRequest和fetch的跟蹤庫(kù)和工具,如Axios、SuperAgent、OpenApi等
// Angular   import { ErrorHandler } from '@angular/core';   import ClientMonitor from 'skywalking-client-js';   export class AppGlobalErrorhandler implements ErrorHandler {   handleError(error) {      ClientMonitor.reportFrameErrors({         collector: 'http://127.0.0.1',         service: 'angular-demo',         pagePath: '/app',         serviceVersion: 'v1.0.0',      }, error);   }   }   @NgModule({   ...   providers: [{provide: ErrorHandler, useClass: AppGlobalErrorhandler}]   })   class AppModule {}   ```   ```js   // React   class ErrorBoundary extends React.Component {   constructor(props) {      super(props);      this.state = { hasError: false };   }   static getDerivedStateFromError(error) {      // Update state so the next render will show the fallback UI.      return { hasError: true };   }   componentDidCatch(error, errorInfo) {      // You can also log the error to an error reporting service      ClientMonitor.reportFrameErrors({         collector: 'http://127.0.0.1',         service: 'react-demo',         pagePath: '/app',         serviceVersion: 'v1.0.0',      }, error);   }   render() {      if (this.state.hasError) {         // You can render any custom fallback UI         return <h1>Something went wrong.</h1>;      }      return this.props.children;    }   }   <ErrorBoundary>   <MyWidget />   </ErrorBoundary>   ```   ```js   // Vue   Vue.config.errorHandler = (error) => {   ClientMonitor.reportFrameErrors({      collector: 'http://127.0.0.1',      service: 'vue-demo',      pagePath: '/app',      serviceVersion: 'v1.0.0',   }, error);   }   ```
  • 官方文檔

skywalking-client-jsROh28資訊網(wǎng)——每日最新資訊28at.com

監(jiān)測(cè)對(duì)象

  • 服務(wù)(Service)
對(duì)請(qǐng)求提供端點(diǎn)的單個(gè)應(yīng)用或負(fù)載,在使用埋點(diǎn)、代理或 SDK 的時(shí)候,你可以定義服務(wù)的名字。如果不定義的話,SkyWalking 會(huì)使用在agent.conf中配置的默認(rèn)服務(wù)名稱。
  • 服務(wù)實(shí)例(Instance)
服務(wù)組中的每個(gè)單獨(dú)的工作負(fù)載都稱為一個(gè)實(shí)例。就像pods在 Kubernetes 中一樣,它不需要是單個(gè)操作系統(tǒng)進(jìn)程,但是,如果您使用儀器代理,則實(shí)例實(shí)際上是一個(gè)真正的操作系統(tǒng)進(jìn)程。
  • 端點(diǎn)(Endpoint)
用于傳入請(qǐng)求的服務(wù)中的路徑,例如 HTTP URI 路徑或 gRPC 服務(wù)類 + 方法簽名。

UI指標(biāo)

通過配置文件定義需要關(guān)注的指標(biāo) 通過特定的分析語(yǔ)言計(jì)算指標(biāo)ROh28資訊網(wǎng)——每日最新資訊28at.com

UI包括以下幾個(gè)部分:ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 儀表盤
  • 拓?fù)鋱D
  • 追蹤
  • 性能剖析
  • 日志
  • 告警
  • 事件
  • 調(diào)試

儀表盤ROh28資訊網(wǎng)——每日最新資訊28at.com

APM

  • Global

Services Load(CPM / PPM):服務(wù)每分鐘請(qǐng)求數(shù)ROh28資訊網(wǎng)——每日最新資訊28at.com

Slow Services(ms):慢響應(yīng)服務(wù)(按照響應(yīng)時(shí)間排序)ROh28資訊網(wǎng)——每日最新資訊28at.com

Un-Health Services (Apdex):Apdex分?jǐn)?shù)(1為滿分)ROh28資訊網(wǎng)——每日最新資訊28at.com

Slow Endpoints (ms):慢Endpoint的平均響應(yīng)時(shí)間ROh28資訊網(wǎng)——每日最新資訊28at.com

Global Response Latency(percentile in ms):響應(yīng)時(shí)間百分比ROh28資訊網(wǎng)——每日最新資訊28at.com

Global Heatmap:服務(wù)響應(yīng)時(shí)間熱力分布圖,根據(jù)時(shí)間段內(nèi)不同響應(yīng)時(shí)間的數(shù)量顯示顏色深度顏色越深,請(qǐng)求越多。ROh28資訊網(wǎng)——每日最新資訊28at.com

  • Service
  • Service Apdex 數(shù)字:當(dāng)前服務(wù)的Apdex分?jǐn)?shù);
  • Successful Rate(%):當(dāng)前服務(wù)的請(qǐng)求成功率;
  • Service Load (CPM / PPM)數(shù)字:每分鐘調(diào)用次數(shù)(CPM),如果是TCP,表示每分鐘的數(shù)據(jù)包數(shù)(PPM);
  • Service Avg Response Time(ms):當(dāng)前服務(wù)平均響應(yīng)時(shí)間;
  • Service Apdex 折線圖:當(dāng)前服務(wù)一段時(shí)間內(nèi)的Apdex分?jǐn)?shù);
  • Service Response Time Percentile(ms):當(dāng)前服務(wù)的百分比響應(yīng)延時(shí);
  • Successful Rate(%)折線圖:當(dāng)前服務(wù)一段時(shí)間內(nèi)的請(qǐng)求成功率;
  • Service Load (CPM / PPM)折線圖:當(dāng)前服務(wù)一段時(shí)間內(nèi)的每分鐘調(diào)用次數(shù);
  • Service Throughput(Bytes):服務(wù)吞吐量,只適用于TCP服務(wù);
  • Message Queue Consuming Count:消息隊(duì)列消費(fèi)數(shù);
  • Message Queue Avg Consuming Latency(ms):消息隊(duì)列平均延遲時(shí)間;
  • Service Instances Load(CPM / PPM):每個(gè)實(shí)例每分鐘請(qǐng)求數(shù);
  • Slow Service Instance(ms):每個(gè)服務(wù)實(shí)例平均延時(shí);
  • Service Instance Successful Rate(%):服務(wù)實(shí)例的請(qǐng)求成功率。
  • Instance
  • instance_jvm_memory_heap(堆內(nèi)存使用)
  • instance_jvm_memory_heap_max(最大堆內(nèi)存)
  • instance_jvm_memory_noheap(直接內(nèi)存使用)
  • instance_jvm_memory_noheap_max(最大直接內(nèi)存)
  • Service Instance Load(CPM / PPM):當(dāng)前實(shí)例每分鐘調(diào)用數(shù);
  • Service Instance Throughput(Bytes):當(dāng)前實(shí)例的吞吐流量;
  • Service Instance Successful Rate(%):當(dāng)前實(shí)例調(diào)用成功比率;
  • Service Instance Latency(ms):當(dāng)前實(shí)例響應(yīng)延時(shí);
  • JVM CPU(Java Service)%:當(dāng)前實(shí)例JVM的CPU占用百分比(相對(duì)于主機(jī));
  • JVM Memory (Java Service)(MB):當(dāng)前實(shí)例的內(nèi)存占用大小;
  • JVM GC Time(ms):JVM 垃圾回收時(shí)間,包含young gc和old gc;
  • JVM GC Count:JVM垃圾回收次數(shù),包含young gc count和old gc count;
  • JVM Thread Count(java service):當(dāng)前實(shí)例的線程數(shù);
  • JVM Thread State Count (Java Service):當(dāng)前實(shí)例的各狀態(tài)線程數(shù);
  • JVM Class Count (Java Service):當(dāng)前實(shí)例類的計(jì)數(shù)。
  • Endpoint
  • Endpoint Load in Current Service(CPM / PPM):當(dāng)前服務(wù)每個(gè)端點(diǎn)的每分鐘請(qǐng)求數(shù);
  • Slow Endpoints in Current Service(ms):當(dāng)前服務(wù)每個(gè)端點(diǎn)的平均響應(yīng)時(shí)間;
  • Successful Rate in Current Service(%):當(dāng)前服務(wù)每個(gè)端點(diǎn)的請(qǐng)求成功率;
  • Endpoint Load:當(dāng)前端點(diǎn)每個(gè)時(shí)間段的請(qǐng)求量;
  • Endpoint Avg Response Time(ms):當(dāng)前端點(diǎn)每個(gè)時(shí)間段的平均請(qǐng)求響應(yīng)時(shí)間;
  • Endpoint Response Time Percentile(ms):當(dāng)前端點(diǎn)每個(gè)時(shí)間段的響應(yīng)時(shí)間占比;
  • Endpoint Successful Rate(%):當(dāng)前端點(diǎn)每個(gè)時(shí)間段的請(qǐng)求成功率;

Database

  • Database Avg Response Time(ms):當(dāng)前數(shù)據(jù)庫(kù)平均響應(yīng)時(shí)間;
  • Database Access Successful Rate(%):當(dāng)前數(shù)據(jù)庫(kù)訪問成功率;
  • Database Traffic(CPM: Calls Per Minute):當(dāng)前數(shù)據(jù)庫(kù)每分鐘請(qǐng)求數(shù);
  • Database Access Latency Percentile(ms):當(dāng)前數(shù)據(jù)庫(kù)響應(yīng)延遲時(shí)間的百分比;
  • Slow Statements(ms):慢查詢,按照?qǐng)?zhí)行時(shí)間排序;
  • All Database Loads(CPM: Calls Per Minute):所有數(shù)據(jù)庫(kù)的請(qǐng)求次數(shù)排序;
  • Un-Health Databases (Successful Rate):所有數(shù)據(jù)庫(kù)請(qǐng)求成功率排序。

SelfObservability

自監(jiān)控,OAP服務(wù)端的各項(xiàng)指標(biāo)ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 修改配置config/application.yml
# 將-修改為default   prometheus-fetcher:     selector: ${SW_PROMETHEUS_FETCHER:default}     #default:     #   active: ${SW_PROMETHEUS_FETCHER_ACTIVE:true}   # 改none為prometheus   telemetry:     selector: ${SW_TELEMETRY:prometheus}      prometheus:       host: ${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0}       port: ${SW_TELEMETRY_PROMETHEUS_PORT:1234}
  • 如果telemetry有調(diào)整,則對(duì)應(yīng)修改修改config/fetcher-prom-rules/self.yaml
fetcherInterval: PT15S   fetcherTimeout: PT10S   metricsPath: /metrics   staticConfig:      # 改為上步中telemetry配置的ip      targets:         - url: http://localhost:1234             sslCaFilePath:      labels:         service: oap-server
  • 檢查:curl http://localhost:1234/metrics

Event

Istio、K8s

VM

Web Browser

對(duì)前端也有一定的監(jiān)控,通過Skywalking-Client-js組件來操作,包括Web App、Pages兩個(gè)指標(biāo)。ROh28資訊網(wǎng)——每日最新資訊28at.com

拓?fù)鋱DROh28資訊網(wǎng)——每日最新資訊28at.com

  • 服務(wù)選擇器 支持顯示直接關(guān)系,包括上游和下游;
  • 自定義組 提供服務(wù)組的任意子拓?fù)涔δ?,但是分組的信息是保存在瀏覽器內(nèi)的;
  • 服務(wù)菜單 當(dāng)您單擊任何服務(wù)時(shí)打開。該圖形可以對(duì)所選擇的服務(wù)進(jìn)行度量、跟蹤和告警查詢;
  • 服務(wù)指標(biāo)的關(guān)系 提供服務(wù)RPC交互的度量以及這兩個(gè)服務(wù)的實(shí)例。

追蹤ROh28資訊網(wǎng)——每日最新資訊28at.com

看每個(gè)接口的調(diào)用鏈,每個(gè)鏈路耗時(shí)、狀態(tài)。如果為失敗展示錯(cuò)誤信息,如果是數(shù)據(jù)庫(kù),會(huì)展示查詢語(yǔ)句。另外可以根據(jù)追蹤tid(trace id)和標(biāo)記(tag)進(jìn)行篩選。ROh28資訊網(wǎng)——每日最新資訊28at.com

性能剖析ROh28資訊網(wǎng)——每日最新資訊28at.com

日志ROh28資訊網(wǎng)——每日最新資訊28at.com

告警ROh28資訊網(wǎng)——每日最新資訊28at.com

事件ROh28資訊網(wǎng)——每日最新資訊28at.com

調(diào)試ROh28資訊網(wǎng)——每日最新資訊28at.com

日志集成

支持logback、log4j、log4j2日志框架集成,基于gRpc通信協(xié)議實(shí)現(xiàn)日志采集。ROh28資訊網(wǎng)——每日最新資訊28at.com

以logback為例:ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 引入依賴
<dependency>            <groupId>org.apache.skywalking</groupId>            <artifactId>apm-toolkit-logback-1.x</artifactId>            <version>8.9.0</version>        </dependency>
  • 修改logback.xml配置
<!-- ... -->      <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">         <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">                  <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>            </layout>         </encoder>      </appender>      <root level="INFO">         <!-- ... -->         <appender-ref ref="grpc-log"/>      </root>
  • 修改agent配置 ~/config/agent.config
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:0.0.0.0}   plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}   plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}    plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
  • 官方示例

https://skywalking.apache.org/docs/skywalking-java/v8.11.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/ROh28資訊網(wǎng)——每日最新資訊28at.com

監(jiān)控方法

通過@Trace注解標(biāo)記需要追蹤的方法調(diào)用情況ROh28資訊網(wǎng)——每日最新資訊28at.com

  • 引入依賴
<dependency>         <groupId>org.apache.skywalking</groupId>         <artifactId>apm-toolkit-trace</artifactId>         <version>8.9.0</version>      </dependency>
  • 修改代碼
@Trace   @GetMapping("/printLog")   public String printLog() {      Logger.info("traceId:{}",TraceContext.traceId())      return "ok";   }

告警接入

  • 規(guī)則修改配置config/alarm-settings.yml
  • 鉤子支持WebHook、GRPCHook、SlackHook、WechatHook、DingtalkHook、FeishuHook實(shí)現(xiàn)告警信息推送

場(chǎng)景

指標(biāo)性統(tǒng)計(jì)

一個(gè)服務(wù)的 TBS 的正確率、成功率、流量等,這是我們常見的針對(duì)單個(gè)指標(biāo)或者某一個(gè)數(shù)據(jù)庫(kù)的,這就是 Metrics 單指標(biāo)分析ROh28資訊網(wǎng)——每日最新資訊28at.com

Tracing 分布式追蹤

一次請(qǐng)求的范圍,也就是我們從瀏覽器或者手機(jī)端發(fā)起任何的一次調(diào)用,甚至我們可以再推廣一點(diǎn),是一次業(yè)務(wù)交易,比如說一次訂購(gòu)的過程,從瀏覽商品到最后下定單、支付、物流、最后交到我們的手上。這是一個(gè)流程化的東西,我們需要軌跡,需要去追蹤。ROh28資訊網(wǎng)——每日最新資訊28at.com

Logging 日志記錄

我們程序在執(zhí)行的過程中間發(fā)生了一些日志,會(huì)一幀一幀地跳出來給大家去記錄這個(gè)東西,這是日志記錄。ROh28資訊網(wǎng)——每日最新資訊28at.com

關(guān)鍵詞

  • Topology:拓?fù)?/li>
  • Trace:追蹤
  • Metrics:度量
  • Span:
  • Apdex:是根據(jù)設(shè)定的閾值和響應(yīng)時(shí)間結(jié)合考慮的衡量標(biāo)準(zhǔn)。它是滿意響應(yīng)時(shí)間和不滿意響應(yīng)時(shí)間相對(duì)于總響應(yīng)時(shí)間的比率。它衡量的是用戶對(duì)你的服務(wù)的滿意程度,因?yàn)閭鹘y(tǒng)的指標(biāo)(如平均響應(yīng)時(shí)間)可能很快就會(huì)容易形成偏差。
  • percentile:標(biāo)簽含義(p50、p75、p90、p95、p99):例如p99為1000ms, 這意味著 99% 的請(qǐng)求應(yīng)該比1000ms更快

結(jié)束語(yǔ)

Apache SkyWalking是一款功能強(qiáng)大的APM系統(tǒng),可以幫助開發(fā)人員和運(yùn)維人員更好地了解分布式系統(tǒng)的性能狀況。通過使用SkyWalking,可以提高應(yīng)用程序的穩(wěn)定性和性能,降低運(yùn)維成本。ROh28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-17160-0.html一文帶你了解SkyWalking

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: AIDL在Android應(yīng)用程序中的重要作用

下一篇: Python編程必備:掌握列表遍歷的六種神級(jí)技巧!

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 秦安县| 阳原县| 耿马| 额尔古纳市| 辛集市| 赣榆县| 亳州市| 宁国市| 龙州县| 阳曲县| 女性| 吴桥县| 青州市| 大安市| 雷波县| 三明市| 理塘县| 保定市| 绥滨县| 崇阳县| 水城县| 台中市| 铁力市| 漾濞| 沁水县| 德清县| 龙南县| 顺昌县| 龙川县| 衡东县| 津市市| 惠州市| 江北区| 资溪县| 林州市| 玛纳斯县| 大关县| 南康市| 封开县| 伽师县| 仙游县|