Skip to main content

Overview

Custom monitoring allows you to track the health and performance of your own websites, APIs, and custom endpoints that aren’t available as pre-configured Sources in StatusStack.

What Can You Monitor?

Public Websites

Monitor your company website, landing pages, blogs, and documentation sites

API Endpoints

Track REST APIs, GraphQL endpoints, and microservices with custom health checks

Private Services

Monitor authenticated endpoints with custom headers and authentication

SSL Certificates

Track certificate expiry dates and get alerts before they expire

Creating Your First Monitor

1

Navigate to Website Monitors

In your dashboard, go to MonitoringWebsite Monitors
2

Click Create Monitor

Click the “Create Monitor” button in the top-right
3

Configure Basic Settings

Enter monitor details:
Name: Production API Health
URL: https://api.yoursite.com/health
Description: Monitors production API availability
4

Set Check Interval

Choose how often to check:
  • 30 seconds - Critical production services
  • 60 seconds - Standard production monitoring
  • 5 minutes - Less critical endpoints
  • 15 minutes - Internal tools and dashboards
5

Configure Validation

Define what “healthy” means:
Expected Status Code: 200
Timeout: 10 seconds
Failure Threshold: 3 consecutive failures
6

Add to Stack

Select which Stack(s) to add this monitor to
7

Create Monitor

Click “Create” to start monitoring
Monitoring begins immediately after creation. First check results appear within your configured interval.

Monitor Configuration

Basic Settings

FieldDescriptionExample
NameDisplay name for the monitor”Production API”
URLFull URL to monitorhttps://api.example.com/health
DescriptionOptional notes about this monitor”Main API health endpoint”
TeamWhich team owns this monitor”Engineering Team”

Check Configuration

How often StatusStack pings your endpoint:
IntervalUse CasePlan
30 secondsCritical production servicesPro/Enterprise
60 secondsStandard production monitoringPro/Enterprise
5 minutesLess critical endpointsFree/Pro/Enterprise
15 minutesInternal tools, stagingFree/Pro/Enterprise
30 minutesDevelopment environmentsFree/Pro/Enterprise
60 minutesLow-priority monitoringFree/Pro/Enterprise
Recommendation: Start with 5 minutes, adjust based on criticality.
Maximum time to wait for a response:
TimeoutUse Case
5 secondsFast APIs, microservices
10 secondsStandard APIs (recommended)
15 secondsSlower APIs, complex pages
30 secondsVery slow endpoints, data processing
Tip: If your endpoint occasionally takes > 10s, increase timeout to avoid false positives.
How many consecutive failures before alerting:
ThresholdBehaviorUse Case
1 failureAlert immediatelyUltra-critical services
3 failuresAlert after 3 checks (recommended)Standard monitoring
5 failuresAlert after 5 checksReduce false positives
Recommended: 3 failures balances speed and accuracy.
HTTP method to use:
  • GET (default) - Most health checks
  • POST - Endpoints requiring POST
  • HEAD - Just check if endpoint exists
  • PUT - Specific API operations
  • OPTIONS - CORS pre-flight checks
Most common: GET for 99% of health checks.

Advanced Configuration

Add authentication or custom headers to your requests:
Headers:
  Authorization: Bearer your-api-key-here
  X-API-Key: sk_live_abc123
  User-Agent: StatusStack Monitor
  Content-Type: application/json
Common use cases:
  • API authentication
  • Custom API keys
  • User-Agent identification
  • Content negotiation
Define which HTTP status codes mean “healthy”:
Expected Status Codes:
  - 200 (OK)
  - 201 (Created)
  - 204 (No Content)
  - 304 (Not Modified)
Default: Only 200 is considered healthy.When to customize:
  • APIs returning 201 on success
  • Endpoints that return 204 No Content
  • Cached responses returning 304
Check if response contains specific text or JSON:Text contains:
Response must contain: "healthy"
JSON validation:
Response must contain:
  status: "ok"
  uptime: > 0
Use for:
  • Verify health check response format
  • Ensure critical data is present
  • Validate API contract
Choose whether to follow HTTP redirects:
  • Enabled (default): Follow 301/302 redirects
  • Disabled: Treat redirects as failures
Enable when:
  • Monitoring root domains that redirect to www
  • Following HTTPS upgrades
  • Handling authentication redirects
Disable when:
  • Redirects indicate a problem
  • You want to catch redirect loops
  • Testing specific endpoint behavior
Configure SSL certificate checking:
Verify SSL Certificate: Yes (default)
Alert Days Before Expiry: 30 days
SSL monitoring includes:
  • Certificate validity
  • Expiration date tracking
  • Chain verification
  • Hostname matching
Alerts sent when:
  • Certificate expires in < 30 days (warning)
  • Certificate expires in < 7 days (critical)
  • Certificate is invalid or expired

