结构化 Telemetry 的事件采样策略
抽样保留合格事件的子集。它可以减少交付和存储量,但它也改变了数据集可以回答的内容。抽样应遵循测量的成本或规模问题,而不是取代模式审查、重复删除或保留策略。
在采样之前,删除未使用的字段,标准化意外的高基数值,停止重复的生产者,并使用 遥测体积配方 测量事件计数和有效负载字节。
保留罕见且重要的成果
保持终端故障、安全相关事件、计费记录、事件里程碑和罕见工作流程结果的完全保真度,除非经批准的控制另有说明。统一的百分之一样本可以准确消除操作员在事故期间需要的事件。
常见的启动策略是:
- 保留所有失败、超时、重试耗尽以及明确的客户影响事件;
- 在有界事件窗口期间保留小型诊断允许列表中的所有事件;
- 仅对大量成功结果进行抽样;
- 保持小批量业务里程碑不抽样。
确定性采样
确定性采样使相关决策具有可重复性。使用版本化策略对稳定标识符(例如 request_id、trace_id 或 account_id)进行哈希处理,然后将其与目标速率进行比较。相同的标识符应该做出相同的决定,而策略版本保持不变。
记录:
sampled或同等收款结果;sample_rate,如0.1;sampling_policy,如api_success_v2;- 用于决策的稳定维度。
当原始哈希输入敏感时,不要存储它。如果分析期望步骤保持可连接,则不要为工作流的每个步骤独立生成新的随机决策。
明确加权分析
如果成功事件的采样率为 10%,则每个保留的成功代表在策略假设下大约十个合格的成功。存储包含概率并在估计计数时使用显式权重。
SELECT
route_template,
SUM(1.0 / sample_rate) AS estimated_requests
FROM api_request_completed
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
ORDER BY estimated_requests DESC;
加权计数不会自动修复每个统计数据。尾部百分位、不同用户数量、漏斗、群组保留和小客户群可能会变得不稳定或有偏见。保留未采样的数据以进行分母或序列关系必须准确的分析。
版本和评估政策
更改速率会更改数据集。记录策略版本和有效时间,以便查询可以避免比较不兼容的时间段,就好像收集是恒定的一样。
评价:
- 保留的事件计数和字节。
- 失败和罕见结果承保。
- 针对未采样的固定装置或临时保留的估计度量误差。
- 低运量航线、计划和区域的分段覆盖。
- 采样数据集无法再回答的问题。
不要从收集政策变化导致的销量下降来推断产品的改进。
当历史记录出现问题时,更倾向于保留更改
采样减少了未来的行覆盖范围。保留会在策略定义的期限后删除旧数据。如果当前事件详细信息必须保持完整,但长期历史记录成本高昂,则较短的保留策略可能更合适。与取样分开审查 数据保留和删除。
继续 高基数字段、遥测成本管理 和 数据质量 SQL 食谱。