docs/Spring全家桶/SpringCloudAlibaba/SpringCloudAlibabaSkywalking.md
Skywalking ɹڿԴɣԭ OneAPM ʦĿǰڻΪԴύ Apache IJƷͬʱ Zipkin/Pinpoint/CAT ˼·ַ֧ʽ㡣һڷֲʽٵӦóܼϵͳչһ OpenTracing ּ֯ƽصһЩ淶ͱ
SkyWalkingҪļģ:
mkdir skywalking-docker
ƴ
version: '3'
services:
elasticsearch7:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
container_name: elasticsearch7
restart: always
ports:
- 9023:9200
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
networks:
- skywalking
volumes:
- elasticsearch7:/usr/share/elasticsearch/data
oap:
image: apache/skywalking-oap-server:8.0.1-es7
container_name: oap
depends_on:
- elasticsearch7
links:
- elasticsearch7
restart: always
ports:
- 9022:11800
- 9021:12800
networks:
- skywalking
volumes:
- ./ext-config:/skywalking/ext-config
ui:
image: apache/skywalking-ui:8.0.1
container_name: ui
depends_on:
- oap
links:
- oap
restart: always
ports:
- 9020:8080
environment:
SW_OAP_ADDRESS: oap:12800
networks:
- skywalking
networks:
skywalking:
driver: bridge
volumes:
elasticsearch7:
driver: local
ƴ
ע븲 oap е /skywalking/config Ŀ¼µļǿ docker йһ /skywalking/ext-config Ŀ¼ļĿ¼мɡ
docker-compose -f skywalking.yaml up
ƴ
http://(װSkyWalkingIP):9020
ƴ
ȫ־ traceId ʹã
<dependency>
<groupId>org.apache.skywalking</groupId>
apm-toolkit-logback-1.x
<version>8.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
apm-toolkit-trace
<version>8.0.1</version>
</dependency>
ƴ
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="logger.path" value="/mnt/logs"/>
<!-- ɫ־ -->
<!-- ɫ־Ⱦ -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- ɫ־ʽ -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- ̨ -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<charset>UTF-8</charset>
</encoder>
<!-- ConsoleAppender־̨ -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>
<![CDATA[%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} [%X{tid}] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}]]></Pattern>
</layout>
</encoder>
<!-- ļ -->
<!-- ʱ levelΪ DEBUG ־ -->
<!--
<file>${logger.path}/log_debug.log</file>
<!–־ļʽ–>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!– ַ –>
</encoder>
<!– ־¼ĹԣڣС¼ –>
<rollingPolicy >
<!– ־鵵 –>
<fileNamePattern>${logger.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy >
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!–־ļ–>
<maxHistory>15</maxHistory>
</rollingPolicy>
<!– ־ļֻ¼debug –>
<filter >
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
-->
<!-- ʱ levelΪ INFO ־ -->
<!-- ڼ¼־ļ·ļ -->
<file>${logger.path}/log_info.log</file>
<!--־ļʽ-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- ־¼ĹԣڣС¼ -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- ÿ־鵵·Լʽ -->
<fileNamePattern>${logger.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--־ļ-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- ־ļֻ¼info -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- ʱ levelΪ WARN ־ -->
<!--
<!– ڼ¼־ļ·ļ –>
<file>${logger.path}/log_warn.log</file>
<!–־ļʽ–>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!– ˴ַ –>
</encoder>
<!– ־¼ĹԣڣС¼ –>
<rollingPolicy >
<fileNamePattern>${logger.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy >
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!–־ļ–>
<maxHistory>15</maxHistory>
</rollingPolicy>
<!– ־ļֻ¼warn –>
<filter >
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
-->
<!-- ʱ levelΪ ERROR ־ -->
<!-- ڼ¼־ļ·ļ -->
<file>${logger.path}/log_error.log</file>
<!--־ļʽ-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- ˴ַ -->
</encoder>
<!-- ־¼ĹԣڣС¼ -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logger.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--־ļ-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- ־ļֻ¼ERROR -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!--
rootڵDZѡڵ㣬ָ־ֻһlevel
level:ôӡ𣬴СдأTRACE, DEBUG, INFO, WARN, ERROR, ALL OFF
ΪINHERITEDͬNULLĬDEBUG
Ԫأʶappenderӵlogger
-->
<root level="info">
<!---->
<!---->
</root>
</configuration>
ƴ
ע־ãҪⲿ `` á
skywalking صַskywalking.apache.org/downloads/
ֻҪе agent Ŀ¼Уagent ĶЩ
agent Ŀ¼ƵһƵĿ¼£һҪ JVM Ŀ¼ȻֱӷŵĿ
-javaagent:(agentļڵĿ¼)\agent\skywalking-agent.jar -Dskywalking.agent.service_name=()-service -Dskywalking.agent.instance_name=()-instance -Dskywalking.collector.backend_service=(װSkyWalkingIP):9022
ƴ
Ϊ skywalking Ƿʽʵֲַʽ·ٺܼأһ javaagent ķʽ
Javaagent ʲôJVM ǰ̬ Instrument
Javaagent java һ javaagent ָһ jar ҶԸ java Ҫ
- jar MANIFEST.MF ļָ Premain-Class
- Premain-Class ָǸʵ premain()
premain() ⣬ main() ֮ǰĵࡣ Java ʱִ main() ֮ǰjvm -javaagent ָ jar Premain-Class premain()
####
POST http://localhost:8080/oauth2-service/oauth/token?grant_type=password&username=admin&password=123456&client_id=app-client&client_secret=client-secret-8888&scope=all
Accept: */*
Cache-Control: no-cache
ƴ
õؽ token
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiZ2F0ZXdheS1zZXJ2aWNlIl0sInVzZXJfbmFtZSI6ImFkbWluIiwiand0LWV4dCI6IkpXVCDmianlsZXkv6Hmga8iLCJzY29wZSI6WyJhbGwiXSwiZXhwIjoxNjEzOTcwMDk2LCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIl0sImp0aSI6IjU4MDY5ODlhLWUyNDQtNGQyMy04YTU5LTBjODRiYzE0Yjk5OSIsImNsaWVudF9pZCI6ImFwcC1jbGllbnQifQ.EP4acam0tkJQ9kSGRGk_mQsfi1y4M_hhiBL0H931v60",
"token_type": "bearer",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiZ2F0ZXdheS1zZXJ2aWNlIl0sInVzZXJfbmFtZSI6ImFkbWluIiwiand0LWV4dCI6IkpXVCDmianlsZXkv6Hmga8iLCJzY29wZSI6WyJhbGwiXSwiYXRpIjoiNTgwNjk4OWEtZTI0NC00ZDIzLThhNTktMGM4NGJjMTRiOTk5IiwiZXhwIjoxNjE0MDM0ODk2LCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIl0sImp0aSI6IjQxZGM1ZDc1LTZmZDgtNDU3My04YmRjLWI4ZTMwNWEzMThmMyIsImNsaWVudF9pZCI6ImFwcC1jbGllbnQifQ.CGmGx_msqJBHxa95bBROY2SAO14RyeRklVPYrRxZ7pQ",
"expires_in": 7199,
"scope": "all",
"jwt-ext": "JWT չϢ",
"jti": "5806989a-e244-4d23-8a59-0c84bc14b999"
}
ƴ
ִ /api/member/update
####
GET http://localhost:8080/member-service/api/member/update
Accept: */*
Cache-Control: no-cache
Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiZ2F0ZXdheS1zZXJ2aWNlIl0sInVzZXJfbmFtZSI6ImFkbWluIiwiand0LWV4dCI6IkpXVCDmianlsZXkv6Hmga8iLCJzY29wZSI6WyJhbGwiXSwiZXhwIjoxNjEzOTcwMDk2LCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOIl0sImp0aSI6IjU4MDY5ODlhLWUyNDQtNGQyMy04YTU5LTBjODRiYzE0Yjk5OSIsImNsaWVudF9pZCI6ImFwcC1jbGllbnQifQ.EP4acam0tkJQ9kSGRGk_mQsfi1y4M_hhiBL0H931v60
ƴ
DZ̽չʾ:
ͼչʾ
·ٽչʾ
ߣײ˵ ӣhttps://juejin.cn/post/6931922457741770760 Դϡ ȨСҵתϵȨҵתע
https://lijunyi.xyz/docs/SpringCloud/SpringCloud.html#_2-2-x-%E5%88%86%E6%94%AF https://mp.weixin.qq.com/s/2jeovmj77O9Ux96v3A0NtA https://juejin.cn/post/6931922457741770760 https://github.com/D2C-Cai/herring http://c.biancheng.net/springcloud