Was ist Appmetrics?
Appmetrics ist eine leichtgewichtige Bibliothek zur Überwachung der Anwendungsleistung in TypeScript und JavaScript. Sie bietet Entwicklern vorgefertigte Metriken: Antwortzeit, CPU-Auslastung, Speichernutzung, Anzahl aktiver Anfragen und Datenbankgeschwindigkeit. Die Bibliothek erfordert keine komplexe Infrastruktur und kann sowohl in Express als auch in Nest.js oder reinem Node.js integriert werden.
Warum ist Monitoring für TypeScript-Anwendungen wichtig?
TypeScript-Anwendungen laufen oft serverseitig (Node.js) oder in komplexen Frontend-Systemen. Ohne Monitoring riskieren Sie, Speicherlecks, langsame Endpunkte oder plötzliche Leistungseinbrüche zu übersehen. Appmetrics hilft:
- Die tatsächliche Ausführungszeit von Anfragen zu verfolgen
- Engpässe im Code zu erkennen
- Metriken automatisch in Prometheus oder Grafana zu protokollieren
- Bei Anomalien Benachrichtigungen zu erhalten
Installation
Installieren Sie die Bibliothek über npm oder yarn:
npm install @appmetrics/typescript-metricsFür die Integration mit Express installieren Sie zusätzlich:
npm install @appmetrics/express-middlewareHauptfunktionen
- Erfassung von CPU- und Speichermetriken — automatische Erfassung in Echtzeit.
- HTTP-Anfragemetriken — Antwortzeit, Statuscodes, Anzahl der Anfragen.
- Integration mit gängigen Systemen — Prometheus, Grafana, Datadog.
- Benutzerdefinierte Metriken — Möglichkeit, eigene Zähler und Histogramme hinzuzufügen.
- Typisierung — vollständige TypeScript-Unterstützung mit Autovervollständigung.
Codebeispiel in TypeScript
import { MetricsCollector } from '@appmetrics/typescript-metrics';import express from 'express';
const app = express();const metrics = new MetricsCollector({ appName: 'my-app' });
// Middleware zum Sammeln von Anfragemetrikenapp.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: [] });});
// Endpunkt zum Exportieren von Metriken im Prometheus-Formatapp.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'));Wann sollte Appmetrics verwendet werden?
- Produktionsserver — zur ständigen Überwachung der Anwendungsgesundheit.
- Microservice-Architektur — zur Überwachung jedes Dienstes einzeln.
- Lasttests — zum Sammeln von Metriken während Stresstests.
- Debugging — zum Auffinden von Speicherlecks oder langsamen Funktionen.
Die Bibliothek eignet sich sowohl für kleine Projekte als auch für Enterprise-Systeme mit Tausenden von Anfragen pro Sekunde.
Auch in der Bibliothek
ORM für Kotlin: Vergleich und Beispiele (Exposed, Ktorm, Hibernate)
Arbeiten mit Apache Kafka in C++: Die Bibliothek librdkafka und praktische Beispiele
Protocol Buffers C++: Komplettleitfaden mit Beispielen
Integration von Prometheus-Metriken in C++: Die Bibliothek prometheus-cpp