Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lcatlett/4867ce330d8ac4543d7b05a641d16c5f to your computer and use it in GitHub Desktop.
Save lcatlett/4867ce330d8ac4543d7b05a641d16c5f to your computer and use it in GitHub Desktop.
Pantheon Binding Audit Report - Site: c21cb825-1762-411a-b57b-203214bc4afa (live) - 2025-08-07 12:12:17
{
"audit_metadata": {
"timestamp": "2025-08-07T16:12:11Z",
"binding_id": "0c445b7692884e2084d4b9fe2cef983a",
"audit_version": "1.0",
"cache_directory": "./binding_cache/c21cb825-1762-411a-b57b-203214bc4afa/live/0c445b7692884e2084d4b9fe2cef983a",
"date_range": {
"start_date": "2025-08-06",
"end_date": "2025-08-07",
"duration_days": 2,
"filter_type": "last_n_days"
}
},
"binding_metadata": {
"site_name": "tpg-aerodrome",
"site_id": "c21cb825-1762-411a-b57b-203214bc4afa",
"environment": "live",
"plan_name": "Elite",
"service_level": "elite_20m",
"framework": "wordpress",
"php_version": "74",
"appserver_count": 1,
"endpoint": "c3bc4055-a64d-4913-bcd0-18f075cd4398"
},
"plan_tier_analysis": {
"detected_tier": "Elite",
"worker_range": "4-8",
"error_rate_targets": {
"warning_threshold": 2.0,
"critical_threshold": 5.0
},
"performance_targets": {
"p95_target_seconds": 10.0,
"worker_efficiency_target": 1.0,
"socket_availability_target": 99.0
}
},
"current_usage": {
"php_processes": 0,
"binding_php_processes": 0,
"nginx_processes": 0,
"total_processes": 0,
"memory_usage_mb": 0,
"memory_usage_percent": 0.0,
"cpu_cores": 1,
"load_average": "0.0",
"load_per_core": 0.00,
"old_workers": 6,
"stuck_workers": 0,
"worker_efficiency": 0.0,
"overall_health_score": 0,
"health_status": "DEGRADED",
"uptime_seconds": 86400
},
"resource_exhaustion": {
"overall_status": "OK",
"exhaustion_score": 0,
"cpu_status": "OK",
"memory_status": "OK",
"php_status": "OK",
"efficiency_status": "OK",
"php_process_multiplier": 1.0,
"expected_workers": 8,
"indicators": [],
"analysis_approach": "enhanced_diagnostic"
},
"resource_limits": {
"php_memory_limit_mb": "1024M",
"mysql_memory_limit_mb": "unknown",
"redis_memory_limit_mb": "unknown"
},
"configuration": {
"php_fpm": {
"pm_mode": "dynamic",
"max_children": 8,
"start_servers": 1,
"min_spare_servers": 1,
"max_spare_servers": 5,
"max_requests": 100,
"request_terminate_timeout": 120
},
"php_memory_limit": "1024M",
"nginx": {
"worker_processes": 4,
"worker_connections": 128,
"max_connections": 1024,
"connection_utilization_percent": 0.0
},
"issues": [
]
},
"error_analysis": {
"today": {
"requests": 11007,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"last_7_days": {
"requests": 11007,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"timeout_patterns": {
"30s_timeouts": 0,
"59s_timeouts": 0,
"120s_timeouts": 0,
"long_requests_today": 0
}
},
"socket_exhaustion": {
"nginx_socket_errors_today": 0,
"nginx_socket_errors_week": 0,
"phpfpm_exhaustion_today": 0,
"phpfpm_exhaustion_week": 0,
"max_children_hits": 0,
"worker_scaling_events": 0,
"connection_refused_errors": 0,
"upstream_timeout_errors": 0,
"php_process_kills": 0,
"severity": "OK"
},
"performance_metrics": {
"response_times": {
"p50_seconds": 0,
"p95_seconds": 23164,
"p99_seconds": 0
},
"throughput": {
"requests_per_minute": 8,
"worker_efficiency": 0.0
},
"severity": "OK"
},
"slow_endpoints": [],
"worker_analysis": {
"total_workers": 8,
"old_workers": 6,
"stuck_workers": 0,
"efficiency_percent": 10.0
},
"cascade_analysis": {
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"url_patterns": [],
"cascade_indicators": [
" 1000 slow requests >10s (cascade triggers)",
"6 old workers + 50 recent 499s = worker waste pattern",
"1247 user 499s > 9 bot 499s = real user impact"
],
"severity": "CRITICAL"
},
"cascade_analysis_enhanced": {
"total_499s": 50,
"user_499s": 1247,
"bot_499s": 9,
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"worker_waste_percent": 0,
"response_distribution": "200:916 404:68 301:10 302:4 403:2 ",
"cascade_stats": "Count: 50, Min: 0s, Max: 0s, Avg: 0.00s",
"slow_urls": "/wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) ",
"top_499_urls": "/wp-json/tpg/v1/cards/(394) /wp-json/tpg/v1/cards/?ids=22504813%2C221212097%2C10186%2C7758%2C8152(273) /wp-json/ugc/v1/reviews/8152(50) ",
"top_499_user_agents": "axios/1.8.2(1045) node(179) Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)(9) ",
"cascade_indicators": [" 1000 slow requests >10s (cascade triggers)","6 old workers + 50 recent 499s = worker waste pattern","1247 user 499s > 9 bot 499s = real user impact"],
"severity": "CRITICAL",
"analysis_approach": "working_diagnostic"
},
"user_agent_analysis": {
"bot_499s": 9,
"user_499s": 1247,
"bot_user_agents": ""
},
"log_inventory": {
"nginx_access_logs": 10,
"nginx_error_logs": 2,
"php_logs": 4,
"total_log_size_mb": 36
},
"health_checks": {
"status": "UNKNOWN",
"alerts": [
],
"warnings": [
]
},
"memory_validation": {
"status": "UNKNOWN",
"safety_factor": 0,
"headroom_percent": 0,
"recommendations": [
]
},
"worker_scaling": {
"current_workers": 8,
"optimal_workers": 0,
"scaling_algorithm": "dynamic",
"plan_based_range": "8-16"
},
"recommendations": [
"CRITICAL: 499 cascade pattern detected",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"CRITICAL: High user 499 errors (1247 user vs 9 bot)",
"ACTION: Prioritize fixing user-facing timeout issues"
]
}
{
"audit_metadata": {
"timestamp": "2025-08-07T16:10:11Z",
"binding_id": "63053e636ff04abd8af3a7d237f5c1ac",
"audit_version": "1.0",
"cache_directory": "./binding_cache/c21cb825-1762-411a-b57b-203214bc4afa/live/63053e636ff04abd8af3a7d237f5c1ac",
"date_range": {
"start_date": "2025-08-06",
"end_date": "2025-08-07",
"duration_days": 2,
"filter_type": "last_n_days"
}
},
"binding_metadata": {
"site_name": "tpg-aerodrome",
"site_id": "c21cb825-1762-411a-b57b-203214bc4afa",
"environment": "live",
"plan_name": "Elite",
"service_level": "elite_20m",
"framework": "wordpress",
"php_version": "74",
"appserver_count": 1,
"endpoint": "14a136cd-6f65-4544-aea5-f8234be594a6"
},
"plan_tier_analysis": {
"detected_tier": "Elite",
"worker_range": "4-8",
"error_rate_targets": {
"warning_threshold": 2.0,
"critical_threshold": 5.0
},
"performance_targets": {
"p95_target_seconds": 10.0,
"worker_efficiency_target": 1.0,
"socket_availability_target": 99.0
}
},
"current_usage": {
"php_processes": 0,
"binding_php_processes": 0,
"nginx_processes": 0,
"total_processes": 0,
"memory_usage_mb": 0,
"memory_usage_percent": 0.0,
"cpu_cores": 1,
"load_average": "0.0",
"load_per_core": 0.00,
"old_workers": 6,
"stuck_workers": 0,
"worker_efficiency": 0.0,
"overall_health_score": 0,
"health_status": "DEGRADED",
"uptime_seconds": 86400
},
"resource_exhaustion": {
"overall_status": "OK",
"exhaustion_score": 0,
"cpu_status": "OK",
"memory_status": "OK",
"php_status": "OK",
"efficiency_status": "OK",
"php_process_multiplier": 1.0,
"expected_workers": 8,
"indicators": [],
"analysis_approach": "enhanced_diagnostic"
},
"resource_limits": {
"php_memory_limit_mb": "1024M",
"mysql_memory_limit_mb": "unknown",
"redis_memory_limit_mb": "unknown"
},
"configuration": {
"php_fpm": {
"pm_mode": "dynamic",
"max_children": 8,
"start_servers": 1,
"min_spare_servers": 1,
"max_spare_servers": 5,
"max_requests": 100,
"request_terminate_timeout": 120
},
"php_memory_limit": "1024M",
"nginx": {
"worker_processes": 4,
"worker_connections": 128,
"max_connections": 1024,
"connection_utilization_percent": 0.0
},
"issues": [
]
},
"error_analysis": {
"today": {
"requests": 13942,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"last_7_days": {
"requests": 13959,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"timeout_patterns": {
"30s_timeouts": 0,
"59s_timeouts": 0,
"120s_timeouts": 0,
"long_requests_today": 0
}
},
"socket_exhaustion": {
"nginx_socket_errors_today": 0,
"nginx_socket_errors_week": 0,
"phpfpm_exhaustion_today": 0,
"phpfpm_exhaustion_week": 0,
"max_children_hits": 0,
"worker_scaling_events": 0,
"connection_refused_errors": 0,
"upstream_timeout_errors": 0,
"php_process_kills": 0,
"severity": "OK"
},
"performance_metrics": {
"response_times": {
"p50_seconds": 0,
"p95_seconds": 18537,
"p99_seconds": 0
},
"throughput": {
"requests_per_minute": 10,
"worker_efficiency": 0.0
},
"severity": "OK"
},
"slow_endpoints": [],
"worker_analysis": {
"total_workers": 8,
"old_workers": 6,
"stuck_workers": 0,
"efficiency_percent": 12.5
},
"cascade_analysis": {
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"url_patterns": [],
"cascade_indicators": [
" 1000 slow requests >10s (cascade triggers)",
"6 old workers + 50 recent 499s = worker waste pattern",
"1177 user 499s > 4 bot 499s = real user impact"
],
"severity": "CRITICAL"
},
"cascade_analysis_enhanced": {
"total_499s": 50,
"user_499s": 1177,
"bot_499s": 4,
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"worker_waste_percent": 0,
"response_distribution": "200:918 404:71 301:8 302:2 403:1 ",
"cascade_stats": "Count: 50, Min: 0s, Max: 0s, Avg: 0.00s",
"slow_urls": "/wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) ",
"top_499_urls": "/wp-json/tpg/v1/cards/(418) /wp-json/tpg/v1/cards/?ids=22504813%2C221212097%2C10186%2C7758%2C8152(207) /wp-json/ugc/v1/reviews/8152(46) ",
"top_499_user_agents": "axios/1.8.2(1008) node(147) WordPress/6.5.4;(8) ",
"cascade_indicators": [" 1000 slow requests >10s (cascade triggers)","6 old workers + 50 recent 499s = worker waste pattern","1177 user 499s > 4 bot 499s = real user impact"],
"severity": "CRITICAL",
"analysis_approach": "working_diagnostic"
},
"user_agent_analysis": {
"bot_499s": 4,
"user_499s": 1177,
"bot_user_agents": ""
},
"log_inventory": {
"nginx_access_logs": 28,
"nginx_error_logs": 4,
"php_logs": 4,
"total_log_size_mb": 46
},
"health_checks": {
"status": "UNKNOWN",
"alerts": [
],
"warnings": [
]
},
"memory_validation": {
"status": "UNKNOWN",
"safety_factor": 0,
"headroom_percent": 0,
"recommendations": [
]
},
"worker_scaling": {
"current_workers": 8,
"optimal_workers": 0,
"scaling_algorithm": "dynamic",
"plan_based_range": "8-16"
},
"recommendations": [
"CRITICAL: 499 cascade pattern detected",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"CRITICAL: High user 499 errors (1177 user vs 4 bot)",
"ACTION: Prioritize fixing user-facing timeout issues"
]
}
{
"audit_metadata": {
"timestamp": "2025-08-07T16:10:11Z",
"binding_id": "712c301a62704fb182e33fe933edc72a",
"audit_version": "1.0",
"cache_directory": "./binding_cache/c21cb825-1762-411a-b57b-203214bc4afa/live/712c301a62704fb182e33fe933edc72a",
"date_range": {
"start_date": "2025-08-06",
"end_date": "2025-08-07",
"duration_days": 2,
"filter_type": "last_n_days"
}
},
"binding_metadata": {
"site_name": "tpg-aerodrome",
"site_id": "c21cb825-1762-411a-b57b-203214bc4afa",
"environment": "live",
"plan_name": "Elite",
"service_level": "elite_20m",
"framework": "wordpress",
"php_version": "74",
"appserver_count": 1,
"endpoint": "96a66656-c490-4ac6-a7be-c0f17b23aa9e"
},
"plan_tier_analysis": {
"detected_tier": "Elite",
"worker_range": "4-8",
"error_rate_targets": {
"warning_threshold": 2.0,
"critical_threshold": 5.0
},
"performance_targets": {
"p95_target_seconds": 10.0,
"worker_efficiency_target": 1.0,
"socket_availability_target": 99.0
}
},
"current_usage": {
"php_processes": 0,
"binding_php_processes": 0,
"nginx_processes": 0,
"total_processes": 0,
"memory_usage_mb": 0,
"memory_usage_percent": 0.0,
"cpu_cores": 1,
"load_average": "0.0",
"load_per_core": 0.00,
"old_workers": 6,
"stuck_workers": 0,
"worker_efficiency": 0.0,
"overall_health_score": 0,
"health_status": "DEGRADED",
"uptime_seconds": 86400
},
"resource_exhaustion": {
"overall_status": "OK",
"exhaustion_score": 0,
"cpu_status": "OK",
"memory_status": "OK",
"php_status": "OK",
"efficiency_status": "OK",
"php_process_multiplier": 1.0,
"expected_workers": 8,
"indicators": [],
"analysis_approach": "enhanced_diagnostic"
},
"resource_limits": {
"php_memory_limit_mb": "1024M",
"mysql_memory_limit_mb": "unknown",
"redis_memory_limit_mb": "unknown"
},
"configuration": {
"php_fpm": {
"pm_mode": "dynamic",
"max_children": 8,
"start_servers": 1,
"min_spare_servers": 1,
"max_spare_servers": 5,
"max_requests": 100,
"request_terminate_timeout": 120
},
"php_memory_limit": "1024M",
"nginx": {
"worker_processes": 4,
"worker_connections": 128,
"max_connections": 1024,
"connection_utilization_percent": 0.0
},
"issues": [
]
},
"error_analysis": {
"today": {
"requests": 13831,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"last_7_days": {
"requests": 13847,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"timeout_patterns": {
"30s_timeouts": 0,
"59s_timeouts": 0,
"120s_timeouts": 0,
"long_requests_today": 0
}
},
"socket_exhaustion": {
"nginx_socket_errors_today": 0,
"nginx_socket_errors_week": 0,
"phpfpm_exhaustion_today": 0,
"phpfpm_exhaustion_week": 0,
"max_children_hits": 0,
"worker_scaling_events": 0,
"connection_refused_errors": 0,
"upstream_timeout_errors": 0,
"php_process_kills": 0,
"severity": "OK"
},
"performance_metrics": {
"response_times": {
"p50_seconds": 0,
"p95_seconds": 18609,
"p99_seconds": 0
},
"throughput": {
"requests_per_minute": 10,
"worker_efficiency": 0.0
},
"severity": "OK"
},
"slow_endpoints": [],
"worker_analysis": {
"total_workers": 8,
"old_workers": 6,
"stuck_workers": 0,
"efficiency_percent": 12.5
},
"cascade_analysis": {
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"url_patterns": [],
"cascade_indicators": [
" 1000 slow requests >10s (cascade triggers)",
"6 old workers + 50 recent 499s = worker waste pattern",
"1237 user 499s > 6 bot 499s = real user impact"
],
"severity": "CRITICAL"
},
"cascade_analysis_enhanced": {
"total_499s": 50,
"user_499s": 1237,
"bot_499s": 6,
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"worker_waste_percent": 0,
"response_distribution": "200:933 404:57 301:10 ",
"cascade_stats": "Count: 50, Min: 0s, Max: 0s, Avg: 0.00s",
"slow_urls": "/wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) ",
"top_499_urls": "/wp-json/tpg/v1/cards/(419) /wp-json/tpg/v1/cards/?ids=22504813%2C221212097%2C10186%2C7758%2C8152(229) /wp-json/ugc/v1/reviews/8152(43) ",
"top_499_user_agents": "axios/1.8.2(1049) node(170) WordPress/6.5.4;(7) ",
"cascade_indicators": [" 1000 slow requests >10s (cascade triggers)","6 old workers + 50 recent 499s = worker waste pattern","1237 user 499s > 6 bot 499s = real user impact"],
"severity": "CRITICAL",
"analysis_approach": "working_diagnostic"
},
"user_agent_analysis": {
"bot_499s": 6,
"user_499s": 1237,
"bot_user_agents": ""
},
"log_inventory": {
"nginx_access_logs": 50,
"nginx_error_logs": 5,
"php_logs": 4,
"total_log_size_mb": 59
},
"health_checks": {
"status": "UNKNOWN",
"alerts": [
],
"warnings": [
]
},
"memory_validation": {
"status": "UNKNOWN",
"safety_factor": 0,
"headroom_percent": 0,
"recommendations": [
]
},
"worker_scaling": {
"current_workers": 8,
"optimal_workers": 0,
"scaling_algorithm": "dynamic",
"plan_based_range": "8-16"
},
"recommendations": [
"CRITICAL: 499 cascade pattern detected",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"CRITICAL: High user 499 errors (1237 user vs 6 bot)",
"ACTION: Prioritize fixing user-facing timeout issues"
]
}
{
"audit_metadata": {
"timestamp": "2025-08-07T16:12:12Z",
"binding_id": "fa36f8ffd9864f5ba55ad8cd18926211",
"audit_version": "1.0",
"cache_directory": "./binding_cache/c21cb825-1762-411a-b57b-203214bc4afa/live/fa36f8ffd9864f5ba55ad8cd18926211",
"date_range": {
"start_date": "2025-08-06",
"end_date": "2025-08-07",
"duration_days": 2,
"filter_type": "last_n_days"
}
},
"binding_metadata": {
"site_name": "tpg-aerodrome",
"site_id": "c21cb825-1762-411a-b57b-203214bc4afa",
"environment": "live",
"plan_name": "Elite",
"service_level": "elite_20m",
"framework": "wordpress",
"php_version": "74",
"appserver_count": 1,
"endpoint": "cfc7ad2b-9da6-4243-8360-1edad86ea16e"
},
"plan_tier_analysis": {
"detected_tier": "Elite",
"worker_range": "4-8",
"error_rate_targets": {
"warning_threshold": 2.0,
"critical_threshold": 5.0
},
"performance_targets": {
"p95_target_seconds": 10.0,
"worker_efficiency_target": 1.0,
"socket_availability_target": 99.0
}
},
"current_usage": {
"php_processes": 0,
"binding_php_processes": 0,
"nginx_processes": 0,
"total_processes": 0,
"memory_usage_mb": 0,
"memory_usage_percent": 0.0,
"cpu_cores": 1,
"load_average": "0.0",
"load_per_core": 0.00,
"old_workers": 6,
"stuck_workers": 0,
"worker_efficiency": 0.0,
"overall_health_score": 0,
"health_status": "DEGRADED",
"uptime_seconds": 86400
},
"resource_exhaustion": {
"overall_status": "OK",
"exhaustion_score": 0,
"cpu_status": "OK",
"memory_status": "OK",
"php_status": "OK",
"efficiency_status": "OK",
"php_process_multiplier": 1.0,
"expected_workers": 8,
"indicators": [],
"analysis_approach": "enhanced_diagnostic"
},
"resource_limits": {
"php_memory_limit_mb": "1024M",
"mysql_memory_limit_mb": "unknown",
"redis_memory_limit_mb": "unknown"
},
"configuration": {
"php_fpm": {
"pm_mode": "dynamic",
"max_children": 8,
"start_servers": 1,
"min_spare_servers": 1,
"max_spare_servers": 5,
"max_requests": 100,
"request_terminate_timeout": 120
},
"php_memory_limit": "1024M",
"nginx": {
"worker_processes": 4,
"worker_connections": 128,
"max_connections": 1024,
"connection_utilization_percent": 0.0
},
"issues": [
]
},
"error_analysis": {
"today": {
"requests": 9014,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"last_7_days": {
"requests": 9014,
"499_errors": 0,
"502_errors": 0,
"503_errors": 0,
"504_errors": 0,
"error_rate_percent": 0
},
"timeout_patterns": {
"30s_timeouts": 0,
"59s_timeouts": 0,
"120s_timeouts": 0,
"long_requests_today": 0
}
},
"socket_exhaustion": {
"nginx_socket_errors_today": 0,
"nginx_socket_errors_week": 0,
"phpfpm_exhaustion_today": 0,
"phpfpm_exhaustion_week": 0,
"max_children_hits": 0,
"worker_scaling_events": 0,
"connection_refused_errors": 0,
"upstream_timeout_errors": 0,
"php_process_kills": 0,
"severity": "OK"
},
"performance_metrics": {
"response_times": {
"p50_seconds": 0,
"p95_seconds": 28895,
"p99_seconds": 0
},
"throughput": {
"requests_per_minute": 6,
"worker_efficiency": 0.0
},
"severity": "OK"
},
"slow_endpoints": [],
"worker_analysis": {
"total_workers": 8,
"old_workers": 6,
"stuck_workers": 0,
"efficiency_percent": 7.5
},
"cascade_analysis": {
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"url_patterns": [],
"cascade_indicators": [
" 1000 slow requests >10s (cascade triggers)",
"6 old workers + 50 recent 499s = worker waste pattern",
"1150 user 499s > 9 bot 499s = real user impact"
],
"severity": "CRITICAL"
},
"cascade_analysis_enhanced": {
"total_499s": 50,
"user_499s": 1150,
"bot_499s": 9,
"avg_499_response_time": 0.00,
"long_running_requests": 1000,
"worker_waste_percent": 0,
"response_distribution": "200:931 404:60 302:5 301:3 403:1 ",
"cascade_stats": "Count: 50, Min: 0s, Max: 0s, Avg: 0.00s",
"slow_urls": "/wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) /wp-json/tpg/v1/cards/(304286.0s) ",
"top_499_urls": "/wp-json/tpg/v1/cards/(396) /wp-json/tpg/v1/cards/?ids=22504813%2C221212097%2C10186%2C7758%2C8152(220) /wp-json/ugc/v1/reviews/8152(43) ",
"top_499_user_agents": "axios/1.8.2(965) node(169) Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)(9) ",
"cascade_indicators": [" 1000 slow requests >10s (cascade triggers)","6 old workers + 50 recent 499s = worker waste pattern","1150 user 499s > 9 bot 499s = real user impact"],
"severity": "CRITICAL",
"analysis_approach": "working_diagnostic"
},
"user_agent_analysis": {
"bot_499s": 9,
"user_499s": 1150,
"bot_user_agents": ""
},
"log_inventory": {
"nginx_access_logs": 25,
"nginx_error_logs": 4,
"php_logs": 4,
"total_log_size_mb": 46
},
"health_checks": {
"status": "UNKNOWN",
"alerts": [
],
"warnings": [
]
},
"memory_validation": {
"status": "UNKNOWN",
"safety_factor": 0,
"headroom_percent": 0,
"recommendations": [
]
},
"worker_scaling": {
"current_workers": 8,
"optimal_workers": 0,
"scaling_algorithm": "dynamic",
"plan_based_range": "8-16"
},
"recommendations": [
"CRITICAL: 499 cascade pattern detected",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"CRITICAL: High user 499 errors (1150 user vs 9 bot)",
"ACTION: Prioritize fixing user-facing timeout issues"
]
}
{
"recommendations_metadata": {
"timestamp": "2025-08-07T16:12:16Z",
"site_id": "c21cb825-1762-411a-b57b-203214bc4afa",
"environment": "live",
"total_bindings_analyzed": 4,
"bindings_with_recommendations": 4
},
"summary": {
"critical_actions_count": 8,
"warning_actions_count": 8,
"optimization_opportunities_count": 0,
"affected_bindings_count": 4
},
"critical_actions": [
"CRITICAL: 499 cascade pattern detected",
"CRITICAL: High user 499 errors (1150 user vs 9 bot)",
"CRITICAL: 499 cascade pattern detected",
"CRITICAL: High user 499 errors (1177 user vs 4 bot)",
"CRITICAL: 499 cascade pattern detected",
"CRITICAL: High user 499 errors (1237 user vs 6 bot)",
"CRITICAL: 499 cascade pattern detected",
"CRITICAL: High user 499 errors (1247 user vs 9 bot)"
],
"warning_actions": [
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"ACTION: Prioritize fixing user-facing timeout issues",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"ACTION: Prioritize fixing user-facing timeout issues",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"ACTION: Prioritize fixing user-facing timeout issues",
"ACTION: Implement request_terminate_timeout and optimize long-running operations",
"ACTION: Prioritize fixing user-facing timeout issues"
],
"optimization_opportunities": [
],
"affected_bindings": [
"fa36f8ffd9864f5ba55ad8cd18926211",
"63053e636ff04abd8af3a7d237f5c1ac",
"712c301a62704fb182e33fe933edc72a",
"0c445b7692884e2084d4b9fe2cef983a"
]
}
{
"summary_metadata": {
"timestamp": "2025-08-07T16:12:16Z",
"site_id": "c21cb825-1762-411a-b57b-203214bc4afa",
"environment": "live",
"binding_count": 4,
"audit_version": "1.0"
},
"site_overview": {
"site_name": "tpg-aerodrome",
"plan_name": "Elite",
"service_level": "elite_20m",
"total_bindings": 4,
"overall_severity": "CRITICAL"
},
"aggregated_metrics": {
"total_requests_today": 47794,
"total_requests_week": 47827,
"total_499_errors_today": 0,
"total_499_errors_week": 0,
"total_502_errors_today": 0,
"total_502_errors_week": 0,
"overall_error_rate_today_percent": 0.00,
"overall_error_rate_percent": 0.00
},
"binding_health": {
"critical_bindings": 4,
"warning_bindings": 0,
"healthy_bindings": 0,
"health_distribution_percent": {
"critical": 100.0,
"warning": 0.0,
"healthy": 0.0
}
},
"binding_reports": [
{"binding_id": "fa36f8ffd9864f5ba55ad8cd18926211", "report_file": "binding_fa36f8ffd9864f5ba55ad8cd18926211.json"},
{"binding_id": "63053e636ff04abd8af3a7d237f5c1ac", "report_file": "binding_63053e636ff04abd8af3a7d237f5c1ac.json"},
{"binding_id": "712c301a62704fb182e33fe933edc72a", "report_file": "binding_712c301a62704fb182e33fe933edc72a.json"},
{"binding_id": "0c445b7692884e2084d4b9fe2cef983a", "report_file": "binding_0c445b7692884e2084d4b9fe2cef983a.json"}
]
}

Pantheon Binding Tool - Comprehensive Report

Executive Summary

  • Site Name: tpg-aerodrome
  • Site ID: c21cb825-1762-411a-b57b-203214bc4afa
  • Plan: Elite
  • Total Bindings: 4
  • Overall Status: CRITICAL
  • Audit Date: Thu Aug 7 12:12:16 EDT 2025

Performance Overview (Last 7 Days)

  • Total Requests: 47,827
  • 499 Errors (Client Disconnects): 0
  • 502 Errors (Bad Gateway): 0
  • Overall Error Rate: 0.00%

Binding Health Summary

  • 🔴 Critical Issues: 4 bindings
  • 🟡 Warning Issues: 0 bindings
  • 🟢 Healthy: 0 bindings

Technical Details

Audit Methodology:

  • Log analysis covers last 7 days of nginx access/error logs
  • Configuration analysis of PHP-FPM, nginx, and Redis settings
  • Performance metrics extracted from current and historical log files
  • Error rate calculations based on total requests vs error responses

Key Metrics Explained:

  • 499 Errors: Client disconnected before server response
  • 502 Errors: Bad gateway errors
  • Socket Errors: Resource exhaustion at nginx level
  • PHP-FPM Pool Exhaustion: All PHP workers busy, requests queued/dropped

Thresholds:

  • Critical: Error rate > 5% OR > 1000 errors/day
  • Warning: Error rate > 1% OR > 100 errors/day
  • Healthy: Error rate < 1% AND < 100 errors/day

Next Steps

  1. Immediate Actions:

    • Review critical recommendations above
    • Implement fixes for high-priority items
    • Monitor error rates closely
  2. Scheduled Improvements:

    • Address warning-level issues during maintenance windows
    • Implement optimization recommendations
    • Update monitoring and alerting
  3. Follow-up:

    • Re-run audit after 24-48 hours to verify improvements
    • Set up regular auditing schedule
    • Review trends over time for capacity planning

Report Files

  • Site Summary: site_summary.json - Machine-readable aggregate data
  • Recommendations: recommendations.json - Detailed actionable items
  • Individual Bindings: bindings/binding_*.json - Per-binding detailed analysis

Generated: Thu Aug 7 12:12:16 EDT 2025 Audit Tool: Pantheon Binding Tool v1.0 Data Source: Last 7 days of log files and current configuration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment