Ordliste · Typer af overvågning

Hvad er en health check-endpoint?

Et health check-endpoint er en URL, fx /health eller /healthz, som en tjeneste stiller til rådighed, så load balancere, orkestreringsværktøjer og overvågning kan spørge, om den virker. Det svarer 200, når tjenesten er sund, og en fejlstatus, typisk 503, når den ikke er.

Sådan virker det, og derfor er det vigtigt

Et godt health check tester det, tjenesten skal bruge for at betjene brugerne: en hurtig forespørgsel til databasen, cachen, køen. Det svarer hurtigt, har ingen sideeffekter, kræver intet login eller kun en nøgle uden andre rettigheder og returnerer en lille JSON-body, der fortæller, hvilket tjek der fejlede.

Der er som regel to slags. Et liveness-tjek siger, at processen kører og ikke skal genstartes; det holdes simpelt. Et readiness-tjek siger, at instansen kan tage trafik nu, inklusive afhængigheder, så en load balancer eller Kubernetes kan rute uden om den. Ekstern overvågning skal bruge readiness-typen.

Vær forsigtig med afhængigheder, du ikke selv styrer. Hvis health checket fejler, hver gang et tredjeparts-API er langsomt, kan alle instanser blive taget ud af drift på én gang. Rapportér dem som forringede i body'en, og gem statuskoden til fejl, der 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 tjekker statuskoden, og at $.status er lig med ok. En 503, en timeout eller en anden værdi får tjekket til at fejle.

Sådan hjælper Uptimecheck

Uptimechecks API-monitorer kan tjekke et health-endpoint hvert minut: statuskoden (200 til 399 som standard, eller de koder du angiver), op til 10 JSON- og header-betingelser som fx at $.status er lig med ok, et nøgleord og op til 20 request-headers til en nøgle. Standard-timeout er 10 sekunder, og svar, der er langsommere end din grænse, sender en alarm om langsomhed.

Se API-overvågning

14 dages gratis prøveperiode · Derefter gratis med 5 monitorer · Intet betalingskort

Læs mere i guiderne

Guides 7 min. læsning

Sådan bygger du et health check-endpoint (og overvåger det)

Et health check-endpoint fortæller monitorer og load balancere, om din app kan håndtere forespørgsler. Hvad du skal tjekke, hvordan du holder det hurtigt og sikkert, kode til Laravel, Express og Flask, og hvordan du overvåger det.

Læs

Spørgsmål

Hvad skal et health check-endpoint returnere?

200 med en lille JSON-body, når tjenesten og dens kritiske afhængigheder virker, og 503, når de ikke gør. Tilføj Cache-Control: no-store, så en cache aldrig svarer i stedet.

Bør et health check-endpoint være offentligt?

Det kan det, hvis det ikke afslører noget følsomt: ingen versioner, værtsnavne eller fejlbeskeder. Ellers skal du beskytte det med et token sendt som header og give monitoren sin egen nøgle.

Hvad er forskellen på liveness og readiness?

Liveness siger, at processen kører; fejler den, genstartes processen. Readiness siger, at instansen kan betjene trafik nu; fejler den, tages instansen ud af rotation, indtil den er klar igen.

Nedetid er fortid.

Opret din første monitor på under et minut, eller se dig omkring i livedemoen først.

14 dages gratis prøveperiode · Derefter gratis med 5 monitorer · Intet betalingskort