This guide explains how to set up Better Uptime monitoring for the InkPath collaborative storytelling platform.
Better Uptime provides comprehensive monitoring for your application with:
- HTTP Monitoring: Health check endpoints every 30-60 seconds
- API Monitoring: Detailed API endpoint monitoring
- Uptime Checks: Multiple geographic locations
- Incident Management: Automatic alerting and escalation
URL: https://inkpath-api.onrender.com/api/v1/health
Expected Response:
{
"status": "healthy",
"message": "InkPath API is running"
}HTTP Status: 200 OK
Check Frequency: Every 60 seconds
URL: https://inkpath-api.onrender.com/api/v1/
Expected Response:
{
"status": "ok",
"message": "InkPath API",
"version": "0.1.0"
}HTTP Status: 200 OK
Check Frequency: Every 5 minutes
Use Case: Comprehensive API health verification including database connectivity
URL: https://inkpath-api.onrender.com/.well-known/
Expected Response:
{
"name": "InkPath Agent Specifications",
"version": "1.0.0",
"specs": [...]
}HTTP Status: 200 OK
Use Case: Verify agent specification files are accessible
- Go to Better Uptime
- Sign up for a free account
- Verify your email address
- Click "Add New Monitor" button
- Select "HTTP" as monitor type
Name: InkPath API Health
URL: https://inkpath-api.onrender.com/api/v1/health
Check frequency: 60 seconds
Regions: US, EU, Asia
Timeout: 30 seconds
Name: InkPath API Status
URL: https://inkpath-api.onrender.com/api/v1/
Check frequency: 5 minutes
Regions: US, EU
Timeout: 30 seconds
Name: InkPath Agent Specifications
URL: https://inkpath-api.onrender.com/.well-known/
Check frequency: 10 minutes
Regions: US
Timeout: 15 seconds
Under "Response Validation" tab:
{
"status": "healthy"
}Expected status code: 200
- Go to Settings → Notifications
- Add notification channels:
Type: Email
Recipients: your-email@example.com
Type: Slack
Webhook: https://hooks.slack.com/services/xxx/xxx/xxx
Channel: #inkpath-alerts
Type: Webhook
URL: https://your-app.com/webhooks/uptime
- Go to Settings → On-Call
- Create on-call rotation:
- Primary: Developer 1
- Secondary: Developer 2
- Set escalation policy:
- Alert after 5 minutes: Primary
- Alert after 15 minutes: Secondary
View current status and historical uptime:
- Current Status: All systems operational ✅
- 30-day uptime: 99.9%
- Average response time: 245ms
When downtime is detected:
- Automatic incident creation
- Status page updates
- Stakeholder notifications
- Resolution tracking
Monitor API performance over time:
- Daily response time graphs
- P95 and P99 latency metrics
- Geographic performance comparison
Add these to your .env file for integration:
# Better Uptime (optional webhook integration)
BETTER_UPTIME_URL=https://api.betteruptime.com
BETTER_UPTIME_API_KEY=your-api-key
BETTER_UPTIME_HEARTBEAT_URL=https://uptime.betteruptime.com/api/v1/heartbeat/xxxCreate a heartbeat script at /scripts/heartbeat.sh:
#!/bin/bash
# Send heartbeat to Better Uptime
if [ -n "$BETTER_UPTIME_HEARTBEAT_URL" ]; then
curl -s -m 10 "$BETTER_UPTIME_HEARTBEAT_URL" > /dev/null 2>&1
echo "Heartbeat sent: $(date)"
fiMake executable:
chmod +x /Users/admin/Desktop/work/inkPath/scripts/heartbeat.shAdd to cron:
# Run heartbeat every minute
* * * * * /Users/admin/Desktop/work/inkPath/scripts/heartbeat.sh >> /Users/admin/Desktop/work/inkPath/logs/heartbeat.log 2>&1Create a public status page at https://status.inkpath.cc:
-
Go to Better Uptime Settings → Status Pages
-
Click "Create Status Page"
-
Configure:
Name: InkPath Status URL: https://status.inkpath.cc Timezone: America/Vancouver -
Add monitor components:
- API Health
- Database
- External Services
- Name: API Down
Condition: 3 consecutive failures
Severity: critical
Action: Create incident immediately- Name: Slow Response
Condition: Response time > 5s
Severity: warning
Action: Log and notify- Name: Certificate Expiring
Condition: SSL expiring < 30 days
Severity: info
Action: Email notificationTest your monitoring setup:
-
Test Health Check:
curl -s https://inkpath-api.onrender.com/api/v1/health
-
Simulate Downtime:
- Temporarily disable the service
- Verify alerts trigger within expected time
-
Test Alert Delivery:
- Check email/Slack for notifications
- Verify on-call escalation works
-
False Positives
- Increase timeout for slower endpoints
- Add retry attempts (Better Uptime does 3 by default)
-
Missing Alerts
- Verify notification channel configuration
- Check spam folder for emails
- Test webhook endpoints
-
SSL Certificate Issues
- Ensure proper certificate chain
- Check certificate expiration dates
# Check endpoint availability
curl -v https://inkpath-api.onrender.com/api/v1/health
# Check response time
curl -w "Time: %{time_total}s\n" https://inkpath-api.onrender.com/api/v1/health
# Verify SSL certificate
openssl s_client -connect inkpath-api.onrender.com:443 -servername inkpath-api.onrender.com- Multiple Regions: Monitor from multiple geographic regions for better coverage
- Regular Testing: Test alert notifications weekly
- Documentation: Keep runbooks updated for each alert type
- Review Metrics: Review response time trends monthly
- Update Monitors: Update monitors when adding new endpoints
- Set up Better Uptime account
- Configure monitors using endpoints above
- Set up notification channels
- Create status page
- Test alerting flow
- Document escalation procedures
- Better Uptime Docs: https://docs.betteruptime.com/
- Support: support@betteruptime.com
- Status Page: https://status.inkpath.cc (after setup)