# 1. 链路关联(TraceId、UserId、SessionId)与发布标记 A TraceId 与 SessionId 粒度相同,可以互换 B 发布标记只用于记录部署时间 C TraceId 关联请求、SessionId 关联会话、UserId 关联用户,配合 release 版本标记可支撑按用户/会话/版本的切片分析与回滚决策 ✓ 正确答案 D UserId 无需在登出时清除
# 2. 日志脱敏、采样、批量与重试策略 A 4xx 与 5xx 错误都应无限重试 B 脱敏应在业务代码各处分别实现 C 在 SDK 出口统一脱敏、按事件价值分层采样、批量压缩发送,重试采用指数退避且 4xx 不重试,并设队列上限与卸载兜底 ✓ 正确答案 D 采样率不影响聚合结果的统计意义
# 3. OpenTelemetry Collector + 后端(Jaeger/Tempo/Honeycomb) A Collector 只能接收服务端数据,不支持前端 B 前端 SDK 必须直连 Jaeger 才能上报 C Collector 通过接收器-处理器-导出器架构汇聚多端 trace,统一采样、脱敏与重试后再分发到 Jaeger/Tempo/Honeycomb 等后端 ✓ 正确答案 D Collector 不做任何数据改写
# 4. OpenTelemetry JS(@opentelemetry/instrumentation-document-load) A 它只能手动打点,无自动检测 B 它自动生成 navigation 与 resource span,零侵入采集页面加载性能,并与后端 trace 经 traceparent 贯通 ✓ 正确答案 C 资源 span 无法区分类型 D 它与 Web Vitals 数据完全重复,无需同时使用
# 5. 曝光/点击埋点的设计模式(声明式指令/属性驱动 vs 命令式调用)与各自适用场景 A 声明式埋点可以表达任意复杂逻辑,无需命令式 B 声明式(属性/指令驱动)适合通用交互、批量治理,命令式适合复杂事件携带上下文,两者共用统一 track 内核按场景分层使用 ✓ 正确答案 C 命令式埋点完全不可维护 D 埋点无需统一事件协议
# 6. sendBeacon 与 fetch keepalive 保证页面卸载时上报可靠性的机制与各自限制(体积、响应不可读) A sendBeacon 可以读取服务端响应并自定义请求头 B 二者都由浏览器接管保证卸载期投递,但都有体积(约 64KB)限制且响应不可读,sendBeacon 不能自定义 header,需按场景选型并降级兜底 ✓ 正确答案 C 普通 fetch 在卸载时也能可靠完成 D keepalive 请求可以无限期存活
# 7. 埋点 SDK 架构,事件队列、批量上报、采样、失败重试与离线缓存的设计 A 每条事件都单独立即上报,不设队列 B 离线缓存无需清理,可无限增长 C 失败事件应无限重试直到成功 D 事件经"采样→队列批量→退避重试→离线持久化恢复"管道处理,设容量与 TTL 上限、4xx 不重试,卸载用 sendBeacon 兜底 ✓ 正确答案
# 8. 合成监控(Synthetic Monitoring)与 RUM 的互补 A 合成监控可控可复现,适合发布回归与可用性探测;RUM 反映真实分布,两者配合覆盖"主动验证+被动感知" ✓ 正确答案 B 合成监控能完全代表真实用户体验 C RUM 可以替代所有拨测场景 D 两种监控采集的数据完全一致
# 9. 告警分级(P0/P1/P2/P3)与 SLO/SLA 设计 A 告警按影响面/损失/时效分级,SLO 以错误率与 Web Vitals 分位等指标定义错误预算,预算消耗速率驱动告警升级,避免告警疲劳 ✓ 正确答案 B 告警级别只由错误数量决定 C SLO 与告警完全无关 D P0 告警可以任意触发,无需升级机制
# 10. navigation PerformanceEntry 与 Long Tasks API 的持续采集 A longtask 无法与交互事件关联 B 两类 entry 都是持续产生,采集方式相同 C navigation entry 每页只产生一条,需尽早注册并 buffered 读取;longtask 是持续流式数据,需常驻观察并聚合上报 ✓ 正确答案 D navigation entry 在 load 前即可读取完整字段
# 11. 前端数据收集的隐私合规边界(最小化/同意/删除)如何界定与落地? A 最小化原则只适用于后端,前端采集无需考虑 B 合规落地需 consent 门控采集、URL 与字段脱敏、数据 TTL 与删除通道,并遵循最小化采集,避免影子采集 ✓ 正确答案 C 用户同意后即可无限期保存所有数据 D 设备指纹跨站追踪属于最小化采集
# 12. OpenTelemetry 在前端的浏览器端 SDK A OTel 只能用于服务端 B instrumentation 无法自动拦截 fetch C OTel 浏览器 SDK 由 provider、instrumentation、exporter 组成,通过 traceparent 传播上下文,与 Sentry 共存时需保证单一 trace 源避免 traceId 冲突 ✓ 正确答案 D OTel 与 Sentry 必须二选一
# 13. OpenTelemetry 自动检测(auto-instrumentation) A 自动检测可以理解所有业务语义 B 自动检测不会产生任何性能开销 C 自动检测通过 patch 原生 API 生成网络/加载/交互 span,业务语义需手动打点补充,并配置忽略规则与采样控制数据量 ✓ 正确答案 D 自动检测覆盖所有第三方库的内部传输
# 14. IntersectionObserver 实现曝光埋点的工程实践(threshold 选择、去重、可见性判定) A 元素只要进入视口一瞬就算曝光,无需去重 B threshold 只影响回调次数,不影响判定 C 用 threshold 与持续时长判定有效曝光、unobserve 去重、页面隐藏不计,并批量观察与降级兜底,是工程要点 ✓ 正确答案 D 曝光埋点必须为每个元素单独创建 observer
# 15. 埋点数据治理,事件 schema 管理、命名规范、版本化与灰度校验 A 通过集中 schema 管理、统一命名规范、版本化兼容演进与灰度校验流程,可保证埋点数据的长期质量 ✓ 正确答案 B 埋点字段可以随意增删,无需管理 C 破坏性字段变更可以随时全量上线 D 埋点无需 CI 校验
# 16. 无埋点/全埋点(autotrack)方案的工程价值与数据噪声边界 A 全埋点可以完全替代手动埋点 B 全埋点不存在隐私风险 C 全埋点记录的事件都带有完整业务参数 D 全埋点零接入覆盖广,但存在语义缺失、元素身份漂移、数据噪声与隐私风险,需过滤治理并与手动埋点混合使用 ✓ 正确答案
# 17. A/B 实验分流与埋点归因的数据一致性(实验组标识随事件上报、曝光时机记录) A 实验标识可以在分析阶段反查补录 B 实验标识须在事件产生时随事件携带并持久化,曝光实验以可见时机为归因起点,配合分配版本处理分流调整,保证前后口径一致 ✓ 正确答案 C 曝光与点击可以用不同口径归因 D 分流比例调整后历史事件自动跟随新分组
# 18. 埋点反作弊与数据质量,设备指纹、会话重放与异常流量识别 A 埋点数据天然可信,无需反作弊 B 刷量流量对分析结果无影响 C 设备指纹可以无限期跨站追踪用户 D 用事件幂等去重、设备指纹与行为模式识别异常流量、分层存储并在核心指标剔除可疑数据,可保障数据可信度 ✓ 正确答案
# 19. OpenTelemetry Logs/Metrics 与 Sentry/Bugsnag Errors 在告警分级的工程取舍 A 所有监控数据都适合用同一种告警方式 B Metrics 适合阈值/SLO 告警,Errors 适合新增缺陷事件告警,Logs 提供详情,统一路由并去重可避免多渠道重复轰炸 ✓ 正确答案 C 错误告警可以完全替代指标告警 D 日志无需聚合即可直接告警
# 20. Trace Context(W3C traceparent) A traceparent 只包含 trace-id 一个字段 B 前后端必须使用不同的 trace-id C traceparent 含 version/trace-id/parent-id/flags,由前端生成并注入请求头、后端延续,sampled 标志决定 trace 是否采样保留 ✓ 正确答案 D tracestate 是 traceparent 的必填部分
# 21. 埋点与隐私合规(GDPR/个保法、consent 管理)的协作,敏感字段的最小化采集 A 用户同意一次后即可永久采集所有字段 B 敏感字段只要脱敏就可以全量采集 C 按 consent 分级门控采集,敏感字段按"不采集/脱敏/假名化"三档最小化处置,并提供删除与导出支持数据主体权利 ✓ 正确答案 D 合规要求只影响后端存储,不影响前端 SDK
# 22. 实时埋点管道(上报接入、Kafka 消费)与离线分析链路的分工 A 离线链路延迟更低,适合实时告警 B 实时链路支撑秒级告警与大盘,离线链路支撑深度分析,同源事件双路消费,前端上报需保证结构化与幂等 ✓ 正确答案 C 两条链路可以各自定义清洗口径 D 前端上报无需携带准确时间戳
# 23. 埋点验证与回归测试(debug 模式、日志回放、CI 中 schema 校验)的工程实践 A debug 模式做即时验证、录制回放与 E2E 断言做回归、CI 中 schema 校验阻断漂移,三层配合保障埋点质量 ✓ 正确答案 B 埋点发布后无需验证,出错再修 C schema 校验只能在后端执行 D 测试环境可以直连线上埋点网关