SkyWalking 的核心是數(shù)據(jù)分析和度量結(jié)果的存儲(chǔ)平臺(tái)胚迫,通過 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量數(shù)據(jù),SkyWalking Collecter 對(duì)數(shù)據(jù)進(jìn)行分析和聚合唾那,存儲(chǔ)到 Elasticsearch访锻、H2、MySQL闹获、TiDB 等其一即可期犬,最后我們可以通過 SkyWalking UI 的可視化界面對(duì)最終的結(jié)果進(jìn)行查看。Skywalking 支持從多個(gè)來源和多種格式收集數(shù)據(jù):多種語(yǔ)言的 Skywalking Agent 昌罩、Zipkin v1/v2 哭懈、Istio 勘測(cè)、Envoy 度量等數(shù)據(jù)格式茎用。
skywalking可以實(shí)現(xiàn)無侵入性的監(jiān)控項(xiàng)目運(yùn)行的指標(biāo)和分布式調(diào)用鏈路遣总。
skywalking的github源碼
1. 文件下載
選擇對(duì)應(yīng)的版本,使用tar zxvf apache-skywalking-apm-8.2.0.tar.gz
解壓到目錄中轨功。
2. 啟動(dòng)oap項(xiàng)目
啟動(dòng)oap項(xiàng)目收集項(xiàng)目運(yùn)行的數(shù)據(jù)旭斥,并持久化到介質(zhì)中。
進(jìn)入:apache-skywalking-apm-bin/config/application.yml
目錄下古涧。
默認(rèn)使用h2內(nèi)存緩存來保存數(shù)據(jù)(數(shù)據(jù)不能持久化垂券,無序本地安裝h2。使用默認(rèn)配置就可以開啟skywalking)
下面使用mysql作為存儲(chǔ)介質(zhì):
storage:
selector: ${SW_STORAGE:mysql}
mysql:
properties:
jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/sky"}
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:123456}
dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
maxSizeOfArrayColumn: ${SW_STORAGE_MAX_SIZE_OF_ARRAY_COLUMN:20}
numOfSearchableValuesPerTag: ${SW_STORAGE_NUM_OF_SEARCHABLE_VALUES_PER_TAG:2}
注意:需要將mysql的驅(qū)動(dòng)包放入到apache-skywalking-apm-bin/oap-libs
目錄下,否則會(huì)出現(xiàn)找不到驅(qū)動(dòng)的異常菇爪。
在apache-skywalking-apm-bin/bin
中執(zhí)行sh oapService.sh
命令算芯。
出現(xiàn)下面命令表示啟動(dòng)成功:
org.eclipse.jetty.server.Server - 399 [main] INFO [] - Started @13133ms
執(zhí)行:可以得到進(jìn)程id,可以使用kill -9 Pid
關(guān)閉服務(wù)凳宙。
ps -ef | grep oap
3. 啟動(dòng)UI項(xiàng)目
進(jìn)入apache-skywalking-apm-bin/webapp/webapp.yml
配置文件中熙揍。修改項(xiàng)目端口號(hào):
server:
port: 9001
啟動(dòng)項(xiàng)目:apache-skywalking-apm-bin/bin
中執(zhí)行sh webappService.sh
命令。
4. 監(jiān)控實(shí)際項(xiàng)目
在實(shí)際項(xiàng)目中氏涩,啟動(dòng)項(xiàng)只需要配置
--javaagent:/Users/xxx/Documents/apache-skywalking-apm-bin/agent/skywalking-agent.jar
便可以完成skywalking數(shù)據(jù)的上報(bào)届囚。
項(xiàng)目會(huì)讀取skywalking-apm-bin/agent/config
目錄下的配置信息。
比較常用的配置
# The service name in UI(在UI上改服務(wù)展示的名字)
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# Backend service addresses(即oap項(xiàng)目的地址).
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
【注意:實(shí)際項(xiàng)目中是尖,每一臺(tái)服務(wù)器中只需要一個(gè)agent目錄即可】意系。
service_name
的配置可以在啟動(dòng)項(xiàng)中進(jìn)行動(dòng)態(tài)的配置。
-javaagent:/Users/xxx/Documents/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=xx
5. 運(yùn)行結(jié)果
調(diào)用實(shí)際的項(xiàng)目
可以看到調(diào)用鏈路:http://localhost:9001/