用途:当 Astro 项目部署在 Cloudflare Workers 且已有 soborbo-error-pipeline 仓库时,用它接入客户端错误监控,让前端错误与服务器异常被统一上报、分级和告警。不适用于 React/Vue 等重型 SPA,也不建议在预发布/暂存环境接入。
主要能力:客户端 tracker 约 1.5KB、无依赖,使用 sendBeacon 发送错误;client-init 注册全局错误处理器;Astro 端点 /api/error-log 仅约 15 行,立即返回 204,并自动捕获 SSR 异常。所有严重级别判定、节流、持久化和邮件逻辑都位于独立的 notifier worker(Tail Worker)中,producer 端保持简单。
使用方式:将参考文件复制到 src/lib/errors/ 与 src/pages/api/。在基础布局 </body> 前最后一个脚本处初始化:import { initErrorTracker } from '@/lib/errors/client-init'; initErrorTracker({ siteId: import.meta.env.PUBLIC_SITE_ID || 'unknown', endpoint: '/api/error-log' }); 将 PUBLIC_SITE_ID 设为与 producer 的 wrangler.jsonc 脚本名一致,并在 wrangler.jsonc 中添加 tail_consumers 指向 error-notifier,然后重新部署。服务端已知错误可用 console.error 输出带 __pipeline: 'error' 等字段的结构化 JSON,严重级别由 notifier 根据 code 解析。
性能与限制:client init 在 requestIdleCallback 中执行,TTI 开销约 0.3–0.5ms;sendBeacon 不阻塞,端点在 5ms 内返回 204。该技能不涵盖 Web Vitals、源码映射上传,也不包含 notifier/admin worker,这些需参考 soborbo-error-pipeline 仓库;更多配置与排错见参考文件。