1.1 Harbor新功能-分布式跟踪,Harbor在2.4.0版本后新增一个功能:向 Harbor 添加跟踪功能,以增强故障排除、识别性能瓶颈等。目前Harbor支持Jaeger和OpenTelemetry(简称otel)两种实现方式。,
,1.2 Jaeger简单介绍,Jaeger 是一个开源的分布式追踪系统,它可以在复杂的分布式系统中进行监控和故障排查。Jaeger的主要功能包括分布式请求监控、性能调优、故障分析和服务依赖分析等。,本处并不会详细介绍Jaeger,仅简单部署Jaeger来实现对Harbor的分布式追踪功能而做的Demo。如果是在生产环境,也可以参考本文,因为Harbor中关于Jaeger的配置都是类似的。,本处采用Jaeger all-in-one单节点部署。其包含了3个Jaeger组件:,这种方式是将数据直接存储在内存中,无需额外部署存储组件,不建议在生产环境使用该方式进行部署。,是将数据存储在内存中,仅用于测试。需要注意16686等端口没有被占用。,不同版本的Jaeger部署参数略有区别,其它版本可查看:https://www.jaegertracing.io/docs/,然后在浏览器通过http://localhost:16686或者http://192.168.2.250:16686来访问 Jaeger UI。,
,因为刚才部署的Jaeger采用的是all-in-one的方式,已经包含了jaeger-agent服务了,我们在Harbor的配置文件中启用Jaeger功能并指定Jaeger-Agent的地址即可。,
,在Harbor的配置文件中启用Jaeger的分布式追踪功能。,sample_rate: 如果要对100%的跟踪数据进行采样,请将sample_rate设置为1;如果要采样50%的跟踪数据,请设置0.5,依此类推;,namespace: 命名空间用于区分不同Harbor服务,如果你需要对多个Harbor服务进行分布式追踪的话建议启用该配置;,attributes:attributes是一个键值对,dict包含用于初始化跟踪提供程序的用户定义属性;,本处采用的是Jaeger-agent的方式,其它的配置参数请注释掉,同时注意yaml格式对齐。,
,每次修改harbor的配置文件,都需要执行./prepare才可以使修改的配置生效。,
,执行./install.sh重新安装并启动Harbor,在部署Jaeger服务和配置Harbor服务后,可以在Jaeger的UI界面查看Harbor的追踪信息。,在Search-Service处可以看到Jaeger已经采集到Harbor的监控数据了,,
,然后在【System Architecture】的DAG查看Harbor的链路追踪图了:,
,
© 版权声明
文章版权归作者所有,未经允许请勿转载。