Common Use Cases

Example 1: Simple Website Monitoring

Monitor a public website for uptime:
Monitor Configuration:
  Name: Company Website
  URL: https://www.yourcompany.com
  Method: GET
  Check Interval: 5 minutes
  Timeout: 15 seconds
  Expected Status: 200
  Failure Threshold: 3
  Verify SSL: Yes
  SSL Alert Threshold: 30 days
What this monitors:
  • Website is reachable
  • Returns 200 OK status
  • Responds within 15 seconds
  • SSL certificate is valid
  • Certificate not expiring soon

Example 2: API Health Check with Authentication

Monitor an authenticated API endpoint:
Monitor Configuration:
  Name: Production API Health
  URL: https://api.yourservice.com/health
  Method: GET
  Headers:
    Authorization: Bearer sk_live_abc123xyz
    Accept: application/json
  Check Interval: 60 seconds
  Timeout: 10 seconds
  Expected Status: 200
  Expected Body Contains: '"status":"healthy"'
  Failure Threshold: 3
What this monitors:
  • API is responding
  • Authentication working
  • Health endpoint returns correct JSON
  • Response time under 10 seconds

Example 3: Database Connectivity Check

Monitor database connectivity through a health endpoint:
Monitor Configuration:
  Name: Database Health Check
  URL: https://api.yourservice.com/health/db
  Method: GET
  Headers:
    X-Health-Check-Token: secret-token-here
  Check Interval: 60 seconds
  Timeout: 5 seconds
  Expected Status: 200
  Expected Body Contains: '"db":"connected"'
  Failure Threshold: 2
What this monitors:
  • Database connection pool healthy
  • Queries executing successfully
  • Connection not timing out

Example 4: Webhook Endpoint Monitoring

Ensure your webhook endpoint is reachable:
Monitor Configuration:
  Name: Stripe Webhook Endpoint
  URL: https://api.yourservice.com/webhooks/stripe
  Method: POST
  Headers:
    Content-Type: application/json
    Stripe-Signature: test-signature
  Body: |
    {
      "type": "ping",
      "test": true
    }
  Check Interval: 5 minutes
  Timeout: 10 seconds
  Expected Status: 200
  Failure Threshold: 3
What this monitors:
  • Webhook endpoint is reachable
  • Accepts POST requests
  • Returns success status

Example 5: Multi-Region API Monitoring (Enterprise)

Monitor the same API from multiple regions:
Monitor Configuration:
  Name: Global API Endpoint
  URL: https://api.global-service.com/health
  Regions:
    - US East (Virginia)
    - EU West (Ireland)
    - Asia Pacific (Singapore)
  Check Interval: 60 seconds
  Aggregate Strategy: Any region passing = Operational
What this monitors:
  • Global availability
  • Regional performance
  • Geographic redundancy

Monitor Status Indicators

Your monitors report one of four statuses:

Operational

All checks passing
  • Endpoint is responding
  • Status code is expected
  • Response within timeout
  • Body validation passing (if configured)

Degraded

Some failures, not critical yet
  • 1-2 failures (below threshold)
  • Slow responses (near timeout)
  • Intermittent issues
Action: Monitor closely, investigate if continues

Critical

Failure threshold exceeded
  • 3+ consecutive failures (default)
  • Endpoint unreachable
  • Timeout exceeded
  • Unexpected status code
Action: Immediate investigation required

Maintenance

Scheduled maintenance window
  • Monitoring paused
  • No alerts sent
  • Status page shows “Maintenance”
Action: None - expected downtime

Monitoring Best Practices

Don’t monitor your homepageBad: Monitor https://yoursite.com/
  • Slow to load
  • May cache errors
  • Doesn’t verify backend health
Good: Create https://api.yoursite.com/health
  • Fast, lightweight response
  • Checks database connectivity
  • Verifies critical dependencies
  • Returns structured JSON
Example health endpoint response:
{
  "status": "healthy",
  "timestamp": "2025-01-19T10:30:00Z",
  "checks": {
    "database": "connected",
    "cache": "connected",
    "external_api": "reachable"
  }
}
Match timeout to endpoint speed
Endpoint TypeRecommended Timeout
Fast APIs (< 1s)5 seconds
Standard APIs10 seconds
Complex queries15 seconds
Data processing30 seconds
Too short: False positives from legitimate slow responses Too long: Late detection of actual outages
Prevent false alarmsNetwork blips are common:
  • Single timeout: Probably network
  • 2-3 timeouts: Investigate
  • 5+ timeouts: Definitely down
Recommended configuration:
Failure Threshold: 3
Check Interval: 60 seconds
Detection Time: ~3 minutes
This balances:
  • ✅ Fast detection (3 minutes)
  • ✅ Filters false positives
  • ✅ Reasonable alert frequency
