观测云数据采样功能技术指南:优化数据量与查询效率¶
功能处理逻辑¶
观测云的数据采样功能贯穿数据处理的整个生命周期:
-
采集阶段采样:在数据上报前进行过滤,减少数据摄入量和存储成本;
-
查询阶段采样:对大规模查询结果进行智能降采样,提升图表渲染与数据分析速度。
核心原则¶
两个阶段的采样相互独立又互为补充:采集阶段采样决定哪些数据被永久存储,直接影响存储成本;查询阶段采样仅影响数据展示方式,原始数据保持完整。在保证关键数据完整性的前提下,通过采样策略优化资源消耗。
数据采集阶段的采样配置¶
此处列举 3 个典型场景。
1. 用户访问监测(RUM)采样¶
-
配置入口:观测云控制台 > 用户访问监测 > 新建/编辑应用 > SDK 配置。
-
采样逻辑:
-
通过设置
sampleRate参数(如sampleRate: 90)控制数据上报比例。 -
SDK 初始化时生成随机数(0-100),若随机数小于采样率,则上报数据。
-
-
适用场景:Web/Android/iOS/小程序应用,需降低用户行为数据存储成本。
2. 应用性能监测(APM)采样¶
-
支持方式:
-
通过代码埋点设置采样率(如 DDTrace、OpenTelemetry 等);
-
在 DataKit 采集器中配置链路数据采样规则。
-
-
采样策略:
-
全量采集:错误请求、慢请求;
-
降采样:正常请求(可设置 1%-10% 采样率)。
-
3. 日志数据采样¶
-
配置能力:
-
使用 Pipeline 中的
drop()函数丢弃冗余日志,或sample()函数按比例采样; -
支持配置黑名单过滤低价值日志。
-
-
典型场景:对调试日志采用低采样率,错误日志全量采集。
查询阶段的采样功能¶
观测云在查询阶段提供智能采样机制,当查询数据量达到预设阈值时自动触发,从而保障大规模数据查询的响应性能。
系统设定的关键采样阈值包括:
-
仪表板查询 2 亿数据点
-
查看器查询 1 亿数据点
-
Facet 查询 500 万数据点
-
其他通用查询 2 亿数据点
采样策略选择指南¶
| 场景 | 采样类型 | 建议配置 | 注意事项 |
|---|---|---|---|
| 用户行为分析 | RUM 采集采样 | 根据业务重要性设置采样率 | 需确保错误操作和关键路径全量采集 |
| 应用性能排查 | APM 链路采样 | 错误/慢请求全量采集,正常请求采样率 1%-10% | 通过 TraceID 保证链路完整性 |
| 日志长期存储 | 日志 Pipeline 采样 | 高频日志采样率 ≤5%,错误日志全量采集 | 结合敏感数据脱敏规则 |
| 仪表板宏观趋势 | 查询采样 | 开启采样,时间范围 > 24 小时 | 排查具体问题时关闭采样并缩小时间范围。 |
| 实时告警 | 不采样 | 基于原始数据计算 | 避免采样导致的误报/漏报 |
关键注意事项¶
-
数据一致性:采样可能稀释极端值,重要决策需通过全量数据验证;
-
成本与性能平衡:采集采样降低存储成本,查询采样提升响应速度;
-
动态调优:定期检查采样后数据的统计分布,调整策略以适应业务变化。
总结¶
观测云的采样功能是一个多层次、可定制的成本与性能优化工具:
-
采集端采样直接减少数据流入,适用于 RUM、APM、日志等高频数据;
-
查询端采样保障大规模数据交互的流畅性,适用于仪表板与历史分析。
通过结合业务优先级(如错误全量、正常降采样)与查询需求(宏观趋势开启、精准排查关闭),可实现资源效率与数据可信度的最佳平衡。