Appearance
Health Endpointy
Health endpointy jsou důležitou součástí monitorování a řízení životního cyklu aplikací v distribuovaném prostředí. Identifikují se tři základní typy: liveness, readiness a health. Každý má specifickou funkci a účel:
Liveness Endpoint (/healthz/live)
- Účel: Slouží k ověření, zda aplikace běží a není v nevratném chybovém stavu.
- Kontrola: Typicky zahrnuje pouze kontrolu, zda běží aplikační procesy a zda aplikace odpovídá.
- Detaily: Tento endpoint by měl být co nejjednodušší a nejméně náročný. Neobsahuje kontroly externích závislostí, jako jsou databáze nebo jiné API služby.
- Použití: Vhodný pro prostředí container orchestratorů, jako je Kubernetes, pro rozhodnutí, zda restartovat kontejner.
Příklad odpovědi:
json
{
"status": "UP"
}Readiness Endpoint (/healthz/ready)
- Účel: Ověřuje, zda je aplikace schopna přijímat a zpracovávat požadavky.
- Kontrola: Zahrnuje důkladnou kontrolu všech kritických závislostí, jako jsou databázová připojení, dostupnost klíčových externích API, front zpráv atd.
- Detaily: Umožňuje systémům pro vyvažování zátěže rozhodnout, zda by instance aplikace měla přijímat požadavky.
- Použití: Pomáhá bránit směrování provozu na aplikaci, která není plně připravena ke zpracování požadavků.
Příklad odpovědi:
json
{
"status": "UP",
"components": {
"database": "UP",
"redis": "UP",
"storage": "UP",
"messageQueue": "UP",
"externalApiService": "DOWN"
}
}Health Endpoint (/healthz/health)
- Účel: Kombinuje informace o živosti a připravenosti aplikace, poskytuje komplexní pohled na celkový stav aplikace a jejích komponent.
- Kontrola: Může zahrnovat kontroly z obou předchozích endpointů, poskytuje přehledný stav celého systému.
- Detaily: Je užitečný pro administrátory a monitorovací systémy, které potřebují detailní přehled o aplikaci.
- Použití: Pro sledování celkového zdraví aplikace v rámci různých monitorovacích nástrojů a pro účely auditu.
Příklad odpovědi:
json
{
"status": "UP",
"details": {
"liveness": "UP",
"readiness": {
"status": "UP",
"components": {
"database": "UP",
"externalApiService": "UP",
"messageQueue": "UP"
}
}
}
}Doporučení
- Zabezpečení: Zabezpečte přístup k těmto endpointům, aby se k nim nedostaly neoprávněné subjekty, které by mohly získat citlivé informace o vnitřím stavu aplikace.
- Jednoduchost liveness kontroly: Udržujte liveness kontrolu co nejjednodušší, aby nezpůsobila zbytečné zatížení systému.
- Testování readiness: Pravidelně testujte readiness kontroly, aby aplikace správně reagovala na změny ve stavu závislostí.
Tyto endpointy pomohou zajistit, že vaše aplikace bude spolehlivě monitorována a správně integrována do orchestrátorů a monitorovacích nástrojů.