Add comprehensive report generation to batch analyzer

- Prompts user to save detailed report after analysis
- Generates formatted text report with full domain breakdown
- Includes server info, domain analysis, summary, and recommendations
- Shows memory impact, traffic data, and optimization potential
- Saves to /tmp with timestamp for easy reference
- Provides actionable recommendations based on findings

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
cschantz
2026-02-17 23:00:53 -05:00
parent ddb8136f79
commit 329772532d
+78 -9
View File
@@ -256,27 +256,96 @@ cecho "${WHITE}${BOLD}Report complete${NC}"
cecho " Generated: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""
# Optional: save to file
# Ask if user wants to save report
echo ""
cecho "${CYAN}─────────────────────────────────────────────────────────────────────${NC}"
read -p "Save detailed report to file? (y/n): " save_report
echo ""
REPORT_FILE="/tmp/php-fpm-analysis-$(date +%Y%m%d-%H%M%S).txt"
if [ -w /tmp ]; then
if [[ "$save_report" =~ ^[yY]$ ]] && [ -w /tmp ]; then
{
echo "PHP-FPM BATCH ANALYSIS REPORT"
echo "Generated: $(date)"
echo "╔════════════════════════════════════════════════════════════════════════╗"
echo "║ PHP-FPM BATCH ANALYSIS REPORT ║"
echo "╚════════════════════════════════════════════════════════════════════════╝"
echo ""
echo "REPORT GENERATED: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""
echo "═══════════════════════════════════════════════════════════════════════════"
echo "SERVER INFORMATION"
echo "═══════════════════════════════════════════════════════════════════════════"
echo "Total RAM: ${TOTAL_RAM_MB}MB"
echo "CPU Cores: ${CPU_CORES}"
echo "Control Panel: ${CONTROL_PANEL}"
echo ""
echo "═══════════════════════════════════════════════════════════════════════════"
echo "DOMAIN-BY-DOMAIN ANALYSIS"
echo "═══════════════════════════════════════════════════════════════════════════"
echo ""
# Output domain details
for idx in $(seq 1 $TOTAL_DOMAINS); do
domain="${domain_list[$idx]}"
owner="${domain_owner[$idx]}"
current="${current_max_children[$idx]}"
recommended="${recommended_max_children[$idx]}"
impact="${memory_impact[$idx]}"
peak="${peak_concurrent[$idx]}"
if [ "$current" == "ERROR" ]; then
continue
fi
echo "[$idx] $domain"
echo " Owner: $owner"
echo " Peak concurrent requests: $peak"
echo " Current max_children: $current"
echo " Recommended max_children: $recommended"
echo " Memory impact: ${impact}MB"
echo ""
done
echo "═══════════════════════════════════════════════════════════════════════════"
echo "SUMMARY"
echo "Total domains: $TOTAL_DOMAINS"
echo "═══════════════════════════════════════════════════════════════════════════"
echo ""
echo "Total domains analyzed: $TOTAL_DOMAINS"
echo "Domains needing optimization: $OPTIMIZATION_COUNT"
echo "Current memory allocation: ${TOTAL_CURRENT_MEMORY}MB (${CURRENT_PERCENT}%)"
echo "Recommended memory allocation: ${TOTAL_RECOMMENDED_MEMORY}MB (${RECOMMENDED_PERCENT}%)"
echo "Potential savings: ${POTENTIAL_SAVINGS}MB (${POTENTIAL_SAVINGS_PERCENT}%)"
echo "Domains already optimized: $((TOTAL_DOMAINS - OPTIMIZATION_COUNT))"
echo ""
echo "Current memory allocation: ${TOTAL_CURRENT_MEMORY}MB (${CURRENT_PERCENT}% of RAM)"
echo "Recommended memory allocation: ${TOTAL_RECOMMENDED_MEMORY}MB (${RECOMMENDED_PERCENT}% of RAM)"
echo "Potential savings: ${POTENTIAL_SAVINGS}MB (${POTENTIAL_SAVINGS_PERCENT}% reduction)"
echo ""
echo "Memory available after optimization: $((TOTAL_RAM_MB - TOTAL_RECOMMENDED_MEMORY))MB"
echo ""
echo "═══════════════════════════════════════════════════════════════════════════"
echo "RECOMMENDATIONS"
echo "═══════════════════════════════════════════════════════════════════════════"
echo ""
if [ "$OPTIMIZATION_COUNT" -gt 0 ]; then
echo "Action: Optimize $OPTIMIZATION_COUNT domain(s)"
echo "Run: php-optimizer.sh → Option 5 (Optimize Server-Wide PHP Settings)"
echo "Expected outcome: Free up ${POTENTIAL_SAVINGS}MB of RAM"
else
echo "Status: All domains are already optimally configured"
echo "No optimization needed at this time"
fi
if [ "$(echo "$AVAILABLE_AFTER_RECOMMENDED < 2048" | bc)" -eq 1 ] 2>/dev/null; then
echo ""
echo "WARNING: Memory headroom after optimization is limited (${AVAILABLE_AFTER_RECOMMENDED}MB)"
echo "Consider reducing some domain limits further or upgrading server RAM"
fi
} > "$REPORT_FILE"
cecho "Report saved to: ${CYAN}$REPORT_FILE${NC}"
cecho "${GREEN}${NC} Detailed report saved to: ${CYAN}$REPORT_FILE${NC}"
echo ""
fi
echo ""