ApiSix 开启SkyWalking插件,实现链路信息追踪
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插件,实现链路信息追踪相关推荐
- 基于 SkyWalking 实现服务链路追踪
https://blog.51cto.com/zero01/2463116 https://skywalking.apache.org/zh/blog/2019-03-29-introduction- ...
- SkyWalking 微服务链路追踪
目录 8. SkyWalking 微服务链路追踪 8.1 介绍 SkyWalking 8.2 Skywalking---服务搭建 8.3 SkyWalking---接入服务 8.3.1 windows ...
- Springcloud 集成 Skywalking 实现全链路追踪
下载链接 https://skywalking.apache.org/downloads/ 本地搭建springcloud工程,偷懒可参考gitee https://gitee.com/wangLi1 ...
- skywalking 9.x入门(二) skywalking全链路tid追踪
这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发.拒绝营销号,拒绝标题党 背景 继上次我们对skywalking整体架构作了一些了解,然后就是学习了spring boot项目如 ...
- NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统
前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...
- 如何用vbs编写一个游戏_如何编写一个 SkyWalking 插件
点击上方"开源社"关注我们 | 作者:vcjmhg| 编辑:李明康| 责编:袁睿斌 | 设计:叶修缘丶 1 概述 之前几篇文章,我们着重介绍了在对 SkyWalking 进行二次开 ...
- 如何编写一个抢购bot_如何编写一个SkyWalking插件
概述 之前几篇文章,我们着重介绍了在对SkyWalking进行二次开发之前的环境搭建问题,因此本篇文章将基于SkyWalking-8.1.0版本,以开发webflux-webclent插件为例,分享一 ...
- 【Spring Cloud】Sleuth+Zipkin全链路日志追踪接入实战
文章目录 一.背景 链路追踪介绍 为什么需要链路追踪? 那该如何解决呢? 二.常见的链路追踪技术有下面这些: 三.Sleuth 3.1.Sleuth(读作/sluːθ/)介绍 3.2.相关术语 3.3 ...
- skywalking原理_Skywalking系列博客6手把手教你编写 Skywalking 插件
点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 前置知识 在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK 5引入的一个玩意儿,最好了解下其工作原理):另外,S ...
最新文章
- 产销对接行动倡议书-万祥军:农民丰收节交易会谋定机制
- SparkSQL之External Data读写parquet
- java hanlp分词_Hanlp分词实例:Java实现TFIDF算法
- 程序员必会的核心基础知识:1张导图+10本书
- 突发!联想被责令立即开展全面整改
- 软件工程第一次作业-谢旭军
- jQuery 省市区多级(三级/四级/五级。。。)联动 BY 凨来了
- MATLAB【工具箱下载】汇总
- html5在线画板菱形怎么画,使用HTML5构建一个在线画板应用
- linux ps命令是什么,linux中的ps命令的详细解释
- wireshark抓包分析POP3协议
- springcloud @ComponentScan 多模块 扫描其他模块
- 什么是ROOT?ROOT权限有什么用?
- 蓝桥杯 算法提高 盾神与条状项链
- ensp-VRRP的配置
- Istio Egress Gateway出口流量管理
- 【计算机三级信息安全】访问控制模型
- 7代cpu能装虚拟xp系统吗_Intel 10代PC/笔记本安装Win7踩坑记 amp; 驱动分享
- 完美解决:error: failed to push some refs to 'https://github.com/xxxx.git'
- 深圳一AI公司人脸数据泄露,超256万用户敏感信息在“裸奔”!