Springboot整合zipkin实现链路监控简单过程以及排错记录。
- 整合Zipkin
- 问题
- 后台启动报错:The web application [ROOT] appears to have started a thread named [spring.cloud.inetutils] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
- Failed to configure a DataSource: 'url' attribute is not specified and no embedded
- Error running 'EmallSearchApplication': Command line is too long. Shorten comm...
- 监控效果
整合Zipkin
- 拉取最新zipkin
docker pull openzipkin/zipkin
- 启动镜像
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
- 访问dashboard : http://IP:9411/zipkin/ 这里换成自己ip即可
- 添加pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
- 修改nacos上的yml配置文件
spring:
sleuth:
sampler:
probability: 1
zipkin:
base-url: http://ip:9411/
discovery-client-enabled: false
sender:
type: web
问题
在做一个微服务项目的时候,通过zipkin进行链路监控的时候,原本能启动的模块,突然启动不了了,出现了如下问题。
后台启动报错:The web application [ROOT] appears to have started a thread named [spring.cloud.inetutils] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
可能原因
- 先看是不是bootstrap.yml没有正确配置nacos的namespace、group等。
- 之后再去nacos上查看是不是忘记为该模块创建配置文件了。
- 最后在检查一下是不是配置文件里有错误。(这个尤其要注意)’
- 如果是有Zipkin导入才出现该问题,建议排除该zipkin,或者根据Zipkin的提示去修改程序,以防止内存泄露问题。
<dependency>
<groupId>com.nju.emall</groupId>
<artifactId>emall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</exclusion>
</exclusions>
</dependency>
Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded
可能原因
- 数据库没有进行配置,去nacos上对应的配置文件中进行配置‘
- 配置文件中有错误,但是没有发现,虽然nacos在发布配置文件的时候未检测出错误,但是实质是有错误的,尤其是yml配置的时候,尤其注意缩进。
Error running ‘EmallSearchApplication’: Command line is too long. Shorten comm…
原因
- 查看是不是确实设置了过长的命令行参数,显然并没有改动过配置,如果设置了过长的参数,可以尝试选择箭头所指的方式进行缩减命令行参数进行启动。
- 细看控制台
The web application [ROOT] appears to have started a thread named [com.alibaba.nacos.naming.client.listener] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.misc.Unsafe.park(Native Method)
可能内存泄漏,这是zipkin版本问题,去提高一下cloud的版本,以及zipkin试试
监控效果
- cs :客户端发送一个请求,这个注解描述了这个Span的开始
- sr :服务端获得请求并准备开始处理它,sr-cs得到的是网络传输时间
- ss:服务端发送响应。请求处理的完成,ss-sr得到服务器请求的时间
- cr:客户端接收响应。表示Span结束,cr-cs得到整个请求消耗的时间。