Il contratto è deliberatamente banale, perché il punto è che tu possa leggerlo in una sola seduta e
implementarlo in qualsiasi linguaggio già usato dal tuo team. HostTracker interroga il tuo URL; il tuo
endpoint risponde con un oggetto JSON che contiene il valore:
{ "v": 42.7 }
Questa è l'intera superficie richiesta. Due membri opzionali rendono il risultato più utile:
e contiene una stringa di errore quando il valore non è stato possibile leggerlo in
quell'occasione - un risultato molto migliore che riportare uno zero fuorviante - e vs
contiene una tua stringa di versione, che compare nel risultato così puoi sapere quale build del
collettore ha risposto.
{ "v": 91.4, "e": "", "vs": "collector-2.1" }
Poiché scrivi tu il lettore, non sei limitato a ciò che un agente generico sa raccogliere. Profondità
della coda, tasso di successo della cache, numero di job in attesa, età del record non elaborato più
vecchio, inode liberi, dimensione di una directory che non deve mai crescere - qualsiasi cosa tu possa
esprimere come numero diventa un valore monitorato con soglie, cronologia e avvisi collegati.
Proteggi l'endpoint. Deve essere raggiungibile dai checker che lo interrogano,
quindi trattalo come qualsiasi altro URL pubblico: mettilo su un percorso non indovinabile, tienilo
di sola lettura, ed esponi solo i numeri che sei disposto a far leggere. Non accetta parametri che
cambiano qualcosa, il che limita l'esposizione a un solo valore.