CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/OpenTelemetry/采样
文档目录
文档开始手动插桩使用插桩库导出器资源采样什么是 OpenTelemetry?
开发人员入门运维人员入门参考应用规范
可观测性入门上下文传播
组件语义约定Resources(资源)插桩范围采样Distributions(发行版)术语表
演示架构Collector 数据流仪表盘开发Docker 部署Fork 演示仓库Kubernetes 部署
API 参考文档示例
PHP 零代码插桩
快速入门安装 Collector
管理发行版故障排查Collector 扩容转换遥测数据架构定制 Collector
基准测试自适应性
支持库列表
从 OpenTracing 迁移
规范状态概览
常见漏洞与暴露(CVE)处理敏感数据
前置条件Issue提交内容文档风格指南网站本地化博客PR 检查公告开发环境设置与构建、服务等命令SIG 审批者与维护者的实践指南

OpenTelemetry

采样

采样(Sampling) 是一种限制系统生成的 span 数量的机制,你应根据自身的需求选择合适的采样器(Sampler),但是一般建议在一个链路(trace)开始时就做出采样决策,并将该决策传递到其他服务中。 你可以使用 WithSampler 选项在 Tracer Provider 上设置一个 Sampler,如下所示: AlwaysSample 和 NeverSample...

采样(Sampling) 是一种限制系统生成的 span 数量的机制,你应根据自身的需求选择合适的采样器(Sampler),但是一般建议在一个链路(trace)开始时就做出采样决策,并将该决策传递到其他服务中。

你可以使用 WithSampler
选项在 Tracer Provider 上设置一个
Sampler,如下所示:

provider := trace.NewTracerProvider(
    trace.WithSampler(trace.AlwaysSample()),
)

AlwaysSample
和
NeverSample
顾名思义,AlwaysSample 表示对每个 span 都会进行采样,而 NeverSample 表示不对任何 span 进行采样。

其他采样器还包括:

  • TraceIDRatioBased:它按一定比例采样 span,这个比例根据提供给采样器的数值决定。例如设置为 0.5 表示采样 50% 的 span。
  • ParentBased: 是一种采样器装饰器,它的行为会根据当前 span 是否有父 span,以及父 span 的采样状态来决定。如果 span 没有父级,那么就使用传入的默认采样器来决定是否采样;如果有父 span,默认情况下:若父 span 被采样了,则当前 span 也被采样;若父 span 没被采样,则当前 span 也不会被采样。

默认情况下,Tracer Provider 将 ParentBased 采样器和 AlwaysSample 采样器结合在一起使用。

在生产环境中,建议将 ParentBased 采样器与 TraceIDRatioBased 采样器搭配使用。