最近在学习OpenTelemetry、Jaeger,为微服务集群提供可观测能力,方便性能监控、预警和线上bug排查。
是否需要采样
对于生成的trace,如果大多数请求都成功了,并且以一个能够接受的时延完成,那么我们就不需要 100% 的trace来观察应用程序和系统。我们只需要收集部分能够代表总体的trace即可,在实现有效观测的前提下,来降低采集和存储成本。官方文档:OpenTelemetry-Sampling

采样方式
OpenTelemetry提供的采样方式有两种:
-
头部采样
-
尾部采样
有很多供应商也实现了比较有特色的采样方式,比如Jaeger的自适应采样。
头部采样用于尽早地做出采样决策,采样或丢弃某个跨度或迹线的决策不是通过检查整个迹线来做出的,而是通过概率、速率的方式进行采样。这种采样方式配置简单,缺少灵活性,不能满足复杂的采样需求。比如:不能够对采集到状态为errr的trace,不能够通过对trace的时延大小进行采样。头部采样通过OpenTelemetry-SDK配置即可,Python这部分的内容有些不完整直接看对应的包即可。
尾部采样通过考虑trace内

最低0.47元/天 解锁文章
79

被折叠的 条评论
为什么被折叠?



