天天看點

skyWalking-分布式鍊路追蹤搭建

一、介紹

·skywalking-collector:鍊路資料歸集器,資料可以儲存在H2或ElasticSearch、MySQL

·skywalking-web:web的可視化管理背景,可以檢視歸集的資料

·skywalking-agent:探針,用來收集和推送資料到歸集器

二、界面展示

·儀表盤

skyWalking-分布式鍊路追蹤搭建

·服務追蹤

skyWalking-分布式鍊路追蹤搭建

三、skyWalking的配置

配置檔案在skyWalking解壓目錄的/config/application.yml

  1. 在nacos注冊中心中注冊
    skyWalking-分布式鍊路追蹤搭建
  2. 使用mysql存儲鍊路資料

    指定為mysql存儲

storage:
  selector: ${SW_STORAGE:mysql} 指定為mysql存儲
           

MySQL的相關配置

skyWalking-分布式鍊路追蹤搭建
  1. 告警配置 位于skywalking安裝目錄下的config檔案夾下 alarm-settings.yml 檔案
    skyWalking-分布式鍊路追蹤搭建

metrics-name:oal腳本中的度量名稱

Threshold: 門檻值,與metrics-name和下面的比較符号相比對

op :比較操作符,可以設定>,<,=

period :多久檢查一次目前的名額資料是否符合告警規則,機關分鐘

count :達到多少次後,發送告警消息

silence-period :在多久之内,忽略相同的告警消息

message :告警消息内容

include-names :本規則告警生效的服務清單

在産生告警之後,可以指定調用通知接口,通知項目負責人,接口可以實作郵箱或者短信通知

skyWalking-分布式鍊路追蹤搭建

四 skyWalking的使用

skyWalking是低入侵的服務追蹤應用,是通過skyWalking-agent探針來收集服務追蹤的鍊路。是以,在使用skyWalking時,需要有agent探針

1. skyWalking-agent探針,目錄結構如下

skyWalking-分布式鍊路追蹤搭建

我這裡用到了請求鍊路忽略-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後端服務的位址)

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上快速定位異常

skyWalking-分布式鍊路追蹤搭建