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,不再赘述。
解压后,可以修改启动端口
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)
但是没影响。请求后,查看拓扑图,调用了哪些组件一目了然。
来源:https://blog.csdn.net/qq_15973399/article/details/106825128


猜你喜欢
- 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If
- 队列在编程语言中是如何定义的呢?小编与大家分享自己的经验。队列的定义队列是限制结点插入操作固定在一端进行,而结点的删除操作固定在另一端进行的
- Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法:首
- 这篇文章主要介绍了SpringBoot 使用Mybatis分页插件实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 本文实例讲述了Java基于socket实现简易聊天室的方法。分享给大家供大家参考。具体实现方法如下:chatroomdemo.javapac
- 在我们应用程序的业务逻辑中,经常会碰到参数校验的情况,手动的在代码层上面进行校验就会带来很不好的体验,阅读、维护的成本会大大增加,造成冗余。
- JDK12的五大重要新特性Java12在March 19, 2019发布了。在2017年发布Java 9之后,Java平台发布节奏已从每3年
- Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence。standard
- 注:完整项目下载在处理了核心任务之后,我们会发现有些请求并不是都是静态的,那么我们就需要进行实现处理动态请求的要求,如下面代码是我们请求的解
- spring boot与profilespring boot 的项目中不再使用xml的方式进行配置,并且,它还遵循着约定大于配置。静态获取方
- 什么是显式转换Explicit Conversion就是在将一种类型转换成另外一种类型时,需要额外的代码来完成这种转换。int n = 1;
- package org.load.u;import java.io.File;import java.util.LinkedHashMap;
- 前端时间刚好需要做一个类似于QQ空间的社区分享功能,说说内容包含文字(话题、内容)、视频、图片,还需包含点赞,评论,位置信息等功能。 就采用
- 数据表及数据准备:create table Member(MemberId int primary key identity(1,1),Me
- async和awaitasync微软文档:使用 async 修饰符可将方法、lambda 表达式或匿名方法指定为异步。使
- 本文实例讲述了Android获取手机系统版本等信息的方法。分享给大家供大家参考。具体如下:String phoneInfo = "
- 一、Flutter介绍Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现
- Android Parcelable 源码解析大家都知道,要想在Intent里面传递一些非基本类型的数据,有两种方式,一种实现Parcela
- 黑白棋介绍黑白棋,又叫苹果棋,最早流行于西方国家。游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。黑白棋非常易于上手,但精通则
- 1. 前言本文主要是介绍一下RocketMQ消息生产者在发送消息的时候发送失败的问题处理?这里有两个点,一个是关于消息的处理,一个是关于br