背景
最近在做ssr项目的监控报警,其中一个指标是 event loop latency(事件循环的延迟)
,部分项目出现了以上指标逐渐变高的现象。以下是问题解决的过程。
- 监控的工具采用的是 prometheus
- 监控使用的是 prom-client 库
event loop latency(事件循环的延迟): nodejs 的主线程的阻塞时长,在http请求场景中,阻塞时间越长用户的响应时间越长
问题排查:
基于event loop latency 的特性,观察了用户的平均响应时长没有发现变长的情况,仔细看了prom-client 的代码发现event loop latency
这个指标是采集的采集时候的延迟时长,因此猜测是因为指标数量过多,导致收集指标的时候事件延迟变长,经过验证果然当指标数量多的时候确实会有这个问题,最终优化了指标数量,问题解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。