微服务链路追踪SkyWalking学习笔记

这篇具有很好参考价值的文章主要介绍了微服务链路追踪SkyWalking学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、skywalking是什么

1.2 链路追踪框架对比

1.3 性能对比

1.4 Skywalking主要功能特性

2、 SkyWalking 环境搭建部署

2.1 下载 SkyWalking 

 2.2 搭建SkyWalking OAP 服务

2.3 SkyWalking中三个概念

3、 SkyWalking 接入微服务

3.1 linux环境—通过jar包方式接入

3.2 windos环境—在IDEA中使用Skywalking

3.3 Skywalking跨多个微服务跟踪

4、 Skywalking持久化跟踪数据

 4.1 基于mysql持久化

5、 自定义SkyWalking链路追踪

5.1 @Trace将方法加入追踪链路

​编辑 5.2 加入@Tags或@Tag

6.性能分析

7.Skywalking集成日志框架

7.1Skywalking通过grpc上报日志 (需要v8.4.0+)

8.SkyWalking 告警功能

8.1告警规则

8.2Webhook(网络钩子)

8.3邮件告警功能实践

9.Skywalking高可用

10.demo源码:springcloudAlibaba: Alibaba微服务学习demo


 文章来源地址https://www.toymoban.com/news/detail-623143.html

1、skywalking是什么

skywalking是一个 国产开源框架,2015年由 吴晟开源 , 2017年加入Apache孵化器。skywalking是分布式系统的应用
程序 性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。它是一款优秀的
APM(Application Performance Management)工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。
官网:http://skywalking.apache.org/
下载:http://skywalking.apache.org/downloads/
Github:https://github.com/apache/skywalking
文档: https://skywalking.apache.org/docs/main/v8.4.0/readme/
中文文档: https://skyapm.github.io/document-cn-translation-of-skywalking/

1.2 链路追踪框架对比

1. Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。
2. Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无 代码侵入。
3. SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端 无代码侵入。目前已加入Apache孵化器。
4. CAT是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。

 链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 

1.3 性能对比

模拟了三种并发用户:500,750,1000。使用jmeter测试,每个线程发送30个请求,设置思考时间为10ms。使用的采样率为1,即 100%,这边与生产可能有差别。pinpoint默认的采样率为20,即50%,通过设置agent的配置文件改为100%。zipkin默认也是1。组合 起来,一共有12种。下面看下汇总表:

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

从上表可以看出,在三种链路监控组件中, skywalking的探针对吞吐量的影响最小,zipkin的吞吐量居中。pinpoint的探针对吞吐量的 影响较为明显,在500并发用户时,测试服务的吞吐量从1385降低到774,影响很大。然后再看下CPU和memory的影响,在内部服务器 进行的压测,对CPU和memory的影响都差不多在10%之内。

 

1.4 Skywalking主要功能特性

1、多种监控手段,可以通过语言探针和service mesh获得监控的数据;
2、支持多种语言自动探针,包括 Java,.NET Core 和 Node.JS;
3、轻量高效,无需大数据平台和大量的服务器资源;
4、模块化,UI、存储、集群管理都有多种机制可选;
5、支持告警;
6、优秀的可视化解决方案;

 

2、 SkyWalking 环境搭建部署

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 

  • skywalking agent和业务系统绑定在一起,负责收集各种监控数据
  • Skywalking oapservice是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;
  • 接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapservice通常以集 群的形式存在。
  • skywalking webapp,前端界面,用于展示数据。
  • 用于存储监控数据的数据库,比如mysql、elasticsearch等。

2.1 下载 SkyWalking 

下载:http://skywalking.apache.org/downloads/
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 根据需求下载对应版本解压即可。

目录结构
 

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 

 2.2 搭建SkyWalking OAP 服务

启动脚本bin/startup.sh

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 日志信息存储在logs目录

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

启动成功后会启动两个服务,一个是skywalking-oap-server,一个是skywalking-web-ui
skywalking-oap-server服务启动后会暴露11800 和 12800 两个端口,分别为收集监控数据的端口11800和接受前端请求的端口12800,修改端口可以修改config/applicaiton.yml
skywalking-web-ui服务会占用 8080 端口, 修改端口可以修改webapp/webapp.yml
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习
server.port:SkyWalking UI服务端口,默认是8080;  
collector.ribbon.listOfServers:SkyWalking OAP服务地址数组,SkyWalking UI界面的数据是通过请求SkyWalking OAP服务来获得;
 
访问:http://192.168.3.100:8444/

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 页面的右下角可以中英文切换,可以切换选择要展示的时间区间的跟踪数据

 

