写点什么

Jaeger 知识点补充,java 菜鸟教程面向对象

用户头像
Java高工P7
关注
发布于: 2 小时前
  • 在 Jaeger 的 web 页面上看到的服务名,默认用的是 spring.application.name 配置的值,如果您不满意,可以自行定制,配置项是 opentracing.jaeger.service-name,如下图红框所示,我这里改成了中文名:



  • 运行起来后,在 Jaeger 的 web 页面展示如下图红框:


关闭 span 上报的日志

  • 以下是一段日志,只有前面两行是咱们写代码的时候用 log.info 方法打印出来的,剩下的四行都是 Jaeger SDK 输出的


00:18:12 [http-nio-8080-exec-1] INFO c.b.j.p.c.HelloController [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] start hello from [1632269892342]


00:18:12 [http-nio-8080-exec-1] INFO c.b.j.p.c.HelloController [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] hello


00:18:12 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] Span reported: 49476da841cd354b:991b82965543f8da:e6333b3a1c14f544:1 - mockBizChild


00:18:12 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] Span reported: 49476da841cd354b:e6333b3a1c14f544:b595271a496cb0cb:1 - mockBiz


00:18:13 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId=49476da841cd354b spanId=b595271a496cb0cb sampled=true] Span reported: 49476da841cd354b:45e256ba3deed679:b595271a496cb0cb:1 - SET


00:18:13 [http-nio-8080-exec-1] INFO i.j.i.r.LoggingReporter [traceId= spanId= sampled=] Span reported: 49476da841cd354b:b595271a496cb0cb:6322077c0edb62cc:1 - hello


  • 上述日志中,Jaeger SDK 输出的那些内容,一般情况下用处不大,可以用以下红框中的配置关闭掉:


![在这里插入图片描述](https://im


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


g-blog.csdnimg.cn/b6ec297725f44aaba49b05d59c9bad5a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56iL5bqP5ZGY5qyj5a64,size_18,color_FFFFFF,t_70,g_se,x_16)


  • 再次运行,日志如下,清净了:


00:12:42 [http-nio-8080-exec-10] INFO c.b.j.p.c.HelloController [traceId=6430f498d5623103 spanId=9e4a4c8bb326352b sampled=true] start hello from [1632269562868]


00:12:42 [http-nio-8080-exec-10] INFO c.b.j.p.c.HelloController [traceId=6430f498d5623103 spanId=9e4a4c8bb326352b sampled=true] hello

all-in-one 镜像的持久化存储

  • 用 all-in-one 镜像部署 Jaeger 服务端,特点是简单快捷,适合在开发和调试阶段使用,下面一个命令即可完成部署:


docker run -d \


--name jaeger \


-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \


-p 5775:5775/udp \


-p 6831:6831/udp \


-p 6832:6832/udp \


-p 5778:5778 \


-p 16686:16686 \


-p 14268:14268 \


-p 14269:14269 \


-p 9411:9411 jaegertracing/all-in-one:1.26


  • 上述命令虽然能让 Jaeger 后端正常工作,但有个缺陷:数据保存在内存中,容器重启后数据不可恢复,为了解决这个问题,可以在 all-in-one 镜像的容器上开启 badger(一种嵌入式存储),并且将 badger 的数据存储在宿主机上,完整的命令如下所示,其中/Users/will/temp/202109/28/data 是我的电脑的磁盘目录,请您按照自己实际情况修改:


docker run -d \


--name jaeger \


-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \


-e SPAN_STORAGE_TYPE=badger \


-e BADGER_EPHEMERAL=false \


-e BADGER_DIRECTORY_VALUE=/badger/data \


-e BADGER_DIRECTORY_KEY=/badger/key \


-v /Users/will/temp/202109/28/data:/badger \


-p 5775:5775/udp \


-p 6831:6831/udp \


-p 6832:6832/udp \


-p 5778:5778 \


-p 16686:16686 \


-p 14268:14268 \


-p 14269:14269 \


-p 9411:9411 jaegertracing/all-in-one:1.26


  • 此时再重启或者重建 Jaeger 容器,历史数据都会完整保存

  • 如果您是在 docker-compose.yml 中配置 all-in-one 镜像,那么要注意 yml 文件中无法输入布尔型属性值,需要参考以下方式处理:

  • 首先在 docker-compose.yml 所在目录创建文件.env,内容如下:


BADGER_FLAG=true


  • 最后在 docker-compose.yml 中,Jaeger 容器的配置如下,使用了.env 文件中的配置项,另外,我这里的本地存储用的是新建的 volumes,您可以根据自己的需要改成前面那种本地磁盘映射:


version: '3.0'


networks:


jaeger-tutorials-net:


driver: bridge


ipam:


config:


  • subnet: 192.168.1.0/24


gateway: 192.168.1.1


volumes:

用于存储 badger 的数据

badger-data:


services:


jaeger:


image: jaegertracing/all-in-one:1.26


container_name: jaeger

处理时钟漂移带来的计算出负数的问题

command: ["--query.max-clock-skew-adjustment=100ms"]

选择网络

networks:


  • jaeger-tutorials-net

持久化,请选择适合自己的目录

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Jaeger知识点补充,java菜鸟教程面向对象