Protect sensitive endpointsOption 1: API Key Header
Headers:
  X-Health-Check-Token: secret-token-here
Option 2: Bearer Token
Headers:
  Authorization: Bearer your-api-key
Option 3: Custom Header
Headers:
  X-StatusStack-Monitor: true
Then whitelist StatusStack’s IP addresses in your firewall.
Test what users experienceInstead of monitoring:
  • ❌ Internal load balancer IP
  • ❌ Direct server endpoints
  • ❌ localhost addresses
Monitor:
  • ✅ Public domain names
  • ✅ CDN URLs
  • ✅ Load balancer endpoints
  • ✅ SSL/TLS terminated URLs
Why: Catches DNS issues, SSL problems, CDN failures

Maintenance Windows

Schedule downtime to prevent false alerts:

One-Time Maintenance

1

Open Monitor Settings

Navigate to your monitor and click “Schedule Maintenance”
2

Select Date & Time

Choose start and end times:
Start: January 25, 2025 at 2:00 AM UTC
End: January 25, 2025 at 4:00 AM UTC
3

Add Reason

Explain the maintenance (shown on status page):
"Database migration and server upgrades"
4

Save Maintenance

Monitor enters maintenance mode automatically at scheduled time

Recurring Maintenance

For regular maintenance windows:
Recurring Maintenance:
  Frequency: Weekly
  Day: Sunday
  Time: 2:00 AM - 4:00 AM UTC
  Reason: "Scheduled weekly maintenance"
Common use cases:
  • Weekly deployment windows
  • Monthly server patching
  • Quarterly infrastructure upgrades

Monitor Analytics

Each monitor provides detailed performance data:

Uptime Metrics

Current Uptime

  • Last 24 hours
  • Last 7 days
  • Last 30 days
  • Last 90 days

Incident Statistics

  • Total incidents
  • Average duration
  • MTTR (Mean Time to Recovery)
  • Longest outage

Response Time Tracking

  • Average response time over time
  • Slowest responses (P95, P99 percentiles)
  • Response time trends (improving/degrading)
  • Geographic performance (Enterprise)

Check History

View detailed check results:
✅ Jan 19, 2025 10:30:00 - 200 OK (125ms)
✅ Jan 19, 2025 10:29:00 - 200 OK (118ms)
❌ Jan 19, 2025 10:28:00 - Timeout after 10s
✅ Jan 19, 2025 10:27:00 - 200 OK (132ms)
Useful for:
  • Identifying patterns
  • Diagnosing intermittent issues
  • Performance regression analysis

Notifications

Configure alerts for monitor status changes:

Creating Monitor Alerts

1

Navigate to Notifications

Go to SettingsNotifications
2

Create Notification Rule

Click “Create Notification Rule”
3

Configure Trigger

Set when to alert:
Triggers:
  - Monitor becomes Critical
  - Monitor becomes Degraded (optional)
  - Monitor recovers
  - SSL certificate expiring (< 30 days)
4

Select Monitors

Choose which monitors trigger this rule:
  • All monitors
  • Specific monitors only
  • Monitors in specific Stacks
5

Choose Channels

Select notification channels:
  • Slack
  • Discord
  • Email
  • Microsoft Teams
  • PagerDuty
  • SMS (Twilio)
6

Save Rule

Activate the notification rule
See Notification Setup Guide for detailed configuration.

Troubleshooting

Monitor Showing as Down but Site is Up

Possible causes:
  1. Firewall blocking StatusStack - Whitelist our monitoring IPs
  2. Rate limiting - Exclude monitor user-agent from rate limits
  3. Authentication required - Add proper headers
  4. Timeout too short - Increase timeout duration
  5. SSL certificate issues - Verify certificate validity
Solutions:
  1. Check if endpoint is publicly accessible
  2. Verify expected status code is correct
  3. Increase timeout if endpoint is slow
  4. Add authentication headers if required
  5. Check SSL certificate expiration

False Positive Alerts

Issue: Getting alerts but service is actually up Solutions:
  1. Increase failure threshold (3 → 5)
  2. Increase timeout duration
  3. Verify expected status codes include all valid responses
  4. Check for rate limiting
  5. Review response body validation rules

Monitor Not Creating Alerts

Issue: Monitor shows as down but no notifications sent Check:
  1. Notification rules are configured
  2. Notification channels are working
  3. Alert levels match (Critical vs Degraded)
  4. Monitor is assigned to the right Stack
  5. Notification rule includes this monitor

Monitor Limits by Plan

PlanMax MonitorsMin IntervalRegions
Free15 minutes1
Pro2530 seconds1
EnterpriseUnlimited30 secondsMulti-region

Next Steps

Notification Setup

Configure alerts for monitor failures

Adding to Stacks

Integrate monitors with your Stacks

Monitor Concepts

Deep dive into monitor architecture

Status Pages

Display monitors on public status pages