Files
dejo-node/docs/healthchecks.md
2025-05-23 10:44:32 -03:00

2.3 KiB
Raw Blame History

🔍 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:

{
  "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):

{
  "status": "ready",
  "dependencies": {
    "database": "ok",
    "consensus": "ok",
    "p2p": "ok"
  },
  "timestamp": 1712456789
}

📌 Exemplo de resposta (falha):

{
  "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:

{
  "status": "initialized",
  "message": "Node startup completed",
  "timestamp": 1712456789
}

2 Configuração no Kubernetes

📌 Exemplo de configuração no deployment.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! 🔥