SuperAPI AI 工具集

analytics

数据与分析

查看项目

更新于 10-15 21:51

技能介绍

用途:在 Sentry 前端 UI 中添加、查找与维护分析埋点事件,适用于为按钮、页面、弹窗或自定义交互补充追踪,以及在回答“有多少人做了某操作”这类使用量问题时进行事件发现与查询。

主要能力:提供两种工作流。数据侧先查 Amplitude(较快),若已连接 Amplitude MCP 可直接查询并报告结果;未找到匹配事件时说明尚未追踪,除非用户明确确认,否则不要进行埋点。代码侧埋点前必须先搜索 static/app/utils/analytics/ 目录,用 grep 检查同类事件,已存在则复用并可选添加参数而非新建重复事件。

命名与模式:事件名用 snake_case 并以点分隔,首段为功能域(如 feedback、dashboards2、issue_details),末段为动作,常用后缀包括 .clicked、.viewed、.submitted、.created、.changed、.rendered、.loaded、.dismissed、.opened。选择合适模式:路由级页面浏览用 route analytics hooks;按钮或链接点击用 Button 的 analyticsEventKey 属性;自定义交互(开关、拖拽、选择)与弹窗开关用 trackAnalytics() 手动调用;界面区域上下文用 AnalyticsArea 包装。

约束与实现细节:trackAnalytics() 调用需类型安全,事件键必须存在于对应 *EventParameters 类型并登记在域事件映射中;声明式辅助(按钮属性、useRouteAnalyticsParams)不在此列。优先使用声明式辅助,仅在无法覆盖时退回 trackAnalytics()。所有事件经 trackAnalytics() 或内置辅助流转,禁止直接调用 window.analytics、Amplitude.track() 等 SDK。组织上下文需传入 organization,其余由覆盖层处理。每次交互只发一个事件,事件参数不得包含邮箱、IP、全名等个人身份信息,需要身份时使用不透明 ID。

事件去向:事件通过 GetSentry 覆盖层分流。Reload 始终接收 eventKey;当 eventName 非空且组织存在时同时发送到 Amplitude 与 Pendo。eventName 设为 null 仅用于高频事件,此时只在 Reload 中,可通过 Redash 查询,且在 Amplitude 搜索中不可见,需回退到代码库 grep。Reload 接受 allow_no_schema: true,无需单独注册步骤。

关键文件:static/app/utils/analytics.tsx 为主注册表并导出 trackAnalytics;{domain}AnalyticsEvents.tsx 存放域事件类型与名称映射;makeAnalyticsFunction.tsx 为工厂,不要直接调用;routeAnalytics 下的两个 Hook 用于路由级事件名与参数;components/analyticsArea.tsx 提供区域上下文;components/core/button/types.tsx 定义按钮分析属性。遇到事件不触发、TypeScript 报错、本地调试或不确定是否需要 Amplitude 名称时,查阅 troubleshooting 参考。

适用场景:为 Sentry 前端功能补充使用量追踪、排查埋点是否生效、发现已有事件以复用。限制:需遵循类型安全与 PII 约束;Amplitude 无结果时只能查代码库;部分事实(如具体收费、平台支持范围)暂未提供。