注意
本文档适用于 Ceph 开发版本。
JAEGER- 分布式追踪
Jaeger 为分布式系统提供现成的追踪服务。
基本架构和术语
追踪:显示系统中的数据/执行路径。
跨度:追踪的单个单元。存储操作名称、时间戳和追踪内顺序等信息的结构。
JAEGER 客户端:OpenTracing API 的特定语言实现。
JAEGER 代理:监听通过用户数据报协议发送的跨度的守护进程。代理应放置在受监控应用程序的同一主机上。(JAEGER 代理类似于边车监听器。)
JAEGER 收集器:接收 JAEGER 代理发送的跨度的守护进程。JAEGER 收集器将跨度拼接在一起形成追踪。(可以启用数据库来持久化这些追踪。)
JAEGER 查询和控制台前端:基于 UI 的前端,展示 JAEGER 追踪报告。可在http://<jaeger 前端主机>:16686。
了解更多关于 JAEGER 追踪:。
JAEGER 部署
JAEGER 可以使用 cephadm 或手动部署。
基于 cephadm 的服务部署
JAEGER OPENTELEMETRY 全容器手动测试部署
对于单节点测试,Jaeger opentelemetry 可以使用以下方式部署:
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-e COLLECTOR_OTLP_ENABLED=true \
-p 6799:6799/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:latest --processor.jaeger-compact.server-host-port=6799
Note
每个 JAEGER 代理必须在每个主机上运行(不能在所有容器模式中运行)。这是因为跨度被发送到本地 JAEGER 代理。没有活动 JAEGER 代理的主机的跨度将被丢失。
JAEGER 代理的默认配置端口与官方默认端口 6831 不同,因为 Ceph 追踪器配置为将追踪发送到监听配置端口 6799 的代理。对于手动 JAEGER 部署,请使用选项 “--processor.jaeger-compact.server-host-port=6799”。
如何在 Ceph 中启用追踪
Ceph 中的追踪默认禁用。
追踪可以全局启用,也可以单独为每个实体启用(例如,为 rgw)。
全局启用追踪:
ceph config set global jaeger_tracing_enable true
为每个实体启用追踪:
ceph config set <entity> jaeger_tracing_enable true
RGW 中的追踪
RGW 上的追踪可以在 JAEGER 前端下的服务中找到。rgw在 JAEGER 前端中。
请求
每个用户请求都被追踪。每个追踪包含以下标签:操作名称, 用户 ID, 对象名称和桶名称.
还有一个上传 ID标签用于多部分上传操作。
请求追踪的名称格式如下:<命令> <事务 ID>.
多部分上传
有一种追踪类型,它包含每个多部分上传请求的跨度,并包括所有Put Object请求。
多部分追踪的名称格式如下:multipart_upload <上传 ID>.
JAEGER 前端中的 rgw 服务:

JAEGER 前端中的 osd 服务:

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