Het contract is bewust triviaal, want het punt is juist dat u het in één keer kunt doorlezen en
implementeren in welke taal uw team ook al gebruikt. HostTracker vraagt uw URL op; uw endpoint
antwoordt met een JSON-object dat de waarde bevat:
{ "v": 42.7 }
Dat is het volledige vereiste oppervlak. Twee optionele velden maken het resultaat nuttiger:
e bevat een foutmelding wanneer de waarde deze keer niet kon worden gelezen - een veel
beter resultaat dan het rapporteren van een misleidende nul - en vs bevat een eigen
versienummer, dat in het resultaat verschijnt zodat u kunt zien welke build van de collector heeft
geantwoord.
{ "v": 91.4, "e": "", "vs": "collector-2.1" }
Omdat u zelf de lezer schrijft, bent u niet beperkt tot wat een generieke agent weet te verzamelen.
Wachtrijdiepte, cache-hitratio, het aantal wachtende taken, de leeftijd van het oudste onverwerkte
record, vrije inodes, de grootte van een map die nooit mag groeien - alles wat u als getal kunt
uitdrukken, wordt een gemonitorde waarde met drempelwaarden, geschiedenis en meldingen eraan gekoppeld.
Bescherm het endpoint. Het moet bereikbaar zijn voor de checkers die het aanroepen,
dus behandel het als elke andere publieke URL: plaats het op een niet te raden pad, houd het
alleen-lezen, en stel alleen de getallen bloot waarvan u het prettig vindt dat ze gelezen worden.
Het accepteert geen parameters die iets wijzigen, waardoor de blootstelling beperkt blijft tot
precies één waarde.