Artikkelen forklarer hva et health-endpoint bør fortelle, og hva det ikke bør lekke. Den tar for seg liveness, readiness, databasekontroll, avhengigheter, HTTP-status, sensitive detaljer og forskjellen mellom offentlig og intern helsesjekk.
Et health-endpoint er nyttig når drift, overvåkning eller kontrollpanel skal vite om systemet fungerer. Men et for snakkesalig endepunkt kan også lekke versjoner, filstier, tabellnavn og intern feilinformasjon.
Health er ikke én ting
Et system kan være i live uten å være klart. Liveness handler om at prosessen svarer. Readiness handler om at systemet faktisk kan betjene trafikk. Det er nyttig å skille disse nivåene.
Svar enkelt offentlig
Et offentlig health-endpoint bør gi kort status og riktig HTTP-kode. Det trenger ikke vise databasebruker, serversti, stack trace eller detaljert konfigurasjon.
Interne sjekker kan vite mer
Et kontrollpanel eller internt verktøy kan vise mer detaljert status til riktige roller. Selv der bør informasjonen begrenses til det som hjelper drift.
Databasekontroll bør være lett
En health-sjekk bør ikke kjøre tunge spørringer. En enkel forbindelse eller lett SELECT er ofte nok. Health-endepunktet skal ikke bli en ny belastning.
Feil må ikke lekke intern struktur
Hvis databasen er nede, bør offentlig svar være nøkternt. Detaljer kan logges internt, men bør ikke vises til alle.
WEBoracle-vurdering
WEBoracle bør ha en enkel offentlig tilgjengelighetssjekk og mer detaljert kontrollpanelstatus for roller som faktisk trenger den. Update terminal og adminverktøy skal ikke gjøres offentlige av den grunn.
Konklusjon
Et godt health-endpoint hjelper drift uten å avsløre systemet. Det forteller nok til at overvåkning kan reagere, men ikke så mye at det blir et informasjonslekkasjeproblem.