Eine leichte Laufzeit-Überwachungsbibliothek für Webanwendungen. Infrastructure Monitor verfolgt clientseitige Konsolenausgaben, fehlgeschlagene Netzwerkanfragen und wichtige Leistungsmetriken und sendet diese Daten an einen zentralisierten Überwachungsendpunkt.
- 🔍 Echtzeit-Überwachung: Verfolgt Konsolenausgaben, Fehler und Warnungen
- 🌐 Netzwerk-Monitoring: Erkennt fehlgeschlagene API-Anfragen
- 📊 Leistungsmetriken: Sammelt wichtige Performance-Daten
- 📡 Zentrale Datensammlung: Sendet alle Daten an einen konfigurierbaren Endpunkt
- 🔒 Sicher: Keine sensiblen Daten werden gesammelt
- 🚀 Leichtgewichtig: Minimale Auswirkungen auf die Anwendungsleistung
npm install infrastructure-monitor
import { InfrastructureMonitor } from "infrastructure-monitor";
// Initialisierung
const monitor = new InfrastructureMonitor({
endpoint: "https://your-monitoring-endpoint.com/api",
applicationId: "your-app-id",
// Optionale Konfiguration
samplingRate: 0.1, // 10% der Ereignisse werden gesammelt
maxBatchSize: 100, // Maximale Anzahl von Ereignissen pro Batch
flushInterval: 5000, // Daten werden alle 5 Sekunden gesendet
});
// Starten der Überwachung
monitor.start();
// Beenden der Überwachung
monitor.stop();
Option | Typ | Standard | Beschreibung |
---|---|---|---|
endpoint | string | - | URL des Überwachungsendpunkts (erforderlich) |
applicationId | string | - | Eindeutige ID der Anwendung (erforderlich) |
samplingRate | number | 1.0 | Rate der zu sammelnden Ereignisse (0.0 - 1.0) |
maxBatchSize | number | 100 | Maximale Anzahl von Ereignissen pro Batch |
flushInterval | number | 5000 | Intervall in Millisekunden zum Senden der Daten |
Für Entwicklungs- und Testzwecke enthält dieses Paket einen einfachen Express-Server, der die Monitoring-Daten empfängt und lokal speichert.
# Entwicklungsmodus mit automatischem Neuladen
npm run dev:server
# Oder: Build und Start im Produktionsmodus
npm run build:server
npm run start:server
Der Server läuft standardmäßig auf Port 3000 und bietet folgende Endpunkte:
-
POST http://localhost:3000/api/monitoring
- Empfängt Monitoring-Daten -
GET http://localhost:3000/api/status
- Server-Status-Check
Die empfangenen Daten werden im data
-Verzeichnis als JSON-Dateien gespeichert. Der Dateiname enthält die Application-ID und den Zeitstempel.
Beispiel einer gespeicherten Datei:
{
"timestamp": "2024-03-02T15:30:00.000Z",
"events": [
{
"type": "console",
"level": "error",
"message": "API-Aufruf fehlgeschlagen",
"timestamp": "2024-03-02T15:29:59.000Z"
}
]
}
Infrastructure Monitor sammelt nur technische Daten, die für die Überwachung und Fehlerbehebung notwendig sind. Es werden keine personenbezogenen Daten oder sensible Informationen gesammelt.
Dieses Projekt ist unter der BSL (Business Source License) lizenziert. Weitere Informationen finden Sie in der LICENSE-Datei.
Beiträge sind willkommen! Bitte lesen Sie unsere Beitragsrichtlinien für Details.
Bei Fragen oder Problemen öffnen Sie bitte ein Issue auf GitHub.
- Steffen Bahrmann
Danke an alle Mitwirkenden, die zu diesem Projekt beigetragen haben.