一、介紹
·skywalking-collector:鍊路資料歸集器,資料可以儲存在H2或ElasticSearch、MySQL
·skywalking-web:web的可視化管理背景,可以檢視歸集的資料
·skywalking-agent:探針,用來收集和推送資料到歸集器
二、界面展示
·儀表盤
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP35EMrR1T5FkeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1MTO2UTO0UTMwMDNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
·服務追蹤
三、skyWalking的配置
配置檔案在skyWalking解壓目錄的/config/application.yml
- 在nacos注冊中心中注冊
skyWalking-分布式鍊路追蹤搭建 -
使用mysql存儲鍊路資料
指定為mysql存儲
storage:
selector: ${SW_STORAGE:mysql} 指定為mysql存儲
MySQL的相關配置
- 告警配置 位于skywalking安裝目錄下的config檔案夾下 alarm-settings.yml 檔案
skyWalking-分布式鍊路追蹤搭建
metrics-name:oal腳本中的度量名稱
Threshold: 門檻值,與metrics-name和下面的比較符号相比對
op :比較操作符,可以設定>,<,=
period :多久檢查一次目前的名額資料是否符合告警規則,機關分鐘
count :達到多少次後,發送告警消息
silence-period :在多久之内,忽略相同的告警消息
message :告警消息内容
include-names :本規則告警生效的服務清單
在産生告警之後,可以指定調用通知接口,通知項目負責人,接口可以實作郵箱或者短信通知
四 skyWalking的使用
skyWalking是低入侵的服務追蹤應用,是通過skyWalking-agent探針來收集服務追蹤的鍊路。是以,在使用skyWalking時,需要有agent探針
1. skyWalking-agent探針,目錄結構如下
我這裡用到了請求鍊路忽略-Dskywalking.trace.ignore_path=,是以要把可選檔案夾optional-plugins裡的apm-trace-ignore-plugin-8.5.0.jar複制到plugins檔案夾下
2. skyWalking-agent配置,配置檔案在agent/config/agent.config
配置該服務在skyWalking中的名稱,預設為Your_ApplicationName,可以通過配置覆寫的方式覆寫
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
skywalking後端服務位址
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
3. 在Idea中啟動服務(本地要有agent探針,且探針配置中需要指定skyWalking後端服務的位址)
在VM選項中加入
-javaagent:\agent\skywalking-agent.jar -Dskywalking.agent.service_name=hierway_basic -Dskywalking.trace.ignore_path=/doc.html/,/Lettuce/(要忽略請求鍊路的路徑,**代表通配符)
解釋:-javaagent:\agent\skywalking-agent.jar 這部分表示本地agent探針的路徑
-Dskywalking.agent.service_name=hierway_basic 指定服務名稱,覆寫agent原來的配置
-Dskywalking.trace.ignore_path=/doc.html/,/Lettuce/,/actuator/,/swagger-resources/ 後面這部分表示不需要鍊路追蹤的請求
4. Jar啟動,運作以下指令,原理和idae啟動一樣
java -javaagent:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=hierway_userDskywalking.trace.ignore_path=/doc.html/**,/Lettuce/**,/actuator/**,/swagger-resources/** -jar hierway-user.jar
5. 代碼中使用到了,skyWalking生成的鍊路ID,用來快速定位到出錯的請求
引入依賴
<!--skyWalking trace工具包, 用來傳回服務追蹤的ID-->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.5.0</version>
</dependency>
在代碼中,捕獲到的異常,生成服務最終id,儲存在日志中,用來在skyWalking上快速定位異常