In container orchestration platforms like Kubernetes, health checks and readiness checks are probes that help to ensure the reliability and availability of containerized applications.
When deploying GraphQL Mesh with mesh start on Node.js, the built-in Yoga Server provides the endpoints /healthcheck and /readiness out of the box.
Health Check
Health check probes periodically check the container's internal state to ensure it's healthy.
Endpoint /healthcheck returns HTTP 200 when successful:
curl "http://localhost:4000/healthcheck" -v
> GET /healthcheck HTTP/1.1
> Host: localhost:4000
> User-Agent: curl/7.86.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 28 Feb 2023 10:56:42 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
< Content-Length: 0
<
Readiness Check
Readiness probes check whether the container is ready to handle traffic:
Endpoint /readiness returns HTTP 204 when ready or HTTP 503 when not.
curl "http://localhost:4000/readiness" -v
> GET /readiness HTTP/1.1
> Host: localhost:4000
> User-Agent: curl/7.86.0
> Accept: */*
>
< HTTP/1.1 204 No Content
< Date: Tue, 28 Feb 2023 10:56:44 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
<
Kubernetes Example
The Kubernetes livenessProbe and readinessProbe configuration would look like this:
livenessProbe:
httpGet:
path: /healthcheck
port: http
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /readiness
port: http
initialDelaySeconds: 5
periodSeconds: 5
Top comments (0)