Мониторинг приложений TypeScript с Appmetrics

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое Appmetrics?

Appmetrics — это легковесная библиотека для мониторинга производительности приложений на TypeScript и JavaScript. Она предоставляет разработчикам готовые метрики: время отклика, загрузку CPU, использование памяти, количество активных запросов и скорость работы базы данных. Библиотека не требует сложной инфраструктуры и может быть внедрена как в Express, так и в Nest.js или чистый Node.js.

Зачем нужен мониторинг TypeScript-приложений?

TypeScript-приложения часто работают на серверной стороне (Node.js) или в сложных фронтенд-системах. Без мониторинга вы рискуете пропустить утечку памяти, медленные эндпоинты или внезапное падение производительности. Appmetrics помогает:

  • Отслеживать реальное время выполнения запросов
  • Обнаруживать узкие места в коде
  • Автоматически логировать метрики в Prometheus или Grafana
  • Получать оповещения при аномалиях

Установка

Установите библиотеку через npm или yarn:

npm install @appmetrics/typescript-metrics

Для интеграции с Express дополнительно установите:

npm install @appmetrics/express-middleware

Основные функции

  1. Сбор метрик CPU и памяти — автоматический сбор в реальном времени.
  2. Метрики HTTP-запросов — время ответа, статус коды, количество запросов.
  3. Интеграция с популярными системами — Prometheus, Grafana, Datadog.
  4. Кастомные метрики — возможность добавить свои счётчики и гистограммы.
  5. Типизация — полная поддержка TypeScript с автодополнением.

Пример кода на TypeScript

import { MetricsCollector } from '@appmetrics/typescript-metrics';
import express from 'express';

const app = express();
const metrics = new MetricsCollector({ appName: 'my-app' });

// Middleware для сбора метрик запросов
app.use((req, res, next) => {
  const end = metrics.startTimer('http_request');
  res.on('finish', () => {
    end({ method: req.method, status: res.statusCode });
    metrics.incrementCounter('http_requests_total');
  });
  next();
});

app.get('/api/users', (req, res) => {
  res.json({ users: [] });
});

// Эндпоинт для экспорта метрик в формате Prometheus
app.get('/metrics', async (req, res) => {
  const data = await metrics.exportPrometheus();
  res.set('Content-Type', 'text/plain');
  res.send(data);
});

app.listen(3000, () => console.log('Server started'));

Когда использовать Appmetrics?

  • Продакшн-серверы — для постоянного контроля здоровья приложения.
  • Микросервисная архитектура — для мониторинга каждого сервиса отдельно.
  • Нагрузочное тестирование — для сбора метрик во время стресс-тестов.
  • Отладка — для поиска утечек памяти или медленных функций.

Библиотека подходит как для небольших проектов, так и для enterprise-систем с тысячами запросов в секунду.

Рекомендаций