Logging,Metrics 和 Tracing



Logging 即是记录处理的离散事件,比如我们应用的调试信息或者错误信息等发送到 ES;审计跟踪时间信息通过 Kafka 处理送到 BigTable 等数据仓储等等,大多数情况下记录的数据很分散,并且相互独立,也许是错误信息,也许仅仅只是记录当前的事件状态,或者是警告信息等等
  • Log after, not before
  • Separate parameters and messages
  • Distinguish between WARNING and ERROR
  • INFO is for business, DEBUG for technology

当我们想知道我们服务的请求 QPS 是多少,或者当天的用户登录次数等等,这时我们可能需要将一部分事件进行聚合或计数,也就是我们说的 Metrics。可聚合性即是 Metrics 的特征,它们是一段时间内某个度量(计数器或者直方图)的原子或者是元数据。

对于每一次 Tracing,例如 HTTP 请求的 Tracing,我们只需要关注请求目前到达的节点状态,当前耗时,谁接收了这个请求等等,不用关心目前的系统日志,错误信息等等这些事件。或者像出站 RPC 到远程服务的持续时间; 将实际 SQL 查询的文本发送到数据库; 或入站 HTTP 请求的相关 ID 等等。