En god helsesjekk tester det tjenesten trenger for å betjene brukerne: en rask spørring mot databasen, hurtigbufferen, køen. Den svarer raskt, har ingen bivirkninger, krever ingen innlogging eller bare en nøkkel uten andre rettigheter, og returnerer en liten JSON-body som sier hvilken sjekk som feilet.
Det finnes vanligvis to typer. En liveness-sjekk sier at prosessen kjører og ikke bør startes på nytt; den holdes enkel. En readiness-sjekk sier at instansen kan ta imot trafikk nå, avhengigheter inkludert, slik at en lastbalanserer eller Kubernetes kan rute rundt den. Ekstern overvåking trenger readiness-typen.
Vær forsiktig med avhengigheter du ikke kontrollerer. Hvis helsesjekken feiler hver gang et tredjeparts-API er tregt, kan alle instanser tas ut av drift samtidig. Rapporter slike som redusert i svaret, og spar statuskoden til feil som virkelig stopper tjenesten.
Eksempel
GET /health
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
{"status":"ok","checks":{"database":"ok","cache":"ok"}}
En monitor sjekker statuskoden og at $.status er lik ok. En 503, et tidsavbrudd eller en hvilken som helst annen verdi gjør at sjekken feiler.