Qu'est-ce qu'Appmetrics ?
Appmetrics est une bibliothèque légère pour la surveillance des performances d'applications en TypeScript et JavaScript. Elle fournit aux développeurs des métriques prêtes à l'emploi : temps de réponse, charge CPU, utilisation mémoire, nombre de requêtes actives et vitesse de la base de données. La bibliothèque ne nécessite pas d'infrastructure complexe et peut être intégrée aussi bien dans Express que dans Nest.js ou du Node.js pur.
Pourquoi surveiller les applications TypeScript ?
Les applications TypeScript fonctionnent souvent côté serveur (Node.js) ou dans des systèmes frontend complexes. Sans surveillance, vous risquez de passer à côté d'une fuite mémoire, d'endpoints lents ou d'une chute soudaine des performances. Appmetrics aide à :
- Suivre le temps d'exécution réel des requêtes
- Détecter les goulots d'étranglement dans le code
- Journaliser automatiquement les métriques dans Prometheus ou Grafana
- Recevoir des alertes en cas d'anomalies
Installation
Installez la bibliothèque via npm ou yarn :
npm install @appmetrics/typescript-metricsPour l'intégration avec Express, installez également :
npm install @appmetrics/express-middlewareFonctionnalités principales
- Collecte des métriques CPU et mémoire — collecte automatique en temps réel.
- Métriques des requêtes HTTP — temps de réponse, codes de statut, nombre de requêtes.
- Intégration avec les systèmes populaires — Prometheus, Grafana, Datadog.
- Métriques personnalisées — possibilité d'ajouter vos propres compteurs et histogrammes.
- Typage — prise en charge complète de TypeScript avec autocomplétion.
Exemple de code en TypeScript
import { MetricsCollector } from '@appmetrics/typescript-metrics';import express from 'express';
const app = express();const metrics = new MetricsCollector({ appName: 'my-app' });
// Middleware pour collecter les métriques des requêtesapp.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 pour exporter les métriques au format 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'));Quand utiliser Appmetrics ?
- Serveurs de production — pour un contrôle continu de la santé de l'application.
- Architecture microservices — pour surveiller chaque service individuellement.
- Tests de charge — pour collecter des métriques lors de tests de stress.
- Débogage — pour rechercher des fuites mémoire ou des fonctions lentes.
La bibliothèque convient aussi bien aux petits projets qu'aux systèmes d'entreprise gérant des milliers de requêtes par seconde.
Aussi dans la bibliothèque
Travail avec les dates en Rust : aperçu des bibliothèques de temps et de dates
ImageSharp C# (.NET) : guide complet avec exemples
ORM pour TypeScript : comparaison de TypeORM, Prisma et MikroORM