commit inicial do projeto
This commit is contained in:
108
docs/healthchecks.md
Normal file
108
docs/healthchecks.md
Normal file
@ -0,0 +1,108 @@
|
||||
# 🔍 **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!** 🔥
|
||||
Reference in New Issue
Block a user