HOW - 日志上报实践系列(一)

前言

在一个项目中,我们除了满足基本的业务诉求之外,还应该创建一个全面、精细、深度的前端监控体系。包括:

1. 收集什么

  1. 页面异常和错误。如资源加载异常(JavaScript 加载异常、CSS 加载异常、图片加载异常、音视频加载异常等)、JavaScript 错误(含 JavaScript 执行错误、Promise 错误等)。
  2. 用户行为日志。session 跟踪、点击上报、曝光上报、自定义日志上报(开发调试类型、业务模块错误)。
  3. 页面性能。首屏耗时(自定义策略)、阶段耗时(DNS 查询耗时、TCP 连接耗时、SSL 建立连接耗时、请求响应耗时、内容传输耗时、DOM 解析耗时、资源加载耗时)、Long Task、Memory 页面内存。进一步基于统计生成各种指标值,如 FCP、CLS、LCP、TTFB、FID
  4. 页面接口。接口请求/失败总次数、接口请求成功/失败次数、接口请求成功率/失败率、接口请求平均耗时、5xx数量、4xx数量、业务错误码异常统计
  5. 白屏监控HOW - 移动端白屏问题优化和监控

2. 如何收集

本系列的主题。

3. 日志上报管理

在实际应用中,日志上报过程中可能会遇到诸多问题,包括日志数据不规范数量过多大小超限丢失 等。为了有效管理和处理这些问题,可以采取以下措施:

  1. 日志数据规范化:确保日志数据的格式和内容符合规范,包括字段命名、数据类型、数据结构等。可以定义统一的日志格式和字段规范,并在客户端和服务器端进行数据验证和转换,以确保日志数据的一致性和可解析性。

  2. 日志级别和分类:根据日志的重要程度和类型,设置不同的日志级别和分类。例如,将日志分为信息日志警告日志错误日志等级别,并根据实际情况记录相应的日志内容。可以根据不同级别的日志采取不同的处理策略,如及时上报存储过滤等。

  3. 日志采样和聚合:对于大规模的系统和高流量的应用,可以采用日志采样日志聚合的方式来减少日志数量和大小,如此可以减轻日志服务器的压力,也可以减轻本地的性能开销。例如,可以按时间窗口用户会话随机抽样的方式收集部分日志数据,并进行聚合统计,以降低数据量和压力。

  4. 日志压缩和分片:对于单条日志过大的情况,可以考虑对日志数据进行压缩分片处理。可以使用压缩算法(如 gzip、deflate)对日志数据进行压缩,减小数据大小;同时,可以将大型日志数据分成多个小片段进行传输和存储,以降低单条日志的大小和传输成本。

  5. 日志丢失:网络环境不稳定可能导致日志丢失,为了应对日志丢失的情况,可以考虑以下策略:本地缓存,在客户端实现本地日志缓存机制。当网络连接不稳定或不可用时(可通过dns探测机制判断),将日志数据暂时存储在本地缓存中,待网络恢复后再进行重试或批量上传。也可以更进一步,提供 确认机制

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值