背景

最近在做ssr项目的监控报警,其中一个指标是 event loop latency(事件循环的延迟),部分项目出现了以上指标逐渐变高的现象。以下是问题解决的过程。

  1. 监控的工具采用的是 prometheus
  2. 监控使用的是 prom-client 库
event loop latency(事件循环的延迟): nodejs 的主线程的阻塞时长,在http请求场景中,阻塞时间越长用户的响应时间越长

问题排查:

基于event loop latency 的特性,观察了用户的平均响应时长没有发现变长的情况,仔细看了prom-client 的代码发现event loop latency 这个指标是采集的采集时候的延迟时长,因此猜测是因为指标数量过多,导致收集指标的时候事件延迟变长,经过验证果然当指标数量多的时候确实会有这个问题,最终优化了指标数量,问题解决。


曹飞龙
167 声望8 粉丝

进取・坚韧・开放・影响