+
Request Data Breakdown
+
+ {/* Overall Stats */}
+
+
+
Total Requests
+
{overallStats.totalRequests}
+
+
+
Total Size
+
{formatSize(overallStats.totalSize)}
+
+
+
Average Response Time
+
{formatDuration(overallStats.averageResponseTime)}
+
+
+
Success Rate
+
{overallStats.successRate.toFixed(1)}%
+
+
+
Cache Hit Rate
+
{overallStats.cacheHitRate.toFixed(1)}%
+
+
+
+ {/* Resource Type Breakdown */}
+
+
By Resource Type
+
+
+ Type
+ Count
+ Percentage
+ Total Size
+ Total Response Time
+ Avg Response Time
+
+ {resourceTypeBreakdown.map(item => (
+
+
{item.name}
+
{item.count}
+
+
{item.percentage.toFixed(1)}%
+
+
+
{formatSize(item.totalSize)}
+
{formatDuration(item.totalResponseTime)}
+
{formatDuration(item.averageResponseTime)}
+
+ ))}
+
+
+
+ {/* Status Code Breakdown */}
+
+
By Status Code
+
+
+ Status
+ Count
+ Percentage
+ Total Size
+ Total Response Time
+ Avg Response Time
+
+ {statusCodeBreakdown.map(item => (
+
+
{item.name}
+
{item.count}
+
+
{item.percentage.toFixed(1)}%
+
+
+
{formatSize(item.totalSize)}
+
{formatDuration(item.totalResponseTime)}
+
{formatDuration(item.averageResponseTime)}
+
+ ))}
+
+
+
+ {/* Hostname Breakdown */}
+
+
By Hostname
+
+
+ Hostname
+ Count
+ Percentage
+ Total Size
+ Total Response Time
+ Avg Response Time
+
+ {hostnameBreakdown.slice(0, 10).map(item => (
+
+
{item.name}
+
{item.count}
+
+
{item.percentage.toFixed(1)}%
+
+
+
{formatSize(item.totalSize)}
+
{formatDuration(item.totalResponseTime)}
+
{formatDuration(item.averageResponseTime)}
+
+ ))}
+
+ {hostnameBreakdown.length > 10 && (
+
+ Showing top 10 of {hostnameBreakdown.length} hostnames
+
+ )}
+
+
+ )
+}
+
+export default RequestBreakdown
\ No newline at end of file