# 🔍 **Healthchecks - DEJO Node** ## 📌 **Visão Geral** Os healthchecks do **DEJO Node** garantem que a aplicação está rodando corretamente e que seus componentes essenciais estão operacionais. Eles são divididos em três categorias principais: 1️⃣ **Liveness Probe** → Verifica se o processo ainda está ativo. 2️⃣ **Readiness Probe** → Indica se o serviço pode receber tráfego. 3️⃣ **Startup Probe** → Confirma se a aplicação inicializou corretamente. --- ## **1️⃣ Endpoints de Healthcheck** ### **1.1 - Liveness Probe** 📌 **Endpoint:** `GET /health/liveness` - Retorna se o processo do nó está ativo e não travou. - Se falhar, o Kubernetes pode reiniciar o pod. 📌 **Exemplo de resposta:** ```json { "status": "ok", "message": "Node is alive", "timestamp": 1712456789 } ``` --- ### **1.2 - Readiness Probe** 📌 **Endpoint:** `GET /health/readiness` - Verifica se o nó está pronto para receber tráfego. - Avalia conexões com banco de dados, consenso e rede P2P. 📌 **Exemplo de resposta (sucesso):** ```json { "status": "ready", "dependencies": { "database": "ok", "consensus": "ok", "p2p": "ok" }, "timestamp": 1712456789 } ``` 📌 **Exemplo de resposta (falha):** ```json { "status": "not_ready", "dependencies": { "database": "error", "consensus": "ok", "p2p": "ok" }, "timestamp": 1712456789 } ``` --- ### **1.3 - Startup Probe** 📌 **Endpoint:** `GET /health/startup` - Indica se o nó foi iniciado corretamente. - Útil para evitar que o Kubernetes mate o pod prematuramente. 📌 **Exemplo de resposta:** ```json { "status": "initialized", "message": "Node startup completed", "timestamp": 1712456789 } ``` --- ## **2️⃣ Configuração no Kubernetes** 📌 **Exemplo de configuração no `deployment.yaml`**: ```yaml livenessProbe: httpGet: path: /health/liveness port: 8080 initialDelaySeconds: 3 periodSeconds: 5 readinessProbe: httpGet: path: /health/readiness port: 8080 initialDelaySeconds: 10 periodSeconds: 10 startupProbe: httpGet: path: /health/startup port: 8080 failureThreshold: 30 periodSeconds: 10 ``` --- 📌 **Este documento será atualizado conforme a evolução do serviço.** 🚀 **DEJO Node: Garantindo disponibilidade com healthchecks inteligentes!** 🔥