注意

本文档适用于 Ceph 开发版本。

JAEGER- 分布式追踪

Jaeger + Opentracing 为分布式系统提供了现成的跟踪服务,并因其简单性和标准化而成为广泛使用的标准。

我们使用了一个修改后的jaeger-cpp-client后端,它提供给 Opentracing API,负责收集跟踪段,这些跟踪段是使用智能指针创建的,这些智能指针携带时间戳、跟踪ID和其他元信息,如与跟踪段相关联的特定标签/日志,以在分布式系统中唯一标识它。

基本架构和术语

参考Ceph 跟踪文档

如何开始使用跟踪?

通过 Ceph 启用 jaegertracing 需要部署 Jaeger 守护进程 + 使用 Jaeger 编译 Ceph,协调用于开发者的 vstart 集群,这使用了一个 jaeger一体化 docker这不推荐用于生产环境,但用于测试目的。让我们看看所有需要的步骤:

  1. 使用 install-deps 更新系统中的 Jaeger 依赖项:

    $ WITH_JAEGER=true ./install-deps.sh
    
  2. 使用启用 Jaeger 编译 Ceph:

  • 对于预编译版本:

    $ cd build
    $ cmake -DWITH_JAEGER=ON ..
    
  • 对于使用 do_cmake.sh 的新编译:

    $ ./do_cmake.sh -DWITH_JAEGER=ON && ninja vstart
    

3. 成功编译后,使用--jaeger启动一个 vstart 集群,这将部署jaeger 一体化使用容器部署服务(docker/podman):

$ MON=1 MGR=0 OSD=1 ../src/vstart.sh --with-jaeger

如果部署不成功,您可以手动部署一体化服务,并且也可以不使用 jaeger 启动 vstart 集群。

  1. 使用 rados-bench 写入测试跟踪:

    $ bin/rados -p test bench 5 write --no-cleanup
    

参见

使用-jaeger-cpp-client-for-distributed-tracing-in-ceph <https://medium.com/@deepikaupadhyay/using-jaeger-cpp-client-for-distributed-tracing-in-ceph-8b1f4906ca2>

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.