我确实有几个服务相互交互,所有这些服务都向openzipkin(https://github.com/openzipkin/docker-zipkin)发送痕迹。
虽然我可以详细查看系统行为,但看起来“依赖项”标签根本不会显示任何内容。
我检查的跟踪有6个服务,21个跨度和43个跨度,我相信应该出现。
我正在使用最新的(1.40.1)docker-zipkin,以cassandra作为存储,以及 只是连接到cassandra实例,可以看到依赖项'table'中没有条目。为什么?
由于
答案 0 :(得分:1)
与使用Cassandra(1.40.1,1.40.2,1.1.4)的docker图像相同的问题。
这是使用Cassandra作为存储层的特定问题。 Mysql和内存存储按预期按需生成依赖图。
有以下项目的参考,用于生成要显示的UI的Cassandra图数据。
这似乎被这里提到的正在进行的工作所取代
答案 1 :(得分:0)
如果存储类型不是内联存储,则对于zipkin依赖关系图,您必须启动单独的cron作业/调度程序,以读取存储数据库并构建该图。因为zipkin依赖项是单独的spark作业。 供参考:https://github.com/openzipkin/docker-zipkin-dependencies
我使用带有弹性搜索的zipkin作为存储类型。我将分享使用弹性搜索和cron作业设置zipkin依赖项的步骤:
1.cd ~/
2. curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.dependencies:zipkin-dependencies:LATEST zipkin-dependencies.jar
3. touch cron.sh or vi cron.sh
4. paste this content :
STORAGE_TYPE=elasticsearch ES_HOSTS=https:172.0.0.1:9200 ES_HTTP_LOGGING=BASIC ES_NODES_WAN_ONLY=true java -jar zipkin-dependencies.jar
5.chmode a+x cron.sh //make file executable
6.crontab -e
window will open paste below content
0 * * * * cd && ./cron.sh //every one hour it will start the cron job if you need every 5 minutes change the commmand to '*/5 * * * * cd && ./cron.sh'
7. to check cron job is schedule run commant crontab -l
其他解决方案是启动单独的服务并运行cron作业 使用docker
获得给定的最新zipkin依赖罐的步骤尝试运行 终端命令
cd /zipkindependencies // where your Dockerfile is available
curl -sSL https://zipkin.io/quickstart.sh | bash -s io.zipkin.dependencies:zipkin-dependencies:LATEST
您将在上述目录中获得jar文件
Dockerfile
FROM openjdk:8-jre-alpine
ENV STORAGE_TYPE=elasticsearch
ENV ES_HOSTS=http://172.0.0.1:9200
ENV ES_NODES_WAN_ONLY=true
ADD crontab.txt /crontab.txt
ADD script.sh /script.sh
COPY entry.sh /entry.sh
COPY zipkin-dependencies.jar /
RUN chmod a+x /script.sh /entry.sh
RUN /usr/bin/crontab /crontab.txt
CMD ["/entry.sh"]
EXPOSE 8080
entry.sh
#!/bin/sh
# start cron
/usr/sbin/crond -f -l 8
script.sh
#!/bin/sh
java ${JAVA_OPTS} -jar /zipkin-dependencies.jar
crontab.txt
0 * * * * /script.sh >> /var/log/script.log