net_benchmark.http_bench.analysis

Statistical analysis of HTTP benchmark results.

Classes

HTTPAnalyzer(results)

Analyse HTTP benchmark results and compute statistics.

TargetStats(target, method, total_requests, ...)

Statistics for a single HTTP target URL.

class net_benchmark.http_bench.analysis.TargetStats(target, method, total_requests, successful_requests, success_rate, min_latency, max_latency, avg_latency, median_latency, std_latency, p95_latency, p99_latency, jitter=0.0, consistency_score=0.0, avg_ttfb_ms=0.0, p95_ttfb_ms=0.0, http2_rate=0.0, redirect_rate=0.0, avg_response_size_bytes=0.0, avg_dns_ms=0.0, avg_tcp_ms=0.0, avg_tls_ms=0.0, avg_compressed_size_bytes=0.0, avg_redirect_time_ms=0.0, http2_downgrade_rate=0.0, cache_control_present=0, etag_present=0, last_modified_present=0, age_present=0, hsts_present=0, csp_present=0, cdn_fingerprint=None, server_header=None, cert_expiry_days_min=None, alt_svc=None, ip_version=None)[source]

Bases: object

Statistics for a single HTTP target URL.

Field layout mirrors ResolverStats:

target ← resolver_name (identity) method ← (no DNS equivalent — HTTP-specific) total_requests ← total_queries successful_requests ← successful_queries success_rate ← success_rate min/max/avg/… ← same latency stat fields, same formulas http2_rate ← dnssec_validation_rate (protocol quality signal)

target: str
method: str
total_requests: int
successful_requests: int
success_rate: float
min_latency: float
max_latency: float
avg_latency: float
median_latency: float
std_latency: float
p95_latency: float
p99_latency: float
jitter: float = 0.0
consistency_score: float = 0.0
avg_ttfb_ms: float = 0.0
p95_ttfb_ms: float = 0.0
http2_rate: float = 0.0
redirect_rate: float = 0.0
avg_response_size_bytes: float = 0.0
avg_dns_ms: float = 0.0
avg_tcp_ms: float = 0.0
avg_tls_ms: float = 0.0
avg_compressed_size_bytes: float = 0.0
avg_redirect_time_ms: float = 0.0
http2_downgrade_rate: float = 0.0
cache_control_present: int = 0
etag_present: int = 0
last_modified_present: int = 0
age_present: int = 0
hsts_present: int = 0
csp_present: int = 0
cdn_fingerprint: Optional[str] = None
server_header: Optional[str] = None
cert_expiry_days_min: Optional[int] = None
alt_svc: Optional[str] = None
ip_version: Optional[str] = None
class net_benchmark.http_bench.analysis.HTTPAnalyzer(results)[source]

Bases: object

Analyse HTTP benchmark results and compute statistics.

Mirrors BenchmarkAnalyzer structure exactly — same __init__, same _create_dataframe pattern, same public method signatures.

get_target_statistics()[source]

Compute per-target statistics. Mirrors get_resolver_statistics.

Return type:

List[TargetStats]

get_overall_statistics()[source]

Overall benchmark statistics. Mirrors BenchmarkAnalyzer.get_overall_statistics.

Return type:

Dict[str, Any]

get_ttfb_statistics()[source]

Per-target TTFB breakdown. Mirrors get_domain_statistics.

Return type:

List[Dict[str, Any]]

get_protocol_distribution()[source]

HTTP/1.1 vs HTTP/2 breakdown. Mirrors get_protocol_statistics.

Return type:

List[Dict[str, Any]]

get_security_summary()[source]

Aggregate security signal counts across all results. Mirrors get_dnssec_statistics — the protocol-quality signal for HTTP.

Return type:

Dict[str, Any]

get_status_code_distribution()[source]

HTTP status code breakdown. No DNS equivalent — HTTP-only.

Return type:

List[Dict[str, Any]]

get_error_statistics()[source]

Error message counts. Mirrors BenchmarkAnalyzer.get_error_statistics.

Return type:

Dict[str, int]