¿Qué es Appmetrics?
Appmetrics es una biblioteca ligera para monitorear el rendimiento de aplicaciones en TypeScript y JavaScript. Proporciona a los desarrolladores métricas listas para usar: tiempo de respuesta, carga de CPU, uso de memoria, cantidad de solicitudes activas y velocidad de la base de datos. La biblioteca no requiere infraestructura compleja y puede integrarse tanto en Express como en Nest.js o Node.js puro.
¿Por qué es necesario monitorear aplicaciones TypeScript?
Las aplicaciones TypeScript a menudo se ejecutan en el lado del servidor (Node.js) o en sistemas frontend complejos. Sin monitoreo, corre el riesgo de perder una fuga de memoria, endpoints lentos o una caída repentina del rendimiento. Appmetrics ayuda a:
- Rastrear el tiempo real de ejecución de las solicitudes
- Detectar cuellos de botella en el código
- Registrar automáticamente métricas en Prometheus o Grafana
- Recibir alertas ante anomalías
Instalación
Instale la biblioteca a través de npm o yarn:
npm install @appmetrics/typescript-metricsPara la integración con Express, instale adicionalmente:
npm install @appmetrics/express-middlewareFunciones principales
- Recopilación de métricas de CPU y memoria — recopilación automática en tiempo real.
- Métricas de solicitudes HTTP — tiempo de respuesta, códigos de estado, cantidad de solicitudes.
- Integración con sistemas populares — Prometheus, Grafana, Datadog.
- Métricas personalizadas — posibilidad de agregar sus propios contadores e histogramas.
- Tipado — soporte completo de TypeScript con autocompletado.
Ejemplo de código en TypeScript
import { MetricsCollector } from '@appmetrics/typescript-metrics';import express from 'express';
const app = express();const metrics = new MetricsCollector({ appName: 'my-app' });
// Middleware para recopilar métricas de solicitudesapp.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: [] });});
// Endpoint para exportar métricas en formato Prometheusapp.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'));¿Cuándo usar Appmetrics?
- Servidores de producción — para el control constante de la salud de la aplicación.
- Arquitectura de microservicios — para monitorear cada servicio por separado.
- Pruebas de carga — para recopilar métricas durante pruebas de estrés.
- Depuración — para buscar fugas de memoria o funciones lentas.
La biblioteca es adecuada tanto para proyectos pequeños como para sistemas empresariales con miles de solicitudes por segundo.