Skip to main content
Health checks automatically monitor your deployed applications, alerting you when something goes wrong and providing insights into your application’s uptime.

What are Health Checks?

Health checks periodically send requests to your application to verify it’s running correctly. If your application stops responding, you’ll know immediately.

Setting Up a Health Check

1

Open your project

Navigate to the project you want to monitor
2

Go to Monitoring tab

Click on the Monitoring tab
3

Find Health Check section

Scroll to the Health Check card
4

Click Enable Health Check

Click the button to configure your health check
5

Configure settings

Set your endpoint, method, and timing
6

Save

Click Create to start monitoring

Configuration Options

SettingDescriptionDefault
EndpointThe URL path to check (e.g., /health)/
HTTP MethodGET, POST, etc.GET
Check IntervalHow often to check (in seconds)60
TimeoutHow long to wait for a response (in seconds)10
EnabledWhether the health check is activetrue

Choosing an Endpoint

Create a dedicated health check endpoint in your application:
// Express.js example
app.get('/health', (req, res) => {
  res.status(200).json({ status: 'healthy' });
});
# Flask example
@app.route('/health')
def health():
    return {'status': 'healthy'}, 200
// Go example
http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    w.Write([]byte(`{"status":"healthy"}`))
})
A good health check endpoint should verify critical dependencies (database connections, cache, etc.) and return quickly.

Viewing Health Check Results

Health Check History

The monitoring tab shows a chart of your health check history:
  • Response Time - How long each check took
  • Health Status - Healthy (green) or Unhealthy (red)
  • Time Range - Filter by last 10 minutes to last 90 days

Time Range Options

RangeDescription
Last 10 minutesReal-time monitoring
Last 1 hourRecent activity
Last 24 hoursDaily overview
Last 7 daysWeekly trends
Last 30 daysMonthly patterns
Last 90 daysLong-term history

Health Status

Your application’s health is determined by the response:
StatusCondition
HealthyReturns 2xx status code within timeout
UnhealthyReturns error status or times out

Managing Health Checks

Editing a Health Check

  1. Go to the Monitoring tab
  2. Click on the health check card
  3. Update your settings
  4. Click Update

Disabling a Health Check

Toggle the Enabled switch to pause monitoring without deleting the configuration.

Deleting a Health Check

  1. Open the health check settings
  2. Click Delete
  3. Confirm the deletion

Best Practices

Create a Dedicated Endpoint

Don’t use your homepage. Create a /health or /healthz endpoint that:
  • Returns quickly (under 1 second)
  • Checks critical dependencies
  • Returns a consistent response format

Check Dependencies

A comprehensive health check might verify:
app.get('/health', async (req, res) => {
  try {
    // Check database connection
    await db.ping();
    
    // Check cache connection
    await redis.ping();
    
    res.json({ 
      status: 'healthy',
      database: 'connected',
      cache: 'connected'
    });
  } catch (error) {
    res.status(503).json({ 
      status: 'unhealthy',
      error: error.message 
    });
  }
});

Set Appropriate Intervals

Application TypeRecommended Interval
Critical production30-60 seconds
Standard production60-120 seconds
Staging/Development300 seconds

Set Realistic Timeouts

Your timeout should be:
  • Long enough for your endpoint to respond normally
  • Short enough to detect actual problems
  • Typically 5-30 seconds depending on your application

Troubleshooting

Health Check Always Failing

  1. Verify the endpoint path is correct
  2. Make sure the endpoint returns a 2xx status
  3. Check that your application is running
  4. Review application logs for errors

Intermittent Failures

  1. Increase the timeout value
  2. Check for resource constraints
  3. Monitor response times for patterns
  4. Look for cold start issues

Response Times Increasing

This might indicate:
  • Growing database queries
  • Memory leaks
  • Increased load
  • External dependency slowdowns