监控什么

用户体验相关

  • 首屏时间
  • 文件加载时间
  • 页面性能(performance)

产品上线后是否出现异常

  • 路由切换(href、hashchange、pushState)
  • JsError
  • 资源错误
  • API
  • 日志上报

应用监控

管理、监控一个软件应用的性能与可用性 。

  • 客户端的日志
  • 宿主机的心跳状态

监控粒度

Trace(分布式链路追踪)

即一次完整的事务调用请求。比方说一个用户的下单请求,经过层层服务预处理,到支付服务成功,数据落库,成功返回,这就是一条完整的 Trace 。Trace 最大的特点就是它含有上下文环境,通常来说会由一个唯一的 ID 来进行标识。一个 Trace 内可能有多个不同的事务 (Transaction) 以及标志事件 (Event) 组成。

  • 依赖合理性
  • 调用性能分析
  • 资源容量规划

服务的质量:

  • 响应时间(性能)
  • 错误率
  • 稳定性

服务可能存在的问题:

  • 服务耗时突增
  • 服务出现错误
  • 服务调用存在长尾

测试更关注系统的准确性,以及新旧版本应用在执行上的差异

Log

即日志。代表了用户主动记录的离散的数据。通常来说就是用户采用 logging 组件输出到日志文件的具有 WARN,INFO,ERROR 等用来表示不同执行状态级别的信息。这些日志信息在用户进行问题分析判断时可以提供更为详尽的线索。

Metric

代表了用户定义关心的或者通用的预定义的一些运行时指标。通常来说,Metric 具有时序可累积性。根据不同的粒度需求,Metric 可以做到小时级、分钟级、秒级等。通常来说, Metric 是数据采集项目的聚合,旨在为用户展示某个指标在某个时段的运行状态。

Report

报表是针对某种特定领域,经过对收集而来的各种数据进行统计、分析而产生的关键信息展示载体。报表含有丰富的信息,通过报表用户可以获得关于特定领域指标集的多维信息,从而更好地作出排障、调优决策。

业务指标监控


基础设施监控


第三方解决方案

  • frontjs
  • fundebug
  • trackjs
  • instabug
  • rollbar
  • sentry

    sentry

  • 第一时间通知

  • 出错的 url
  • 具体的错误文本、类型
  • 客户端的一些信息(浏览器版本、操作系统、用户行为)
  • 代码版本(release版本号)
  • 出错的代码文件(source map)
  • 还原用户操作