Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法
什么是SkyWalking
查看官网https://skywalking.apache.org/
分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
安装
进入下载页面https://skywalking.apache.org/zh/downloads/
这里用的是ElasticSearch 7版本,所以你需要安装完成ElasticSearch 7,不再赘述。
解压后,可以修改启动端口
apache-skywalking-apm-bin-es7/webapp/webapp.yml
启动
bin/startup.bat
打开地址:http:.//localhost:8080
部署完成了,你也可以使用Docker 部署。如下:
[root@localhost ~]# docker search skywalking NAME DESCRIPTION apache/skywalking-oap-server Apache SkyWalking OAP Server apache/skywalking-ui Apache SkyWalking Web UI
拉取
docker pull apache/skywalking-oap-server docker pull apache/skywalking-ui
启动容器
docker run \ --name skywalking \ -d \ -p 11800:11800 \ -p 12800:12800 \ --restart always \ --link elasticsearch:elasticsearch \ -e TZ=Asia/Shanghai \ -e SW_STORAGE=elasticsearch \ -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \ apache/skywalking-oap-server docker run \ --name skywalking-ui \ -d \ -p 7070:8080 \ --link skywalking:skywalking \ -e TZ=Asia/Shanghai \ -e SW_OAP_ADDRESS=skywalking:12800 \ --restart always \ apache/skywalking-ui \
地址为 http://内网宿主机ip:7070
连接地址为:内网宿主机ip:11800
agent 镜像使用:
待补充
使用
Java Agent简介
简单说:我们可以使用agent技术构建一个独立于应用程序的代理程序(即为Agent),用来协助监测、运行甚至替换其他JVM上的程序。使用它可以实现虚拟机级别的AOP功能。
SpringBoot 使用 Java Agent
首先将安装目录下的agent目录全部拷贝到你的项目文件夹下
接着(IDEA为例),改为你的地址即可
-javaagent:D:\Project\jiangsu-unified-platform\apache-skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=jiangsu-bid-service -Dskywalking.collector.backend_service=192.168.11.137:11800
启动项目,日志已经出现了。
刷新页面,已经注册了。
现在点击一个请求测试下,你可以点开各个页面,查看信息了。
请求路径分析
正常,需要配合网关使用。
将插件放入,然后和之前一样配置下,修改下service的名称。
这里我是JDK11 启动报错
java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled at org.apache.skywalking.apm.dependencies.io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31) at org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0$4.run(PlatformDependent0.java:224) at java.base/java.security.AccessController.doPrivileged(Native Method) ... java.lang.IllegalAccessException: class org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0$6 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @74960bfa at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361) at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591) at java.base/java.lang.reflect.Method.invoke(Method.java:558) at org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0$6.run(PlatformDependent0.java:334) at java.base/java.security.AccessController.doPrivileged(Native Method)
但是没影响。请求后,查看拓扑图,调用了哪些组件一目了然。
总结
到此这篇关于Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法的文章就介绍到这了,更多相关Spring 链路跟踪内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!