注意

本文档适用于 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,不推荐用于生产环境,但适用于测试目的。让我们看看所需的所有步骤

  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 集群,它将使用容器部署服务(docker/podman)部署 jaeger all-in-one

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

如果部署不成功,您也可以手动部署 all-in-one 服务并启动不带 jaeger 的 vstart 集群。

  1. 使用 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>

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入