注意
本文档适用于 Ceph 的开发版本。
JAEGER- 分布式跟踪
Jaeger + Opentracing 为分布式系统提供即用型跟踪服务,由于其简单性和标准化,正成为广泛使用的标准。
我们使用修改后的 jaeger-cpp-client 作为 Opentracing API 提供的后端,它负责收集 span。这些 span 使用智能指针创建,携带时间戳、TraceID 和其他元信息,例如与 span 关联的特定标签/日志,以在整个分布式系统中唯一标识它。
基本架构和术语
请参阅 Ceph Tracing 文档
如何开始使用跟踪?
在 Ceph 中启用 jaegertracing 需要部署 Jaeger daemons + 使用 Jaeger 编译 Ceph,并编排在供开发人员使用的 vstart 集群中使用,这使用 Jaeger all-in-one docker,不推荐用于生产环境,但适用于测试目的。让我们看看所需的所有步骤
使用 install-deps 更新系统以获取 Jaeger 依赖项
$ WITH_JAEGER=true ./install-deps.sh启用 Jaeger 编译 Ceph
对于预编译构建
$ cd build $ cmake -DWITH_JAEGER=ON ..对于使用 do_cmake.sh 的全新编译
$ ./do_cmake.sh -DWITH_JAEGER=ON && ninja vstart3. 编译成功后,使用 --jaeger 启动一个 vstart 集群,它将使用容器部署服务(docker/podman)部署 jaeger all-in-one
$ MON=1 MGR=0 OSD=1 ../src/vstart.sh --with-jaeger如果部署不成功,您也可以手动部署 all-in-one 服务并启动不带 jaeger 的 vstart 集群。
使用 rados-bench write 测试跟踪
$ bin/rados -p test bench 5 write --no-cleanup
另请参阅
using-jaeger-cpp-client-for-distributed-tracing-in-ceph <https://medium.com/@deepikaupadhyay/using-jaeger-cpp-client-for-distributed-tracing-in-ceph-8b1f4906ca2>