Der Vertrag ist bewusst trivial gehalten, denn der Sinn ist, dass Sie ihn in einem Rutsch lesen und in
jeder Sprache umsetzen können, die Ihr Team bereits nutzt. HostTracker fragt Ihre URL ab; Ihr Endpunkt
antwortet mit einem JSON-Objekt, das den Wert trägt:
{ "v": 42.7 }
Das ist der gesamte erforderliche Umfang. Zwei optionale Felder machen das Ergebnis nützlicher:
e trägt eine Fehlermeldung, wenn der Wert gerade nicht gelesen werden konnte - ein deutlich
besseres Ergebnis, als eine irreführende Null zu melden -, und vs trägt eine eigene
Versionskennung, die im Ergebnis erscheint, sodass Sie erkennen können, welcher Build des Collectors
geantwortet hat.
{ "v": 91.4, "e": "", "vs": "collector-2.1" }
Weil Sie den Reader selbst schreiben, sind Sie nicht auf das beschränkt, was ein generischer Agent zu
erfassen weiß. Warteschlangentiefe, Cache-Trefferquote, die Anzahl wartender Jobs, das Alter des ältesten
unverarbeiteten Datensatzes, freie Inodes, die Größe eines Verzeichnisses, das niemals wachsen darf -
alles, was Sie als Zahl ausdrücken können, wird zu einem überwachten Wert mit Schwellenwerten, Historie
und Benachrichtigung.
Schützen Sie den Endpunkt. Er muss für die abfragenden Prüfstationen erreichbar sein,
behandeln Sie ihn also wie jede andere öffentliche URL: Legen Sie ihn unter einen nicht erratbaren Pfad,
halten Sie ihn schreibgeschützt, und geben Sie nur die Zahlen preis, mit deren Offenlegung Sie
einverstanden sind. Er akzeptiert keine Parameter, die irgendetwas verändern, wodurch die Angriffsfläche
auf genau einen Wert beschränkt bleibt.