已开启
[Observability][P2] 生产化改造 3/3:可观测性(日志/指标/告警) #8
雅皮士创建于  9 天前
雅皮士
雅皮士
9 天前 创建

背景

当前函数异常仅返回通用文案,缺少请求上下文、耗时与错误分类;无调用量/错误率/延迟监控;端侧无埋点。线上问题难以定位与量化。

现状证据(可验证)

  • 各云函数 catch 仅 return res.json(fail('登录失败'/'获取单词失败'/'记录失败'...)),丢失错误类型与堆栈。
  • log/error 使用零散,无统一字段(traceId、userId 脱敏、耗时)。
  • HttpUtil.ets 仅返回 {code:-1,message},无失败分类与耗时(PR #6 已加重试,但未加埋点)。
  • 仓库无监控/告警配置文件。

改造范围

  1. 结构化日志:函数内统一输出 JSON 字段 {traceId, function, userIdHash, status, durationMs, errorCode};对邮箱等敏感字段脱敏。
  2. 指标采集:调用量、成功率/错误率、P50/P95 延迟、冷启动次数、db-init 调用次数。
  3. 告警策略:错误率超阈值、P95 延迟超阈值、db-init 被调用、登录失败激增。
  4. 端侧埋点:网络失败、重试次数、页面耗时(可选)。
  5. 对接:Appwrite 日志 / 外部 APM / 自建 Prometheus+Grafana(择一)。

验收标准

关联

Refs #2, #4;配合 PR #6(重试)与后续鉴权体系。

likedislike