2.3 SkyWalking中三个概念

服务(Service) :表示对请求提供相同行为的一系列或一组工作负载,在使用Agent时,可以定义服务的名字;
服务实例(Service Instance) :上述的一组工作负载中的每一个工作负载称为一个实例, 一个服务实例实际就是操作系统上
的一个真实进程;
端点(Endpoint) :对于特定服务所接收的请求路径, 如HTTP的URI路径和gRPC服务的类名 + 方法签名;

 链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

3、 SkyWalking 接入微服务

3.1 linux环境—通过jar包方式接入

准备一个springboot程序,打成可执行jar包,写一个shell脚本,在启动项目的Shell脚本上,通过 -javaagent 参数进行 配置SkyWalking Agent来跟踪微服务;
startup.sh脚本:
 #!/bin/sh
 # SkyWalking Agent配置
 export SW_AGENT_NAME=springboot‐skywalking‐demo #Agent名字,一般使用`spring.application.name`
 export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 #配置 Collector 地址。
 export SW_AGENT_SPAN_LIMIT=2000 #配置链路的最大Span数量,默认为 300。
 export JAVA_AGENT=‐javaagent:/usr/local/soft/apache‐skywalking‐apm‐bin‐es7/agent/skywalking‐agent.jar
 java $JAVA_AGENT ‐jar springboot‐skywalking‐demo‐0.0.1‐SNAPSHOT.jar #jar启动
启动日志

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

等同于
java ‐javaagent:/usr/local/soft/apache‐skywalking‐apm‐bin‐es7/agent/skywalking‐agent.jar
‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
‐DSW_AGENT_NAME=springboot‐skywalking‐demo ‐jar springboot‐skywalking‐demo‐0.0.1‐SNAPSHOT.jar
参数名对应agent/config/agent.config配置文件中的属性。
我们也可以使用skywalking.+配置文件中的配置名作为系统配置项来进行覆盖。 javaagent参数配置方式优先级更高。

 

 

3.2 windos环境—在IDEA中使用Skywalking

在运行的程序配置jvm参数,如下图所示:
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 

-javaagent:E:\apache-skywalking-apm-8.5.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar
-DSW_AGENT_NAME=api-gateway
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES   可以指定远程地址, 但是-javaagent必须绑定你本机物理路径的skywalking
agent.jar

 

3.3 Skywalking跨多个微服务跟踪

Skywalking跨多个微服务跟踪,只需要每个微服务启动时添加javaagent参数即可。
启动微服务gateway,order-service,stock-service,配置skywalking的jvm参数
注意:此处存在bug,跟踪链路不显示gateway
解决:拷贝agent/optional-plugins目录下的gateway插件到agent/plugins目录
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

访问8444端口:

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

4、 Skywalking持久化跟踪数据

默认使用的H2数据库存储
config/application.yml
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 4.1 基于mysql持久化

1. 修改config目录下的application.yml,使用mysql作为持久化存储的仓库

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

2. 修改mysql连接配置

 链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

注意:需要添加mysql数据驱动包,因为在lib目录下是没有mysql数据驱动包的,所以修改完配置启动是会报错,启动失败的。

3. 添加对应版本的mysql数据驱动包到oap-libs目录下

4. 启动Skywalking

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

查看swtest数据库,可以看到生成了很多表。

 

说明启动成功了,打开配置对应的地址http://127.0.0.1:8444/,可以看到skywalking的web界面。

测试:重启skywalking,验证跟踪数据会不会丢失

5、 自定义SkyWalking链路追踪

如果我们希望对项目中的业务方法,实现链路追踪,方便我们排查问题,可以使用如下的代码
引入依赖
   <!-- SkyWalking 工具类, 跟服务版本一致 -->
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.5.0</version>
        </dependency>

5.1 @Trace将方法加入追踪链路

如果一个业务方法想在ui界面的跟踪链路上显示出来,只需要在业务方法上加上@Trace注解即可

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

测试

 5.2 加入@Tags或@Tag

我们还可以为追踪链路增加其他额外的信息,比如记录参数和返回信息。实现方式:在方法上增加@Tag或者@Tags。
@Tag 注解中 key  = 方法名; value =  returnedObj  返回值   arg[0] 参数
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

测试

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

6.性能分析

skywalking的性能分析,在根据服务名称、端点名称,以及相应的规则建立了任务列表后,在调用了此任务列表的端点后。skywalking会自动记录,剖析当前端口,生成剖析结果,具体流程如图:

 链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

7.Skywalking集成日志框架

