ApiSix 开启SkyWalking插件,实现链路信息追踪

  • 1 ApiSix开启SkyWalking插件
    • 1.1 修改config.yml配置文件
    • 1.2 在路由中开启SkyWalking插件
  • 2 创建两个SpringBoot服务,接入SkyWalking
    • 2.1 下载skywalking agent
    • 2.2 创建服务
    • 2.3 测试SkyWalking

1 ApiSix开启SkyWalking插件

1.1 修改config.yml配置文件

切换目录到/usr/local/apisix-docker/example/apisix_conf,编辑config.yml配置文件,添加SkyWalking插件配置,内容如下:

plugins:- skywalking          # 启用skywalking插件skywalking: # 配置skywalking的属性service_name: APISIX_GATEWAYservice_instance_name: "APISIX_INSTANCE_GATEWAY"endpoint_addr: http://192.168.44.131:12800  # skywalking的地址,本机默认是这个,可自行修改


切换目录至/usr/local/apisix-docker/example,执行指令docker-compose -p docker-apisix up -d重新安装ApiSix,如果SkyWalking插件不起作用,就删除apisix容器,重新执行指令docker-compose -p docker-apisix up -d创建apisix容器即可。

1.2 在路由中开启SkyWalking插件



2 创建两个SpringBoot服务,接入SkyWalking

2.1 下载skywalking agent

skywalking-agent,它简称探针,用来收集和发送数据到归集器。下载地址为:https://archive.apache.org/dist/skywalking/,下载到本地并解压。

apache-skywalking-apm-bin-es7/agent目录压缩为agent.zip,上传至Centos7服务器的/usr/local/skywalking-agent目录,并执行指令unzip agent.zip进行解压。

2.2 创建服务

创建两个SpringBoot服务,端口分别为8002、8003,提供的接口都为/user/test,接口的返回内容不同。

在pom.xml添加依赖

<!--打印skywalking的TraceId到日志-->
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.7.0</version>
</dependency><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>8.7.0</version>
</dependency>

在logback-spring.xml添加打印skywalking链路日志信息

<configuration debug="false" scan="false"><springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/><property name="log.path" value="logs/${spring.application.name}"/><!-- 彩色日志格式 --><property name="CONSOLE_LOG_PATTERN"value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wex"converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><conversionRule conversionWord="wEx"converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/><!-- Console log output --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern></encoder></appender><!-- Log file debug output --><appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/debug.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxFileSize>50MB</maxFileSize><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern></encoder></appender><!-- Log file error output --><appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxFileSize>50MB</maxFileSize><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter></appender><appender name="stdout" 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>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><appender name="grpc" 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><!--nacos 心跳 INFO 屏蔽--><logger name="com.alibaba.nacos" level="OFF"><appender-ref ref="error"/></logger><!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 --><root level="INFO"><!-- <appender-ref ref="console"/>--><appender-ref ref="debug"/><appender-ref ref="error"/><appender-ref ref="stdout"/><appender-ref ref="grpc"/></root>
</configuration>

第一个服务

启动指令

nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=test-api -Dskywalking.collector.backend_service=192.168.44.131:11800 \
-jar /home/images/api/backend-1.0-SNAPSHOT.jar \
--server.port=8002 \
2>&1 > /home/images/api/nohup.log &

第二个服务

启动指令

nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=test-api2 -Dskywalking.collector.backend_service=192.168.44.131:11800 \
-jar /home/images/api2/backend-1.0-SNAPSHOT.jar \
--server.port=8003 \
2>&1 > /home/images/api2/nohup.log &

2.3 测试SkyWalking

查看两个SpringBoot服务打印的日志信息,存在SkyWalking链路信息。



ApiSix也开启了SkyWalking插件。

