Your CDN is the first layer between users and your infrastructure, responsible for reducing latency and handling traffic spikes. When a CDN edge node fails, content is served from a more distant node (slower) or fails entirely. When a CDN is misconfigured, it might serve stale content, bypass your origin's cache headers, or add unexpected latency. CDN performance monitoring catches these issues that traditional origin-only monitoring misses.
What CDN Monitoring Covers
CDN monitoring differs from origin server monitoring in a fundamental way: you're checking what users experience through the CDN layer, not what the CDN receives from your origin.
What CDN monitoring checks:
- Response times from CDN edge nodes in different geographic locations
- Cache hit/miss rates (via response headers)
- CDN error responses (CDN-level 502, 504 errors)
- Content integrity (is the CDN serving correct, non-stale content?)
- Edge node health across different PoPs (Points of Presence)
What CDN monitoring reveals:
- Edge node failures in specific regions
- Cache poisoning or stale content delivery
- CDN misconfiguration (wrong TTLs, missing headers)
- CDN provider incidents before their status page updates
CDN Health Check Architecture
The key to CDN monitoring is checking from locations that route through different CDN edge nodes:
Monitor from US-East → Routes to CDN's US-East edge → Check response
Monitor from EU-West → Routes to CDN's EU edge → Check response
Monitor from AP-Southeast → Routes to CDN's APAC edge → Check response
Monitor from SA-East → Routes to CDN's SA edge → Check response
If one regional check fails while others succeed, the CDN's edge node in that region is likely having issues. This is the power of AzMonitor's multi-location monitoring for CDN health.
Key CDN Metrics to Monitor
Response Headers for Cache Diagnostics
CDNs expose cache behavior through response headers. Use keyword monitoring to check these:
Cloudflare:
CF-Cache-Status: HIT → Content served from cache (fast)
CF-Cache-Status: MISS → Cache miss, served from origin (slower)
CF-Cache-Status: EXPIRED → Cached but expired, refreshed from origin
CF-Cache-Status: BYPASS → Cache explicitly bypassed
AWS CloudFront:
X-Cache: Hit from cloudfront → Cache hit
X-Cache: Miss from cloudfront → Cache miss
Fastly:
X-Cache: HIT
X-Cache: MISS
Monitor for unexpected patterns: a high rate of MISS responses on pages that should be cached indicates misconfiguration or cache invalidation issues.
Cache Hit Rate
A healthy CDN should have 80-95%+ cache hit rates for static assets and 30-70%+ for cacheable pages, depending on your traffic patterns.
Cache Hit Rate = (Total Requests - Cache Misses) / Total Requests × 100%
A sudden drop in cache hit rate indicates:
- A cache purge/invalidation event
- Changed cache headers (likely a deployment)
- Traffic pattern changes (new pages, new user geographies)
- CDN configuration change
Geographic Response Time Variation
Healthy CDN performance shows similar response times across regions (within 20-30ms typically). Large variation indicates regional edge node issues:
| Location | Expected | Actual | Status | |----------|---------|--------|--------| | US-East | 80ms | 85ms | OK | | EU-West | 95ms | 105ms | OK | | AP-Southeast | 110ms | 380ms | Degraded! | | SA-East | 120ms | 125ms | OK |
The APAC spike in this example indicates a CDN edge node issue or routing anomaly in that region.
Monitoring Specific CDN Configurations
Cloudflare Monitoring
# AzMonitor check for Cloudflare-protected site
monitor:
url: https://yoursite.com
headers_to_check:
CF-Cache-Status: [HIT, MISS, EXPIRED] # Any of these is OK
alerts:
- condition: response_time > 2000ms AND location == 'eu-west'
message: "EU CDN performance degraded"
- condition: header 'CF-Cache-Status' equals 'ERROR'
message: "Cloudflare edge error detected"
AWS CloudFront Monitoring
For CloudFront, also monitor your origin access:
monitors:
# Public CDN URL (what users hit)
- url: https://yoursite.com
name: "CloudFront Edge"
check_header: X-Cache
alert_on: missing_header # X-Cache missing means response bypassed CloudFront
# Origin URL (direct, bypassing CDN)
- url: https://origin.yoursite.com
name: "Origin Server"
auth: basic # Origin is protected, only CDN should access it
CDN Configuration Validation
CDN misconfigurations cause silent performance degradation. Validate your CDN configuration with monitoring:
Cache TTL validation: Check that resources have appropriate Cache-Control headers:
# Static assets should have long cache times
Cache-Control: public, max-age=31536000, immutable
# HTML pages should have shorter cache times
Cache-Control: public, max-age=300, stale-while-revalidate=60
# API responses should usually not be cached (or short TTL)
Cache-Control: no-store
HTTPS redirect validation: Confirm CDN correctly redirects HTTP to HTTPS and doesn't serve mixed content.
Header forwarding: If your origin sets security headers (HSTS, CSP, X-Frame-Options), verify the CDN forwards these correctly.
Responding to CDN Incidents
CDN incidents require different response than origin server incidents:
Regional CDN failure:
- Confirm failure is limited to specific region via multi-location checks
- Identify if it's a CDN edge failure or an origin issue
- Contact CDN provider support with specific location and timeline data
- Consider routing affected region traffic directly to origin as temporary measure
CDN-wide failure:
- Switch DNS to bypass CDN (if origin can handle traffic)
- Or switch to backup CDN (if you have multi-CDN setup)
- Update status page immediately
Cache staleness issue:
- Identify which pages are serving stale content
- Purge affected URLs from CDN cache
- Verify purge worked by checking CF-Cache-Status or equivalent
AzMonitor's geographic monitoring gives you the regional data needed to diagnose CDN issues quickly. Start monitoring your CDN performance alongside your origin server health for complete infrastructure visibility.
See also: global monitoring locations guide for understanding how multi-location checks support CDN monitoring.
3 monitors free forever · No credit card needed · Set up in 2 minutes
Start monitoring free →