ogback官方配置: skywalking/Application-toolkit-logback-1.x.md at v8.5.0 · apache/skywalking · GitHub
 

 引入依赖

       <!-- apm-toolkit-logback-1.x -->
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.5.0</version>
        </dependency>

 

添加logback-spring.xml文件,并配置 %tid 占位符

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 引入 Spring Boot 默认的 logback XML 配置文件  -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>


    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志的格式化 -->
        <encoder  class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} [%tid] %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}</Pattern>
            </layout>
        </encoder>

    </appender>

    <!-- 设置 Appender -->
    <root level="INFO">
        <appender-ref ref="console"/>
    </root>

</configuration>
测试
 
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习
 

7.1Skywalking通过grpc上报日志 (需要v8.4.0+)

gRPC报告程序可以将收集到的日志转发到SkyWalking OAP服务器上
logback-spring.xml中添加
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 引入 Spring Boot 默认的 logback XML 配置文件  -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>


    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志的格式化 -->
        <encoder  class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} [%tid] %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}</Pattern>
            </layout>
        </encoder>

    </appender>

    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

    <!-- 设置 Appender -->
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="grpc-log"/>
    </root>

</configuration>
 
打开agent/config/agent.config配置文件,添加如下配置信息:
 
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:127.0.0.1}
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800} plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
以上配置是默认配置信息,agent与oap在本地的可以不配
 
agent配置信息大全:  https://skywalking.apache.org/docs/main/v8.4.0/en/setup/service-agent/java-agent/readme/#table-of-agent-configuration-properties

 

Skywalking UI效果

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

8.SkyWalking 告警功能

SkyWalking 告警功能是在6.x版本新增的,其核心由一组规则驱动,这些规则定义在config/alarm-settings.yml文件中。告警规则的定义分为两部分:
1. 告警规则: skywalking/backend-alarm.md at v8.5.0 · apache/skywalking · GitHub
它们定义了应该如何触发度量警报,应该考虑什么条件。
2. Webhook(网络钩子):
skywalking/backend-alarm.md at v8.5.0 · apache/skywalking · GitHub
定义当警告触发时,哪些服务终端需要被告知
 

8.1告警规则

SkyWalking 的发行版都会默认提供config/alarm-settings.yml文件,里面预先定义了一些常用的告警规则。如下:
1. 过去 3 分钟内服务平均响应时间超过 1 秒。
2. 过去 2 分钟服务成功率低于80%。
3. 过去 3 分钟内服务响应时间超过 1s 的百分比
4. 服务实例在过去 2 分钟内平均响应时间超过 1s,并且实例名称与正则表达式匹配。
5. 过去 2 分钟内端点平均响应时间超过 1 秒。
6. 过去 2 分钟内数据库访问平均响应时间超过 1 秒。
7. 过去 2 分钟内端点关系平均响应时间超过 1 秒。
这些预定义的告警规则,打开config/alarm-settings.yml文件即可看到
告警规则配置项的说明:
  • Rule name:规则名称,也是在告警信息中显示的唯一名称。必须以_rule结尾,前缀可自定义
  • Metrics name:度量名称,取值为oal脚本中的度量名,目前只支持long、double和int类型。详见Official OAL script
  • Include names:该规则作用于哪些实体名称,比如服务名,终端名(可选,默认为全部)
  • Exclude names:该规则作不用于哪些实体名称,比如服务名,终端名(可选,默认为空)
  • Threshold:阈值
  • OP: 操作符,目前支持 >、<、=
  • Period:多久告警规则需要被核实一下。这是一个时间窗口,与后端部署环境时间相匹配
  • Count:在一个Period窗口中,如果values超过Threshold值(按op),达到Count值,需要发送警报
  • Silence period:在时间N中触发报警后,在TN -> TN + period这个阶段不告警。 默认情况下,它和Period一样,这意味着 相同的告警(在同一个Metrics name拥有相同的Id)在同一个Period内只会触发一次
  • message:告警消息

8.2Webhook(网络钩子)

