前言

最近在使用Zipkin时,发现官方的可视化的依赖查询不出来,经过摸索找到一个解决方案~
image.png

Zipkin是一个开源的分布式跟踪系统,旨在帮助开发人员解决分布式系统的调试和性能问题。

Zipkin通过跟踪和记录分布式系统的请求和响应数据,帮助开发人员分析和调试系统中的问题。它使用一个称为“跟踪(Trace)”的概念来表示请求和响应数据之间的关系,并提供了各种可视化和分析工具来帮助开发人员快速识别和解决问题。

Zipkin支持多种编程语言和框架,例如Java、Python、Ruby、Go、Spring Cloud等。它使用一个称为“Zipkin客户端库”的工具来收集和汇总跟踪数据,并提供了各种后端存储选项,例如In-memory、MySQL、Elasticsearch等,以便于开发人员根据需要选择存储方式。

Zipkin的主要功能包括跟踪数据的收集、存储、可视化和分析等。它提供了各种可视化工具,例如依赖关系图、时间线图等,以便于开发人员更好地理解分布式系统中的请求和响应流程。同时,Zipkin还支持多种查询和过滤选项,以帮助开发人员定位和解决问题。

Zipkin是一个开源项目,其源代码托管在GitHub上,并受到广泛的社区支持和贡献。

解决方法

附官方链接:https://github.com/openzipkin/zipkin-dependencies
其主要原理是:执行jar包,底层会进行一次spark计算,将指定的存储引擎(本文es)进行一次计算,然后将计算结果存储回es中。

一、下载zipkin-dependencies.jar

curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.dependencies:zipkin-dependencies:LATEST zipkin-dependencies.jar

二、执行jar包

如果使用es存储zipkin数据,所以使用以下命令:

STORAGE_TYPE=elasticsearch ES_HOSTS=http://es地址:es端口 java -jar zipkin-dependencies.jar

PS:如果你使用MySQL存储

STORAGE_TYPE=mysql MYSQL_USER=root MYSQL_PASS=password java -jar zipkin-dependencies.jar

如果使用cassandra存储

STORAGE_TYPE=cassandra3 CASSANDRA_USERNAME=user CASSANDRA_PASSWORD=pass java -jar zipkin-dependencies.jar

三、查看日志结果

21/12/22 17:37:27 INFO ElasticsearchDependenciesJob: Processing spans from zipkin:span-2021-12-21/span
21/12/22 17:37:27 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
21/12/22 17:37:29 WARN Resource: Detected type name in resource [zipkin:span-2021-12-21/span]. Type names are deprecated and will be removed in a later release.
21/12/22 17:37:29 WARN Resource: Detected type name in resource [zipkin:span-2021-12-21/span]. Type names are deprecated and will be removed in a later release.
21/12/22 17:37:29 WARN Resource: Detected type name in resource [zipkin:span-2021-12-21/span]. Type names are deprecated and will be removed in a later release.
21/12/22 17:37:29 INFO ElasticsearchDependenciesJob: No dependency links could be processed from spans in index zipkin:span-2021-12-21/span
21/12/22 17:37:29 INFO ElasticsearchDependenciesJob: Processing spans from zipkin-span-2021-12-21
21/12/22 17:37:30 INFO ElasticsearchDependenciesJob: Saving dependency links to zipkin-dependency-2021-12-21
21/12/22 17:37:30 INFO ElasticsearchDependenciesJob: Done

当出现ElasticsearchDependenciesJob: Done后,就说明运行成功了。然后就可以在zipkin的ui界面查询到依赖~
image.png

其他

可以设置定时任务,让机器每天晚上自动执行定时任务进行计算

vim /etc/crontab

新增一行

0 0 1 * * * /opt/data/cacl-zipkin-dependencies.sh >> /opt/data/zipkin/logs/zipkin-dependencies.log

保存退出即可~