Słownik · Rodzaje monitorowania

Czym jest endpoint health check?

Endpoint health check to adres URL, np. /health lub /healthz, który usługa udostępnia, aby load balancery, orkiestratory i systemy monitorowania mogły zapytać, czy działa. Zwraca 200, gdy usługa jest sprawna, i status błędu, zwykle 503, gdy nie jest.

Jak to działa i dlaczego to ważne

Dobry health check testuje to, czego usługa potrzebuje do obsługi użytkowników: szybkie zapytanie do bazy danych, cache, kolejkę. Odpowiada szybko, nie ma skutków ubocznych, nie wymaga logowania (lub tylko klucza bez innych uprawnień) i zwraca niewielką treść JSON wskazującą, który test się nie powiódł.

Zwykle są dwa rodzaje. Liveness check mówi, że proces działa i nie należy go restartować; pozostaje prosty. Readiness check mówi, że instancja może teraz przyjmować ruch, łącznie z zależnościami, więc load balancer lub Kubernetes może ją ominąć. Monitorowanie zewnętrzne potrzebuje tego drugiego.

Uważaj na zależności, nad którymi nie masz kontroli. Jeśli health check zawodzi za każdym razem, gdy zewnętrzne API zwalnia, wszystkie instancje mogą zostać jednocześnie wyłączone z ruchu. Zgłaszaj takie przypadki jako obniżoną wydajność w treści odpowiedzi, a kod statusu zostaw dla awarii, które naprawdę zatrzymują usługę.

Przykład

GET /health

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

{"status":"ok","checks":{"database":"ok","cache":"ok"}}

Monitor sprawdza kod statusu oraz to, czy $.status ma wartość ok. Kod 503, przekroczenie limitu czasu lub każda inna wartość oznacza nieudane sprawdzenie.

Jak pomaga Uptimecheck

Monitory API w Uptimecheck mogą co minutę sprawdzać endpoint health check: kod statusu (domyślnie od 200 do 399 lub wybrane przez Ciebie kody), do 10 warunków dla JSON i nagłówków, np. $.status równa się ok, słowo kluczowe oraz do 20 nagłówków zapytania z kluczem. Domyślny limit czasu to 10 sekund, a odpowiedzi wolniejsze niż ustalony limit wywołują alert o spowolnieniu.

Zobacz: Monitorowanie API

14 dni za darmo · Potem 5 monitorów gratis · Bez karty kredytowej

Więcej w poradnikach

Guides 7 min czytania

Jak zbudować endpoint health check (i go monitorować)

Endpoint health check mówi monitorom i load balancerom, czy Twoja aplikacja może obsługiwać żądania. Co sprawdzać, jak zachować szybkość i bezpieczeństwo, kod dla Laravela, Expressa i Flaska oraz jak go monitorować.

Czytaj

Guides 5 min czytania

Checklista monitorowania API: co sprawdzać poza 200 OK

API może zwracać 200 i mimo to nie działać. Praktyczna checklista monitorowania API: metody, nagłówki, treść żądań, uwierzytelnianie, oczekiwane odpowiedzi i progi czasu odpowiedzi.

Czytaj

Pytania

Co powinien zwracać endpoint health check?

200 z niewielką treścią JSON, gdy usługa i jej kluczowe zależności działają, i 503, gdy nie działają. Dodaj Cache-Control: no-store, aby odpowiedź nigdy nie pochodziła z pamięci podręcznej.

Czy endpoint health check powinien być publiczny?

Może, jeśli nie ujawnia nic wrażliwego: żadnych wersji, nazw hostów ani komunikatów o błędach. W przeciwnym razie zabezpiecz go tokenem wysyłanym w nagłówku i daj monitorowi osobny klucz.

Czym różni się liveness od readiness?

Sonda liveness mówi, że proces działa; gdy zawiedzie, proces jest restartowany. Sonda readiness mówi, że instancja może teraz obsługiwać ruch; gdy zawiedzie, instancja wypada z rotacji, dopóki nie wróci do sprawności.

Przestoje to przeszłość.

Skonfiguruj pierwszy monitor w niecałą minutę albo najpierw rozejrzyj się w demo na żywo.

14 dni za darmo · Potem 5 monitorów gratis · Bez karty kredytowej