Webhook可以简单理解为是一种Web层面的回调机制,通常由一些事件触发,与代码中的事件回调类似,只不过是Web层面的。由于是Web层面的,所以当事件发生时,回调的不再是代码中的方法或函数,而是服务接口。例如,在告警这个场景,告警就是一个事件。当该事件发生时SkyWalking就会主动去调用一个配置好的接口,该接口就是所谓的Webhook。
SkyWalking的告警消息会通过 HTTP 请求进行发送,请求方法为 POST,Content-Type 为 application/json,其JSON 数据实基于
List<org.apache.skywalking.oap.server.core.alarm.AlarmMessage进行序列化的。JSON数据示
 [{
 "scopeId": 1,
 "scope": "SERVICE",
 "name": "serviceA",
 "id0": "12",
 "id1": "",
 "ruleName": "service_resp_time_rule",
 "alarmMessage": "alarmMessage xxxx",
 "startTime": 1560524171000
 }, {
 "scopeId": 1,
 "scope": "SERVICE",
"name": "serviceB",
 "id0": "23",
"id1": "",
"ruleName": "service_resp_time_rule",
 "alarmMessage": "alarmMessage yyy",
"startTime": 1560524171000
}]
字段说明:
scopeId、scope:所有可用的Scope 见 org.apache.skywalking.oap.server.core.source.DefaultScopeDefine
name:目标 Scope 的实体名称
id0:Scope 实体的 ID
id1:保留字段,目前暂未使用
ruleName:告警规则名称
alarmMessage:告警消息内容
startTime:告警时间,格式为时间戳
 

8.3邮件告警功能实践

根据以上两个小节的介绍,可以得知:SkyWalking是不支持直接向邮箱、短信等服务发送告警信息的,SkyWalking只会在发生告警时将 告警信息发送至配置好的Webhook接口。
但我们总不能人工盯着该接口的日志信息来得知服务是否发生了告警,因此我们需要在该接口里实现发送邮件或短信等功能,从而达到个性化的告警通知。
接下来开始动手实践,这里基于Spring Boot进行实现。首先是添加依赖:
 
 <dependency>
<groupId>org.springframework.boot</groupId>
 <artifactId>spring‐boot‐starter‐mail</artifactId>
</dependency>
配置邮箱服务:
 
server:
   port: 9134
 
#邮箱配置
 spring:
   mail:
       host: smtp.163.com
#发送者邮箱账号
       username: 你的邮箱@163.com
  #发送者密钥
       password: 你的邮箱服务密钥
 default‐encoding: utf‐8
       port: 465 #端口号465或587
       protocol: smtp
       properties:
mail:
  debug:
     false
   smtp:
      socketFactory:
          class: javax.net.ssl.SSLSocketFactory
根据SkyWalking发送的JSON数据定义一个DTO,用于接口接收数据:
 @Data
 public class SwAlarmDTO {

 private Integer scopeId;
 private String scope;
 private String name;
 private Integer id0;
 private Integer id1;
 private String ruleName;
 private String alarmMessage;
 private Long startTime;
 }
接着定义一个接口,实现接收SkyWalking的告警通知,并将数据发送至邮箱:
 
 @Slf4j
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/alarm")
 public class SwAlarmController {

 private final JavaMailSender sender;

  @Value("${spring.mail.username}")
 private String from;

 /**
 * 接收skywalking服务的告警通知并发送至邮箱
 */
  @PostMapping("/receive")
 public void receive(@RequestBody List<SwAlarmDTO> alarmList) {
  SimpleMailMessage message = new SimpleMailMessage();
 // 发送者邮箱
  message.setFrom(from);
 // 接收者邮箱
  message.setTo(from);
 // 主题
  message.setSubject("告警邮件");
  String content = getContent(alarmList);
 // 邮件内容
  message.setText(content);
  sender.send(message);
  log.info("告警邮件已发送...");
 }

 private String getContent(List<SwAlarmDTO> alarmList) {
  StringBuilder sb = new StringBuilder();
 for (SwAlarmDTO dto : alarmList) {
  sb.append("scopeId: ").append(dto.getScopeId())
 .append("\nscope: ").append(dto.getScope())
 .append("\n目标 Scope 的实体名称: ").append(dto.getName())
 .append("\nScope 实体的 ID: ").append(dto.getId0())
 .append("\nid1: ").append(dto.getId1())
 .append("\n告警规则名称: ").append(dto.getRuleName())
 .append("\n告警消息内容: ").append(dto.getAlarmMessage())
 .append("\n告警时间: ").append(dto.getStartTime())
 .append("\n\n‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐\n\n");
 }

 return sb.toString();
 }
 }
最后将该接口配置到SkyWalking中,Webhook的配置位于config/alarm-settings.yml文件的末尾,格式为http://{ip}:
{port}/{uri}。如下示例:
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习
我在/producer接口中增加了一行睡2秒的代码:
 @Override
 @Trace
 @Tag(key="getAll",value="returnedObj")
 public List<Order> all() throws InterruptedException {
  TimeUnit.SECONDS.sleep(2);
return orderMapper.selectAll();
 }
