skywalking是分布式微服務(wù)請求鏈路跟蹤的框架品擎,可以實(shí)現(xiàn)無侵入的鏈路跟蹤义辕、統(tǒng)計(jì)双妨、拓?fù)浼軜?gòu)繪制等,本文介紹如何快速搭建
下載&安裝
https://skywalking.apache.org/downloads/
可以選擇下載: https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm-8.7.0.tar.gz
Spring Boot接入
對代碼沒有任何侵入蔓腐,連jar包都不需要引入矩乐,只需要修改啟動命令就可以了
-javaagent:apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -Dskywalking.agent.service_name=tenmao-mybatis -Dskywalking.collector.backend_service=localhost:8080
查看接入效果
代碼中獲取traceId
- 添加依賴
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.7.0</version>
<scope>provided</scope>
</dependency>
- 獲取traceId
String traceId = TraceContext.traceId();
日志中輸出traceId
- 添加依賴
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.7.0</version>
</dependency>
- 日志配置
encoder使用ch.qos.logback.core.encoder.LayoutWrappingEncoder
layout使用
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder 不能使用默認(rèn)的PatternLayoutEncoder -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<!-- 使用skywalking的TraceIdPatternLogbackLayout-->
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>${commonPattern}</pattern>
</layout>
<charset>UTF-8</charset>
</encoder>
</appender>
常見錯(cuò)誤
-
First received frame was not SETTINGS. Hex dump for first 5 bytes: 485454502f
- 端口不匹配,可以嘗試使用默認(rèn)端口11800