commit inicial do projeto

This commit is contained in:
Júnior
2025-05-23 10:44:32 -03:00
commit 8f04473c0b
106 changed files with 5673 additions and 0 deletions

108
docs/healthchecks.md Normal file
View 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!** 🔥