执行完测试代码,等待约两分钟后,告警接口的控制台输出了一段日志信息:
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 

 

9.Skywalking高可用

在大多数生产环境中,后端应用需要支持高吞吐量并且支持高可用来保证服务的稳定,所以你始终需要在生产环境进行集群管理。
Skywalking集群是将skywalking oap作为一个服务注册到nacos上,只要skywalking oap服务没有全部宕机,保证有一 个skywalking oap在运行,就能进行跟踪。
搭建一个skywalking oap集群需要:
(1)至少一个Nacos(也可以是nacos集群)
(2)至少一个ElasticSearch/mysql(也可以是es/msql集群)
(3)至少2个skywalking oap服务;
(4)至少1个UI(UI也可以集群多个,用Nginx代理统一入口)
1.修改config/application.yml文件
使用nacos作为注册中心
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习
修改nacos配置
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 可以选择性修改监听端口 

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

修改存储策略,使用elasticsearch7作为storage
链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 2. 配置ui服务webapp.yml文件的listOfServers,写两个地址

链路追踪框架对比,springcloudAlibaba,微服务,skywalking,学习

 3.启动服务测试

启动Skywalking服务,指定springboot应用的jvm参数
 
‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.3.10:11800,192.168.3.12:1180

10.demo源码:springcloudAlibaba: Alibaba微服务学习demo

 

 

 

到了这里,关于微服务链路追踪SkyWalking学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Alibaba全家桶——微服务链路追踪SkyWalking

    本文小新为大家带来 微服务链路追踪SkyWalking 相关知识,具体内容包括 SkyWalking简介 , SkyWalking环境搭建部署 , SkyWalking接入微服务 , SkyWalking持久化跟踪数据 , 自定义SkyWalking链路追踪 , SkyWalking集成日志框架 , SkyWalking告警功能 , SkyWalking高可用 , SkyWalking UI介绍 等进行

    2023年04月08日
    浏览(51)
  • 【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控

    skywalking 是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式 系统   Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版

    2024年02月08日
    浏览(56)
  • SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》

    首先了解一下单机环境 第一步,搭建一个 Elasticsearch 服务。 第二步,下载 SkyWalking 软件包。 第三步,搭建一个 SkyWalking OAP 服务。 第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。 第五步,搭建一个 SkyWalking UI 服务。 准备工作,准备一个docker网络组,网络组的名字为

    2024年02月15日
    浏览(54)
  • 全网最全的微服务链路追踪实践-SkyWalking(看这一篇就够了)

    链路追踪介绍 对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如: 1. 如何串联整个调用链路,快速定位问题? 2. 如何缕清各个微服务之间的依赖关系? 3. 如何进行各个微服务接口的性能分折? 4. 如何跟踪整个业务流程的调用处

    2024年02月03日
    浏览(51)
  • 专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

    服务链路追踪已成为不可或缺的一环 skywalking是一个优秀的 国产 开源框架,2015年由个人 吴晟 (华为开发者)开源 , 2017年加入apache 孵化器。 skywalking是分布式系统的应用 程序性能监视工具 ,专为微服务、云原生架构和基于容器化技术 (docker、K8s、Mesos)架构而设计,它是

    2023年04月08日
    浏览(82)
  • skywalking全链路追踪

    在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构中,如何使用skywalking对一次客户端请求进行全链路追踪。 skywalking的介绍分多篇文章: 微服务项目集成skywalking skywalking全链路追踪 何为全链路

    2024年02月14日
    浏览(39)
  • Skywalking链路追踪

    APM(Application Performance Monitoring)系统是一种用于监控和管理应用程序性能的工具。它可以帮助开发人员和运维团队实时监控应用程序的性能指标、识别潜在的性能问题,并提供性能优化建议。 APM系统可以帮助用户及时发现和解决应用程序的性能问题,提升用户体验和系统稳

    2024年01月18日
    浏览(40)
  • 链路追踪Skywalking快速入门

    2023年09月08日
    浏览(44)
  • 链路追踪Skywalking应用实战

    2023年09月05日
    浏览(44)
  • 分布式链路追踪专栏,分布式链路追踪:Skywalking集群管理设计

    SkyWalking 是一个开源 APM 系统,包括针对 Cloud Native 体系结构中的分布式系统的监视,跟踪,诊断功能。核心功能如下: 服务、服务实例、端点指标分析; 根本原因分析,在运行时分析代码; 服务拓扑图分析; 服务,服务实例和端点依赖性分析; 检测到慢速服务和端点; 性

    2024年02月01日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包