O que é Appmetrics?
Appmetrics é uma biblioteca leve para monitoramento de desempenho de aplicações em TypeScript e JavaScript. Ela fornece aos desenvolvedores métricas prontas: tempo de resposta, carga de CPU, uso de memória, número de requisições ativas e velocidade do banco de dados. A biblioteca não requer infraestrutura complexa e pode ser implementada tanto em Express quanto em Nest.js ou Node.js puro.
Por que o monitoramento de aplicações TypeScript é necessário?
Aplicações TypeScript frequentemente rodam no lado do servidor (Node.js) ou em sistemas frontend complexos. Sem monitoramento, você corre o risco de perder um vazamento de memória, endpoints lentos ou uma queda repentina de desempenho. Appmetrics ajuda a:
- Rastrear o tempo real de execução das requisições
- Detectar gargalos no código
- Registrar automaticamente métricas no Prometheus ou Grafana
- Receber alertas em caso de anomalias
Instalação
Instale a biblioteca via npm ou yarn:
npm install @appmetrics/typescript-metricsPara integração com Express, instale adicionalmente:
npm install @appmetrics/express-middlewareFuncionalidades principais
- Coleta de métricas de CPU e memória — coleta automática em tempo real.
- Métricas de requisições HTTP — tempo de resposta, códigos de status, número de requisições.
- Integração com sistemas populares — Prometheus, Grafana, Datadog.
- Métricas personalizadas — possibilidade de adicionar seus próprios contadores e histogramas.
- Tipagem — suporte completo a TypeScript com autocompletar.
Exemplo de código em TypeScript
import { MetricsCollector } from '@appmetrics/typescript-metrics';import express from 'express';
const app = express();const metrics = new MetricsCollector({ appName: 'my-app' });
// Middleware para coleta de métricas de requisiçõesapp.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 no 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'));Quando usar Appmetrics?
- Servidores de produção — para controle contínuo da saúde da aplicação.
- Arquitetura de microsserviços — para monitorar cada serviço individualmente.
- Testes de carga — para coletar métricas durante testes de estresse.
- Depuração — para encontrar vazamentos de memória ou funções lentas.
A biblioteca é adequada tanto para projetos pequenos quanto para sistemas enterprise com milhares de requisições por segundo.