curl --request GET \
--url https://api.example.com/health/liveness{
"200": {},
"503": {},
"status": "<string>",
"checks": {
"database": {
"status": "<string>",
"message": "<string>",
"error": "<string>"
},
"redis": {
"status": "<string>",
"message": "<string>",
"error": "<string>"
}
}
}Kubernetes-compatible health probe endpoints
curl --request GET \
--url https://api.example.com/health/liveness{
"200": {},
"503": {},
"status": "<string>",
"checks": {
"database": {
"status": "<string>",
"message": "<string>",
"error": "<string>"
},
"redis": {
"status": "<string>",
"message": "<string>",
"error": "<string>"
}
}
}Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Arvo-AI/aurora/llms.txt
Use this file to discover all available pages before exploring further.
GET /health/liveness
"alive" if the application is running{
"status": "alive"
}
apiVersion: v1
kind: Pod
metadata:
name: aurora-server
spec:
containers:
- name: aurora-server
image: aurora:latest
livenessProbe:
httpGet:
path: /health/liveness
port: 5080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
curl http://localhost:5080/health/liveness
GET /health/readiness
"ready" when critical services are available"not_ready" when critical services are unavailableShow Service Checks
{
"status": "ready"
}
{
"status": "not_ready",
"checks": {
"database": {
"status": "unhealthy",
"error": "Database connection failed"
},
"redis": {
"status": "healthy",
"message": "Redis connection successful"
}
}
}
apiVersion: v1
kind: Pod
metadata:
name: aurora-server
spec:
containers:
- name: aurora-server
image: aurora:latest
readinessProbe:
httpGet:
path: /health/readiness
port: 5080
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
curl http://localhost:5080/health/readiness
const checkReadiness = async () => {
try {
const response = await fetch('http://localhost:5080/health/readiness');
if (response.ok) {
console.log('Service is ready');
return true;
} else {
const data = await response.json();
console.error('Service not ready:', data.checks);
return false;
}
} catch (error) {
console.error('Readiness check failed:', error);
return false;
}
};
// Poll until ready
const waitForReady = async (maxAttempts = 10, delayMs = 2000) => {
for (let i = 0; i < maxAttempts; i++) {
if (await checkReadiness()) {
return true;
}
await new Promise(resolve => setTimeout(resolve, delayMs));
}
throw new Error('Service did not become ready in time');
};
import requests
import time
def check_readiness():
try:
response = requests.get('http://localhost:5080/health/readiness')
if response.status_code == 200:
print('Service is ready')
return True
else:
data = response.json()
print(f"Service not ready: {data.get('checks')}")
return False
except requests.RequestException as e:
print(f"Readiness check failed: {e}")
return False
def wait_for_ready(max_attempts=10, delay_seconds=2):
"""Poll until service is ready."""
for i in range(max_attempts):
if check_readiness():
return True
time.sleep(delay_seconds)
raise RuntimeError('Service did not become ready in time')
| Aspect | Liveness Probe | Readiness Probe |
|---|---|---|
| Purpose | Detect if application is hung/crashed | Detect if application can serve traffic |
| Checks | Application process only | Database + Redis |
| Failure Action | Restart container | Remove from load balancer |
| Response Time | Very fast (~1ms) | Moderate (~50-100ms) |
| Use When | Container orchestration | Load balancing |
initialDelaySeconds to allow application startup (30-60 seconds)apiVersion: apps/v1
kind: Deployment
metadata:
name: aurora-server
spec:
replicas: 3
template:
spec:
containers:
- name: aurora-server
image: aurora:latest
ports:
- containerPort: 5080
livenessProbe:
httpGet:
path: /health/liveness
port: 5080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /health/readiness
port: 5080
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
startupProbe:
httpGet:
path: /health/liveness
port: 5080
initialDelaySeconds: 0
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 12 # 60 seconds total
# Prometheus AlertManager rules
groups:
- name: aurora-health
rules:
- alert: AuroraLivenessFailure
expr: probe_success{job="aurora-liveness"} == 0
for: 1m
annotations:
summary: "Aurora liveness probe failing"
description: "Application may be hung or crashed"
- alert: AuroraNotReady
expr: probe_success{job="aurora-readiness"} == 0
for: 3m
annotations:
summary: "Aurora not ready to serve traffic"
description: "Check database and Redis connectivity"