Какую статистику ты собираешь во время разработки на Node.js?

«Какую статистику ты собираешь во время разработки на Node.js?» — вопрос из категории DevOps, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Во время разработки на Node.js я собираю метрики, помогающие анализировать производительность и стабильность:

  1. Производительность:
const start = process.hrtime();
// Код
const diff = process.hrtime(start);
console.log(`Execution time: ${diff[0] * 1e3 + diff[1] / 1e6}ms`);
  1. Память:
setInterval(() => {
  console.log(`Memory usage: ${JSON.stringify(process.memoryUsage())}`);
}, 5000);
  1. Event Loop:
    Использую event-loop-lag или toobusy-js для мониторинга задержек.

  2. Ошибки:
    Логирую uncaught exceptions и unhandled rejections:

process.on('uncaughtException', (err) => {
  logger.error('Uncaught Exception', err);
});
  1. HTTP-запросы:
    Сбор метрик через middleware (response time, статус коды).

Для продакшна добавляю APM-системы (New Relic, Datadog), но в разработке достаточно консольного вывода и логов.