NIE-SLA im Überblick
NIE-SLA ist eine Open-Source-Plattform für Monitoring und SLA-Management mit Unterstützung für selbstverwaltete Bereitstellungen. Die Serviceschicht läuft auf Cloudflare; Rust Agents erfassen Systemmetriken der überwachten Hosts.
Die Plattform bietet Erreichbarkeitsprüfungen, VPS-Telemetrie, regionsübergreifende Latenzmessung, langfristige SLA-Statistiken, Benachrichtigungen und öffentliche Statusdarstellung. Ergebnisse werden nach Quelle getrennt gespeichert, um die Fehlerisolierung zu unterstützen.
Systemarchitektur
Überwachter VPS Unabhängiger Messpunkt
Rust Agent Latency Agent
| Metriken / TCP Ping | netzübergreifende TCP-Latenz
+------------- begrenzte Tokens ---------+
v
Cloudflare Worker + Static Assets
Routing / Auth / Aggregation / API
| | |
D1 R2 Durable ObjectsD1 speichert Konfiguration, Indizes, aktuellen Zustand und feste SLA-Buckets. R2 übernimmt bevorzugt hochfrequente Telemetrie, Snapshots, Archive und Theme-Dateien. Durable Objects koordinieren regionale Prüfungen und Puffer; ein einminütiger Cron treibt Prüfungen, Aggregation, Bereinigung und Benachrichtigungen an.
Beobachtungsquellen
| Quelle | Messpunkt | Beantwortete Frage |
|---|---|---|
| Aktive Cloudflare-Prüfung | Edge und regionale Ausführung | Erreicht das Edge-Netz das Ziel jetzt? |
| Rust-Agent-Status | Überwachter VPS | Werden Host-Metriken weiterhin gemeldet? |
| Agent TCP Ping | Überwachter VPS | Wie ist der Weg von diesem Host zum Ziel? |
| Externer Latency Agent | Unabhängiges Netz | Wie erreicht eine andere Region oder ein Provider das Ziel? |
Ein erreichbarer Port beweist keinen funktionierenden Agent, und ein gesunder Agent keine globale Erreichbarkeit. UI und API behalten deshalb die Quellenbezeichnung.
Vergleich mit verbreiteten Architekturen
Die Tabelle vergleicht übliche Implementierungsansätze.
| Dimension | Häufige konventionelle Form | NIE-SLA-Entscheidung | Praktische Wirkung |
|---|---|---|---|
| Beobachtung | Zentrale Prüfung oder einzelner Host-Heartbeat | Vier explizit getrennte Quellen | Weniger mehrdeutige Diagnosen |
| Laufzeit | Dauerhafter zentraler Dienst, Datenbank und Frontend | Cloudflare Edge-Dienste und Assets am selben Origin | Weniger zentrale Dienste zu betreiben |
| Hochfrequente Daten | Rohdaten in einem relationalen Speicher | D1 für Zustand/Aggregate, R2 für Telemetrie/Archive | Speicher folgt Zugriffsmuster und Quoten |
| Offline-Meldung | Retry im Speicher oder verfallene Samples | Persistente Queue, Löschen erst nach Bestätigung | Kurze Ausfälle erzeugen weniger Lücken |
| Integration | Interne, frontendnahe Endpunkte | /api/v1 Manifest und stabile Nur-Lese-Endpunkte | Expliziter Vertrag für unabhängige Clients |
| Anpassung | Hauptfrontend ändern oder privilegierte Erweiterung | CSS- und isolierte Canvas-Themes | Visuelle Freiheit mit enger Sicherheitsgrenze |
| Release | Ein Online-Buildpfad oder eine Architektur | Fünf statische Linux-Ziele, Checksummen, Health Check und Rollback | Lokal prüfbare und reproduzierbare Artefakte |
Zentrale Implementierungsdetails
Datenspeicherung
Kurze Caches, begrenzte Zeitfenster und Punktzahlen, Downsampling und geplante Bereinigung sind Teil des Entwurfs. Optionale Lesefehler erscheinen in warnings[], statt als leere Daten verborgen zu werden.
Offline-Queue des Agents
Die Rust-Queue nutzt eine eindeutige temporäre Datei, create_new, Unix-Modus 0600, fsync für Datei und Elternverzeichnis sowie atomare Umbenennung. Fehler halten den Zustand dirty; Samples werden erst nach Serverbestätigung entfernt.
Öffentliche API
GET /api/v1 beschreibt Fähigkeiten und Endpunkte. Öffentliche Lesezugriffe sind ohne Zugangsdaten möglich und durch exakte CORS-Allowlist, Rate Limits, Cache und begrenzte Historienparameter eingeschränkt.
Zugangsdaten und Theme-Isolation
Administration verwendet kurze Sessions und optional TOTP. Agent- und Latency-Knoten erhalten jeweils begrenzte Tokens. NodeQuality-Zugangsdaten bleiben Worker Secrets. Sensible Backups verwenden Cloudflare-kompatible 100.000 PBKDF2-SHA-256-Iterationen und AES-GCM.
Canvas läuft in sandbox="allow-scripts" ohne Same-Origin-Recht. CSP blockiert direkte Netzwerkzugriffe, Formulare und Top-Navigation; das begrenzte nie-sla:*-Protokoll liefert nur öffentliche Ressourcen. ZIPs werden nach SHA-256, Pfad, Typ, Anzahl und Größe geprüft.
Einsatzbereich
NIE-SLA eignet sich für selbst gehostete Statusseiten, VPS-Telemetrie, Latenz aus mehreren Netzen, langfristige SLA und angepasste Darstellung. Es ersetzt weder Logs noch Distributed Tracing oder eine vollständige APM-Plattform.
Der Kern hängt von Cloudflare-Diensten und Quoten ab; externe Latency braucht unabhängige Knoten; isolierte Themes dürfen nicht beliebig ins Netz; die Checksummenkette ist keine unabhängige Signatur. Diese Abwägungen gehören zur Einsatzentscheidung.