ApiSix 开启SkyWalking插件,实现链路信息追踪相关推荐

  1. 基于 SkyWalking 实现服务链路追踪

    https://blog.51cto.com/zero01/2463116 https://skywalking.apache.org/zh/blog/2019-03-29-introduction- ...

  2. SkyWalking 微服务链路追踪

    目录 8. SkyWalking 微服务链路追踪 8.1 介绍 SkyWalking 8.2 Skywalking---服务搭建 8.3 SkyWalking---接入服务 8.3.1 windows ...

  3. Springcloud 集成 Skywalking 实现全链路追踪

    下载链接 https://skywalking.apache.org/downloads/ 本地搭建springcloud工程,偷懒可参考gitee https://gitee.com/wangLi1 ...

  4. skywalking 9.x入门(二) skywalking全链路tid追踪

    这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发.拒绝营销号,拒绝标题党 背景 继上次我们对skywalking整体架构作了一些了解,然后就是学习了spring boot项目如 ...

  5. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统

    前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...

  6. 如何用vbs编写一个游戏_如何编写一个 SkyWalking 插件

    点击上方"开源社"关注我们 | 作者:vcjmhg| 编辑:李明康| 责编:袁睿斌 | 设计:叶修缘丶 1 概述 之前几篇文章,我们着重介绍了在对 SkyWalking 进行二次开 ...

  7. 如何编写一个抢购bot_如何编写一个SkyWalking插件

    概述 之前几篇文章,我们着重介绍了在对SkyWalking进行二次开发之前的环境搭建问题,因此本篇文章将基于SkyWalking-8.1.0版本,以开发webflux-webclent插件为例,分享一 ...

  8. 【Spring Cloud】Sleuth+Zipkin全链路日志追踪接入实战

    文章目录 一.背景 链路追踪介绍 为什么需要链路追踪? 那该如何解决呢? 二.常见的链路追踪技术有下面这些: 三.Sleuth 3.1.Sleuth(读作/sluːθ/)介绍 3.2.相关术语 3.3 ...

  9. skywalking原理_Skywalking系列博客6手把手教你编写 Skywalking 插件

    点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 前置知识 在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK 5引入的一个玩意儿,最好了解下其工作原理):另外,S ...

最新文章

  1. 产销对接行动倡议书-万祥军:农民丰收节交易会谋定机制
  2. SparkSQL之External Data读写parquet
  3. java hanlp分词_Hanlp分词实例:Java实现TFIDF算法
  4. 程序员必会的核心基础知识:1张导图+10本书
  5. 突发!联想被责令立即开展全面整改
  6. 软件工程第一次作业-谢旭军
  7. jQuery 省市区多级(三级/四级/五级。。。)联动 BY 凨来了
  8. MATLAB【工具箱下载】汇总
  9. html5在线画板菱形怎么画,使用HTML5构建一个在线画板应用
  10. linux ps命令是什么,linux中的ps命令的详细解释
  11. wireshark抓包分析POP3协议
  12. springcloud @ComponentScan 多模块 扫描其他模块
  13. 什么是ROOT?ROOT权限有什么用?
  14. 蓝桥杯 算法提高 盾神与条状项链
  15. ensp-VRRP的配置
  16. Istio Egress Gateway出口流量管理
  17. 【计算机三级信息安全】访问控制模型
  18. 7代cpu能装虚拟xp系统吗_Intel 10代PC/笔记本安装Win7踩坑记 amp; 驱动分享
  19. 完美解决:error: failed to push some refs to 'https://github.com/xxxx.git'
  20. 深圳一AI公司人脸数据泄露,超256万用户敏感信息在“裸奔”!

热门文章

  1. 输入法编辑器(IME)程序设计(1)
  2. win10系统如何删除右键菜单中的上传到百度网盘
  3. C#数据类型转换,电工专用
  4. 数据分析之2013年广东省高速公路车流量预测
  5. 实验7-1-13 装箱问题 (20分)
  6. VRTK功能教学(二):Unity3DVRTK手柄瞬移和UI交互射线切换功能丨3D模型射线交互切换丨直线和曲线的切换
  7. Launching Devices
  8. 从行业实践中来:华为的智能制造“懂行人”炼成记
  9. kafka——2.11 单机部署 与topic基础简单应用
  10. 可视化决策树之Python实现