Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

作者:Venom码哥 时间:2023-04-05 09:17:52 

什么是SkyWalking

查看官网https://skywalking.apache.org/

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

安装

进入下载页面https://skywalking.apache.org/zh/downloads/
这里用的是ElasticSearch 7版本,所以你需要安装完成ElasticSearch 7,不再赘述。

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

解压后,可以修改启动端口


apache-skywalking-apm-bin-es7/webapp/webapp.yml

启动

bin/startup.bat
打开地址:http:.//localhost:8080

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

部署完成了,你也可以使用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

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

启动项目,日志已经出现了。

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

刷新页面,已经注册了。

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

现在点击一个请求测试下,你可以点开各个页面,查看信息了。

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

请求路径分析

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

正常,需要配合网关使用。
将插件放入,然后和之前一样配置下,修改下service的名称。

Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

这里我是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实现链路跟踪的方法

来源:https://blog.csdn.net/qq_15973399/article/details/106825128

标签:Spring,skywalking,链路跟踪
0
投稿

猜你喜欢

  • Android Fragment实现顶部、底部导航栏

    2023-03-26 06:27:58
  • C#实现json格式转换成对象并更换key的方法

    2021-12-23 00:09:39
  • Java利用HttpClient模拟POST表单操作应用及注意事项

    2023-11-29 23:48:01
  • SpringBoot整合ActiveMQ的详细步骤

    2023-08-25 07:03:44
  • C#7.0中新特性汇总

    2023-06-24 18:29:13
  • C#应用ToolStrip控件使用方法

    2023-05-23 09:10:18
  • springboot vue 跨域问题的解决

    2023-01-26 00:53:57
  • Java 读写锁源码分析

    2021-08-31 01:48:54
  • SpringBoot结合Redis配置工具类实现动态切换库

    2022-04-15 14:14:13
  • C#算法之实现阿姆斯特朗数

    2022-08-22 17:57:24
  • Spring底层事务原理解析

    2021-11-25 05:40:29
  • 浅谈log4j的rootLogger及其他坑爹的地方

    2023-07-31 02:23:14
  • Intellij IDEA 的maven项目通过Java代码实现Jetty的Http服务器(推荐)

    2022-02-19 20:29:13
  • c#使用多线程的几种方式示例详解

    2022-04-07 07:45:33
  • Java动态代理详解及实例

    2023-12-08 15:51:03
  • SpringBoot 静态资源导入及首页设置问题

    2023-11-26 22:45:07
  • C#调用dll报错:无法加载dll,找不到指定模块的解决

    2023-08-23 23:36:12
  • Java中List Set和Map之间的区别_动力节点Java学院整理

    2022-12-11 04:57:38
  • C# 调用腾讯即时通信 IM的示例

    2021-10-29 16:31:17
  • c语言重要的字符串与内存函数

    2023-04-28 00:35:42
  • asp之家 软件编程 m.aspxhome.com