Health Check Endpoints
Monitor application health and readiness
IdentitySuite provides multiple health check endpoints to monitor application health and readiness across different deployment environments, including Docker, Kubernetes, and traditional hosting platforms.
Available Endpoints
/health
Access: Public (Anonymous)
Purpose: General health check endpoint for backward compatibility with legacy monitoring tools and load balancers.
Response Format:
{
"status": "Healthy",
"timestamp": "2025-12-13T10:30:00Z",
"totalDurationMs": 8.45
}
Use Cases:
- Traditional load balancers
- Basic monitoring tools
- Generic health check integrations
/health/live
Access: Public (Anonymous)
Purpose: Kubernetes liveness probe endpoint. Determines if the application is in an unrecoverable state and needs to be restarted.
Checks Performed:
- System memory status (critical threshold: >90%)
Response Format:
{
"status": "Healthy",
"timestamp": "2025-12-13T10:30:00Z",
"totalDurationMs": 5.23
}
Kubernetes Behavior:
Healthy: Application is running normallyUnhealthy: Kubernetes will restart the container
Use Cases:
- Kubernetes liveness probes
- Docker health checks
- Detecting deadlocks or application crashes
/health/ready
Access: Public (Anonymous)
Purpose: Kubernetes readiness probe endpoint. Determines if the application can handle incoming traffic.
Checks Performed:
- System memory status (warning threshold: >80%)
- Database connectivity
Response Format:
{
"status": "Healthy",
"timestamp": "2025-12-13T10:30:00Z",
"totalDurationMs": 12.67
}
Kubernetes Behavior:
Healthy: Pod receives traffic from the load balancerUnhealthy: Pod is removed from the load balancer (but not restarted)
Use Cases:
- Kubernetes readiness probes
- Load balancer health checks
- Detecting temporary unavailability (e.g., database maintenance)
/health/details
Access: Protected (Requires Admin Role)
Purpose: Detailed health check dashboard for administrators and monitoring systems requiring comprehensive diagnostics.
Response Format:
{
"status": "Healthy",
"timestamp": "2025-12-13T21:47:02.5158264Z",
"totalDurationMs": 9.624,
"entries": {
"npgsql": {
"status": "Healthy",
"durationMs": 0.695,
"data": {},
"tags": []
},
"IdentityDbContext": {
"status": "Healthy",
"durationMs": 1.453,
"data": {},
"tags": [
"ready"
]
},
"Memory": {
"status": "Healthy",
"description": "Normal memory: 58,3% used",
"durationMs": 9.414,
"data": {
"Total_MB": 32472,
"Used_MB": 18927,
"Free_MB": 13544,
"Process_MB": 228,
"PercentUsed": 58.29
},
"tags": [
"live",
"ready"
]
}
}
}
Use Cases:
- Administrative monitoring dashboards
- Detailed troubleshooting
- Performance analysis
- Integration with advanced monitoring platforms
Health Status Values
| Status | Description | HTTP Code |
|---|---|---|
Healthy |
All checks passed successfully | 200 |
Degraded |
Some checks are in a warning state | 200 |
Unhealthy |
One or more critical checks failed | 503 |
Security Considerations
Public Endpoints (/health, /health/live, /health/ready)
These endpoints are intentionally public to allow:
- Load balancers to perform health checks without authentication
- Orchestrators (Kubernetes, Docker Swarm) to monitor container health
- External monitoring services to verify availability
These endpoints return minimal information (only status and timing) to avoid exposing sensitive data.
Protected Endpoint (/health/details)
This endpoint requires Admin role authentication and should only be accessible to:
- System administrators
- Authorized monitoring systems with proper credentials
This endpoint returns detailed diagnostic information including memory usage, database connection details, and individual check performance metrics.
Best Practices
- Always configure readiness probes in production environments to prevent traffic routing to unhealthy instances
- Monitor the
/health/detailsendpoint from secure internal dashboards for detailed diagnostics - Use
/health/livefor liveness and/health/readyfor readiness in container orchestrators - Avoid frequent polling of detailed endpoints to reduce overhead; use simple endpoints for high-frequency checks