5、分布式追踪的形态

分布式追踪的形态

1. 分布式追踪基础与范围管理

在Go等语言中,可使用用户管理的进程上下文对象编写伪代码,而Java或C#等语言则可利用线程本地存储实现类似功能。关键在于,要将跨度上下文传递给想要创建跨度的子函数,可通过函数参数传递单个跨度对象来实现。

不过,为每个方法签名添加跨度上下文的做法不太优雅。此时,可借助范围管理器来简化这一过程。范围管理器利用线程本地存储自动保存对活动跨度的引用,从而创建新的子跨度。

2. 对追踪友好的微服务和无服务器架构

分布式追踪与微服务、无服务器架构是天生的搭档,但并非所有微服务在追踪方面都是平等的。以下是一些操作建议和注意事项:
- 建议操作
- 优先考虑白盒检测 :微服务应足够小,以便能进行基于库的检测实践,将追踪代码集成到服务中。这样不仅能更准确地确定追踪数据的范围,还能随着服务的更新逐步完善追踪功能。
- 捕获语义信息 :为生成的跨度附加相关的语义属性,如OpenTelemetry的span.kind属性,以更全面准确地了解服务的运行情况。
- 创建重要属性 :添加如主机名、区域或数据中心、服务版本等属性,还可考虑添加README属性或指向内部系统的指针,方便人们获取更多服务信息。同时,确保对入站和出站请求进行追踪,最好由RPC库自动处理跨度的创建过程。
- 从已知问题入手 :针对特定的问题区域、对延迟敏感的服务或其他关注领域,先从这些地方开始构建追踪,以便更快地了解和解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值