Hyvä health check testaa sen, mitä palvelu tarvitsee käyttäjien palvelemiseen: nopea kysely tietokantaan, välimuistiin ja jonoon. Se vastaa nopeasti, sillä ei ole sivuvaikutuksia, se ei vaadi kirjautumista tai korkeintaan avaimen ilman muita oikeuksia, ja se palauttaa pienen JSON-rungon, joka kertoo, mikä tarkistus epäonnistui.
Niitä on yleensä kahta tyyppiä. Liveness-tarkistus kertoo, että prosessi on käynnissä eikä sitä tarvitse käynnistää uudelleen; se pysyy yksinkertaisena. Readiness-tarkistus kertoo, että instanssi voi ottaa liikennettä vastaan nyt riippuvuudet mukaan lukien, joten kuormantasaaja tai Kubernetes voi ohjata liikenteen sen ohi. Ulkoinen valvonta tarvitsee readiness-tyypin.
Ole varovainen riippuvuuksien kanssa, joita et hallitse. Jos terveystarkistus epäonnistuu aina, kun kolmannen osapuolen API on hidas, jokainen instanssi voidaan poistaa käytöstä yhtä aikaa. Ilmoita ne vastauksen rungossa heikentyneinä ja käytä tilakoodia vain vikoihin, jotka todella pysäyttävät palvelun.
Esimerkki
GET /health
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
{"status":"ok","checks":{"database":"ok","cache":"ok"}}
Valvonta tarkistaa tilakoodin ja sen, että $.status on ok. 503, aikakatkaisu tai mikä tahansa muu arvo saa tarkistuksen epäonnistumaan.