<< All versions
Skill v1.0.1
currentAutomated scan100/100secondsky/claude-skills/health-check-endpoints
4 files
──Details
PublishedMay 29, 2026 at 01:43 PM
Content Hashsha256:dfd56fd849839cba...
Git SHA5e92b7170451
Bump Typepatch
──Files
Files (1 file, 2.6 KB)
SKILL.md2.6 KBactive
SKILL.md · 105 lines · 2.6 KB
version: "1.0.1" name: health-check-endpoints description: Health check endpoints for liveness, readiness, dependency monitoring. Use for Kubernetes, load balancers, auto-scaling, or encountering probe failures, startup delays, dependency checks, timeout configuration errors. license: MIT
Health Check Endpoints
Implement health checks for monitoring service availability and readiness.
Probe Types
| Probe | Purpose | Failure Action | |
|---|---|---|---|
| Liveness | Is process alive? | Restart container | |
| Readiness | Can handle traffic? | Remove from LB | |
| Startup | Has app started? | Delay other probes | |
| Deep | All deps healthy? | Trigger alerts |
Implementation (Express)
javascript
class HealthChecker {async checkDatabase() {const start = Date.now();try {await db.query('SELECT 1');return { status: 'healthy', latency: Date.now() - start };} catch (err) {return { status: 'unhealthy', error: String(err?.message || err) };}}async checkRedis() {try {await redis.ping();return { status: 'healthy' };} catch (err) {return { status: 'unhealthy', error: err.message };}}async getReadiness() {const checks = await Promise.all([this.checkDatabase(),this.checkRedis()]);const healthy = checks.every(c => c.status === 'healthy');return { healthy, checks };}}// Liveness - lightweightapp.get('/health/live', (req, res) => {res.json({ status: 'ok', timestamp: new Date().toISOString() });});// Readiness - check dependenciesapp.get('/health/ready', async (req, res) => {const health = await healthChecker.getReadiness();res.status(health.healthy ? 200 : 503).json(health);});
Kubernetes Configuration
yaml
livenessProbe:httpGet:path: /health/liveport: 3000initialDelaySeconds: 15periodSeconds: 10failureThreshold: 3readinessProbe:httpGet:path: /health/readyport: 3000initialDelaySeconds: 5periodSeconds: 10
Best Practices
- Keep liveness checks minimal (no external deps)
- Check only critical systems in readiness
- Return 200 for healthy, 503 for unhealthy
- Set reasonable timeouts to prevent cascading failures
- Include response time metrics
Additional Implementations
See references/implementations.md for:
- Python Flask complete health checker
- Java Spring Boot Actuator
- Full Kubernetes deployment config
Never Do
- Make liveness depend on external services
- Return 200 when dependencies are down
- Skip dependency checks in readiness