一、背景:前端运维的痛点
在广告投放平台上线之后,我们遇到了一些典型问题:
- 某些用户反馈广告展示异常,但前端日志不完整
- 某天页面报错激增,却难以快速定位是哪一段代码导致
- 某些 bug 很偶发,无法复现场景
于是我推动搭建了前端智能化监控与异常分析系统,并引入 AI 协助分析高频报错与聚类归因。
二、整体架构图
+------------------+ +-----------------+
| 用户访问页面 | ----> | 错误监控 SDK |
+------------------+ +-----------------+
↓
+-------------------+
| 日志聚合服务器 |
+-------------------+
↓
+-------------------+
| AI 异常分析引擎 |
+-------------------+
↓
+-------------------+
| 报告 & 告警系统 |
+-------------------+
三、错误采集:接入 sentry + 自定义埋点
Sentry.init({
dsn: 'https://xxx@sentry.io/xxx',
integrations: [new Sentry.BrowserTracing()],
tracesSampleRate: 1.0
})
封装业务级别埋点:
window.__reportBizError = (errorKey, extra = {}) => {
Sentry.captureMessage(`[BizError] ${errorKey}`, {
extra
})
}
四、AI 分析核心能力
-
自动聚类相似错误栈
- 使用 embedding + KMeans 将相似的错误堆栈聚为一类
- 输出“高频错误族”,提示开发者
-
归因分析
- 结合时间窗口、用户行为日志,尝试输出可能的 root cause:
{ "error_type": "Cannot read property 'data' of undefined", "likely_trigger": "用户点击广告卡片后迅速切页导致页面未挂载" } -
建议修复方式(通过 Prompt):
错误:Cannot read property 'xxx' of undefined 建议:在访问该属性前增加 null 判断,或检查数据请求是否延迟返回
五、前端页面中的使用方式
错误趋势展示卡片:
<n-card title="本周高频异常">
<n-list>
<n-list-item v-for="item in clusterList" :key="item.id">
<p>{{ item.signature }}</p>
<p class="text-xs text-gray">出现次数:{{ item.count }}</p>
</n-list-item>
</n-list>
</n-card>
六、异常回溯能力实现
在错误发生前 10 秒内捕获用户行为栈:
const trace = []
document.addEventListener('click', (e) => {
trace.push({ type: 'click', timestamp: Date.now(), target: e.target?.outerHTML })
if (trace.length > 100) trace.shift()
})
错误发生时上传:
Sentry.captureException(err, {
extra: {
userTrace: trace.slice(-10)
}
})
七、上线后效果
- 自动识别高频错误 85%
- 错误修复平均时间从 3 天降低到 1 天内
- 新人开发者更容易理解问题上下文
八、总结:AI 是前端稳定性的新武器
这套方案体现了我对“工程可观测性”的重视,也实践了 AI 如何协助前端做更快响应和更优判断。
稳定性 + 智能性的结合正是未来方向,而我已经有真实项目经验并能快速落地部署。