首页 / 资讯中心 / 文章详情

e2e遥测模块源码解析:PostHog事件与字段清单完全指南

e2e遥测模块源码解析:PostHog事件与字段清单完全指南 ★ FEATURED ARTICLE
e2e遥测模块源码解析PostHog事件与字段清单完全指南【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2ee2e 是一款面向 Web 和移动端应用的下一代端到端测试框架其遥测telemetry模块在每次 CLI 调用时收集匿名使用数据并以PostHog 事件的形式批量上报。本文带你读完 packages/e2e/src/telemetry/ 下 9 个源文件整理出一份完整的PostHog 事件与字段清单并说明隐私保护机制与关闭方法。一、遥测模块的 9 个源文件各管什么整个模块围绕一个 CLI 调用 一个遥测实例设计每个文件职责清晰文件职责telemetry.tsTelemetry核心类事件排队、2 秒预算内一次性 flush、首次运行提示events.ts4 类事件的构造函数只产出计数、时长、版本与短 tokenposthog.ts传输层一次 POST 到 PostHog 批量端点失败静默、绝不重试environment.ts采集机器事实系统、架构、CI 厂商、编码智能体、运行时版本store.ts本地偏好文件~/.config/e2e/telemetry.json随机 ID、opt-out 开关project.ts项目匿名 IDgit 根提交的 SHA-256 哈希token.ts命名白名单非纯 token 的名称一律折叠为otherfailure-kind.ts失败消息 → 封闭清单分类rate-limit、timeout等 13 类checkout.ts源码检出判断从仓库源码运行 CLI 时完全不发送关键设计一句话遥测丢失无所谓遥测拖慢或搞挂命令才是 bug见 posthog.ts 头注释。所有事件在命令结束时打包成一个请求发出共享 2 秒超时telemetry.ts。二、4 类 PostHog 事件清单事件名常量集中定义在 events.ts1.e2e_cli_session— 每个命令一条字段含义command命令名run、init、list、telemetry…flags只传标志名--headed绝不传值exit_code/duration_ms退出码与耗时error_code命令未能运行就失败的错误码参数错误固定为CLI_USAGE2.e2e_run_completed— 每次run/explore一条这是字段最丰富的事件构造于 runCompletedEvent数据全部来自report.json的汇总数字测试统计tests_discovered、tests_passed、tests_failed、tests_flaky、tests_skipped、attempts_total等引擎画像targets、platforms、engines形如web0.6.1自定义引擎名也原样计入Agent 行为steps_total、steps_agent等按类型计数agent_actions用运行器自己的动作名统计如{tap: 12, typeText: 3}项目自定义工具合并计为tool模型用量model_gateway、model_provider、model_id、model_tokens、estimated_cost_usd只取首个模型步骤精调模型 ID 报为other错误画像error_codes去重后最多 20 个、primary_error_code、error_kinds如MODEL_PROVIDER_FAILED:rate-limit配置特征config_workers、config_cache_mode、config_agents等只有计数与布尔值探索专属explore_steps、explore_findings_by_severity等绝不含探索目标文字3.e2e_init_completed— 每次init一条记录resultscaffolded、cancelled、install-failed等 6 种结局、所选engine/gateway的选项 ID以及是否勾选 skill、MCP、依赖安装events.ts。4.e2e_mcp_session— 每个 MCP 会话一条e2e mcp是长驻服务因此会话结束即单独发一次客户端名claude-code、cursor-vscode、outcomeclosed/open-failed、ended_by、calls_total/calls_failed、按工具名的calls计数mcpSessionEvent。三、所有事件共用的字段每个事件还会叠加三层公共属性send身份刻意弱化distinct_id本地随机 IDCI 用ci:厂商平台代跑用fleet:名称project_idgit 根提交的哈希浅克隆与 git 外为nullsession_id、first_run、days_since_first_run机器事实collectEnvironmentos、arch、cpu_count、memory_gb、docker、wsl、tty、sandbox如firecracker、ci/ci_name识别 21 家 CI 厂商、coding_agent识别 Claude Code、Cursor、Codex 等编码智能体、runtime/node_version/package_manager/e2e_version隐私开关$process_person_profile: falsePostHog 不建人物画像$geoip_disable: true不做地理位置推断四、隐私保护的 4 道防线白名单折叠引擎名、平台名、模型 ID 只有符合短 token规则才原样上报路径、URL、句子一律变othertoken.ts封闭失败分类模糊错误码ENGINE_FAILURE等的消息只对照一张正则清单产出的 13 个类型名之一离开机器消息原文永不外发failure-kind.ts本地文件失败即关闭偏好文件写不了就视为 opt-out宁可不发也不发无法归属的事件store.ts永不发送清单测试标题、文件路径、URL、截图、错误消息、堆栈、环境变量值、凭据、探索目标与发现——官方逐条列在 docs/telemetry.mdx五、如何关闭与调试遥测任选其一即可关闭环境变量优先npx e2e telemetry disable # 保存到 ~/.config/e2e/telemetry.json export E2E_TELEMETRY_DISABLED1 export DO_NOT_TRACK1想亲眼看看本该发出去什么设E2E_TELEMETRY_DEBUG1后运行任意命令事件会以[telemetry] {...}打印到 stderr 且什么都不发送telemetry.ts。首次运行会打印一次性提示数据每次实质变更时NOTICE_VERSION递增让提示重新出现。六、总结e2e 的遥测模块用 9 个源文件实现了轻量、静默、可审计的匿名统计4 类 PostHog 事件session / run / init / mcp只携带计数、时长、版本与短 token2 秒超时、单请求、无重试保证命令体验零损耗而 opt-out 机制、白名单折叠和封闭失败分类让发送了什么始终可被源码与E2E_TELEMETRY_DEBUG双重验证。想深入了解建议对照 docs/telemetry.mdx 的官方字段表与本文的源码导读一起阅读。【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站