1.下载Downloads | Apache SkyWalking
官网下载SkyWalking APM和Java Agent
2.配置存储方式
Skywalking数据存储的组件有多种选型方式,这里方便本地调试,就选择MySQL数据库,在生产环境中通常选择ElasticSearch组件。修改apache-skywalking-apm-bin/config/application.yml
配置文件,将存储方式改成mysql,修改mysqll地址,
storage:
selector: ${SW_STORAGE:mysql}
mysql:
properties:
jdbcUrl: jdbc:mysql://127.0.0.1:3306/swtest?useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root123}
需要注意的是,要在本地的MySQL中新建swtest数据库,采用latin1字符编码,可以避免索引长度的问题,表的创建是自动的,拷贝mysql连接包到oap-libs文件夹下面。不然启动的时候会报错。
3.启动
执行startup.bat即可,它会自动启动oapService.bat(启动oap服务),webappService.bat(启动UI界面)
UI界面服务默认是8080端口,如果存在占用问题,可以修改:webapp/webapp.yml
文件,更换端口;启动完成后访问IP:port
即可;
4.服务集成
在服务启动类中添加agent
配置,
-javaagent:C:/SkyWalking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=provider
如果要远程到其他的apm上面去则需要修改skywalking-agent/config/agent.config文件
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.29.16:12800}
或者在参数里面增加-Dskywalking.collector.backend_service=192.168.29.16:12800
如果涉及网关服务(gateway),还需要添加相关插件的依赖
将optional-plugins目录下面的apm-spring-cloud-gateway-3.x-plugin-8.12.0.jar 和apm-spring-webflux-5.x-plugin-8.12.0.jar两个包拷贝到plugins目录下面去。如果只拷贝apm-spring-cloud-gateway-2.1.x-plugin-8.12.0.jar的话访问时会报错。
java.lang.NullPointerException: null
at org.apache.skywalking.apm.plugin.spring.cloud.gateway.v21x.HttpClientFinalizerResponseConnectionInterceptor.lambda$beforeMethod$0(HttpClientFinalizerResponseConnectionInterceptor.java:44)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
成功后登录IP:8080,查看服务。
服务监控
拓补结构图
链路跟踪