Skip to main content
Pangolin provides automated health checking for targets to ensure traffic is only routed to healthy services. Health checks are essential for building highly available services, as they automatically remove unhealthy targets from traffic routing and load balancing.

How Health Checks Work

Monitoring Process

Health checks operate continuously in the background:
  1. Periodic Checks: Pangolin sends requests to your target endpoints at configured intervals.
  2. Status Evaluation: Responses are evaluated against your configured criteria.
  3. Traffic Management: Healthy targets receive traffic, unhealthy targets are excluded.
  4. Automatic Recovery: Targets are automatically re-enabled when they become healthy again.

Target Health States

Targets can exist in three distinct states that determine how traffic is routed:

Unknown

Initial State: Targets start in this state before first health checkTraffic Behavior: Unknown targets still route traffic normallyDuration: Until first health check completes

Unhealthy

Failed Checks: Target has failed health check criteriaTraffic Behavior: No traffic is routed to unhealthy targetsLoad Balancing: Excluded from load balancing rotation

Healthy

Passing Checks: Target is responding correctly to health checksTraffic Behavior: Receives traffic according to load balancing rulesLoad Balancing: Included in load balancing rotation

Configuring Health Checks

1

Access Target Settings

In the Pangolin dashboard, navigate to your resource and locate the target in the table.
2

Open Health Check Configuration

Click the settings wheel (⚙️) next to the health check endpoint column.
3

Configure Health Check Parameters

Fill out the health check configuration with your desired parameters.
4

Save Configuration

Save your settings to enable health checking for the target.

Health Check Parameters

Endpoint Configuration

  • Target Endpoint: The URL or address to monitor for health status
  • Default Behavior: Usually the same as your target endpoint
  • Custom Endpoints: Can monitor different endpoints (e.g., /health, /status)

Timing Configuration

Healthy Interval

  • Purpose: How often to check targets that are currently healthy
  • Typical Range: 30-60 seconds
  • Consideration: Less frequent checks reduce overhead

Unhealthy Interval

  • Purpose: How often to check targets that are currently unhealthy
  • Typical Range: 10-30 seconds
  • Consideration: More frequent checks enable faster recovery

Response Configuration

Timeout Settings

  • Request Timeout: Maximum time to wait for a health check response
  • Default Behavior: Requests exceeding timeout are considered failed
  • Recommended: Set based on your service’s typical response time

HTTP Response Codes

  • Healthy Codes: Which HTTP status codes indicate a healthy target
  • Common Settings: 200, 201, 202, 204
  • Custom Codes: Configure based on your service’s health endpoint behavior

High Availability Strategies

Multi-Target Redundancy

Service Redundancy

Deploy multiple instances of your service across different targets to ensure availability even when some targets fail.
Resource: web-application
├── Target 1: web-01.local:8080 (Site A) - Healthy ✅
├── Target 2: web-02.local:8080 (Site A) - Unhealthy ❌
└── Target 3: web-03.local:8080 (Site B) - Healthy ✅

Traffic routes to: Target 1 & Target 3 only

Cross-Site Failover

Geographic Distribution

Distribute targets across multiple sites to protect against site-level failures.
Resource: api-service
├── Primary Site Targets
│   ├── api-01.primary:8443 - Healthy ✅
│   └── api-02.primary:8443 - Healthy ✅
└── Backup Site Targets
    ├── api-01.backup:8443 - Healthy ✅
    └── api-02.backup:8443 - Healthy ✅

All targets receive traffic via load balancing