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:

copy

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

copy

{ 
  "status": "Healthy", 
  "timestamp": "2025-12-13T10:30:00Z", 
  "totalDurationMs": 5.23 
}
                

Kubernetes Behavior:

  • Healthy: Application is running normally
  • Unhealthy: 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:

copy

{ 
  "status": "Healthy", 
  "timestamp": "2025-12-13T10:30:00Z", 
  "totalDurationMs": 12.67 
}
                

Kubernetes Behavior:

  • Healthy: Pod receives traffic from the load balancer
  • Unhealthy: 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:

copy

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

  1. Always configure readiness probes in production environments to prevent traffic routing to unhealthy instances
  2. Monitor the /health/details endpoint from secure internal dashboards for detailed diagnostics
  3. Use /health/live for liveness and /health/ready for readiness in container orchestrators
  4. Avoid frequent polling of detailed endpoints to reduce overhead; use simple endpoints for high-frequency checks