Node.js — алерт по росту event-loop lag
Node-приложение тормозит из-за блокирующих CPU-операций; latency пользователей растёт. Нужен endpoint с моментальным значением event-loop-lag.
Рецепт
// /healthz endpoint that exposes event-loop lag in ms
const express = require('express');
const { monitorEventLoopDelay } = require('perf_hooks');
const h = monitorEventLoopDelay({ resolution: 20 });
h.enable();
const THRESHOLD_MS = parseInt(process.env.LAG_THRESHOLD_MS || '50', 10);
const app = express();
app.get('/healthz', (_req, res) => {
const p99 = Math.round(h.percentile(99) / 1e6); // ns → ms
h.reset();
res.type('text/plain');
res.send(p99 >= THRESHOLD_MS ? `lag ${p99}` : `ok ${p99}`);
});
app.listen(8080);
То же самое в Enterno.io
Натравите HTTP-монитор Enterno с rule "body содержит ok". Multi-region check (Pro+) подтвердит — это глобальный stall или проблема одной ноды.
Похожие рецепты
long_query_time = 1, slow_query_log включён. Нужно понимать, когда количество медленных запросов в минуту резко вырастает (deploy сломал индекс, ORM начал N+1).
Memcached переполнился и начал выбрасывать ключи под нагрузкой — приложение получает cache-miss и долбит БД. Нужен порог evictions/мин.
Spring-приложение тормозит — long GC pauses (>500ms) каждые несколько минут. Heap-size был ок, но new-gen неправильно настроен. Нужен endpoint с p99 pause.