From f4c9649e8818cef19d159163866e3c4f6a821389 Mon Sep 17 00:00:00 2001 From: Julien Pinsonneau Date: Mon, 3 Nov 2025 16:25:14 +0100 Subject: [PATCH 1/4] improve perfs --- bpf/flows.c | 184 ++++++++++++++++++++++++-------- bpf/flows_filter.h | 60 ++++++++++- bpf/network_events_monitoring.h | 17 ++- bpf/types.h | 2 +- bpf/utils.h | 77 +++++++++++++ pkg/ebpf/bpf_arm64_bpfel.go | 25 ++--- pkg/ebpf/bpf_arm64_bpfel.o | Bin 290176 -> 295544 bytes pkg/ebpf/bpf_powerpc_bpfel.go | 25 ++--- pkg/ebpf/bpf_powerpc_bpfel.o | Bin 289024 -> 294392 bytes pkg/ebpf/bpf_s390_bpfeb.go | 25 ++--- pkg/ebpf/bpf_s390_bpfeb.o | Bin 305528 -> 311136 bytes pkg/ebpf/bpf_x86_bpfel.go | 25 ++--- pkg/ebpf/bpf_x86_bpfel.o | Bin 289920 -> 295288 bytes pkg/model/record_test.go | 3 +- 14 files changed, 329 insertions(+), 114 deletions(-) diff --git a/bpf/flows.c b/bpf/flows.c index 6602c1904..e3371e78a 100644 --- a/bpf/flows.c +++ b/bpf/flows.c @@ -58,25 +58,78 @@ #include "ipsec.h" // return 0 on success, 1 if capacity reached +// Optimized: loop unrolled and early exits for common cases static __always_inline int add_observed_intf(flow_metrics *value, pkt_info *pkt, u32 if_index, u8 direction) { if (value->nb_observed_intf >= MAX_OBSERVED_INTERFACES) { return 1; } - for (u8 i = 0; i < value->nb_observed_intf; i++) { - if (value->observed_intf[i] == if_index) { - if (value->observed_direction[i] != direction && - value->observed_direction[i] != OBSERVED_DIRECTION_BOTH) { - // Same interface seen on a different direction => mark as both directions - value->observed_direction[i] = OBSERVED_DIRECTION_BOTH; - } - // Interface already seen -> skip - return 0; + + // Fast path: unroll loop for small array sizes (most common cases) + // Check each position explicitly to eliminate loop overhead + u8 nb = value->nb_observed_intf; + + // Unroll for common cases (0-3 interfaces) - most flows see 1-2 interfaces + if (nb == 0) { + // First interface - no check needed + goto add_new; + } + + // Check existing interfaces with unrolled comparisons + if (value->observed_intf[0] == if_index) { + if (value->observed_direction[0] != direction && + value->observed_direction[0] != OBSERVED_DIRECTION_BOTH) { + value->observed_direction[0] = OBSERVED_DIRECTION_BOTH; + } + return 0; + } + + if (nb >= 2 && value->observed_intf[1] == if_index) { + if (value->observed_direction[1] != direction && + value->observed_direction[1] != OBSERVED_DIRECTION_BOTH) { + value->observed_direction[1] = OBSERVED_DIRECTION_BOTH; } + return 0; } - value->observed_intf[value->nb_observed_intf] = if_index; - value->observed_direction[value->nb_observed_intf] = direction; - value->nb_observed_intf++; + + if (nb >= 3 && value->observed_intf[2] == if_index) { + if (value->observed_direction[2] != direction && + value->observed_direction[2] != OBSERVED_DIRECTION_BOTH) { + value->observed_direction[2] = OBSERVED_DIRECTION_BOTH; + } + return 0; + } + + // Fully unroll remaining cases (positions 3-5) for MAX_OBSERVED_INTERFACES=6 + if (nb >= 4 && value->observed_intf[3] == if_index) { + if (value->observed_direction[3] != direction && + value->observed_direction[3] != OBSERVED_DIRECTION_BOTH) { + value->observed_direction[3] = OBSERVED_DIRECTION_BOTH; + } + return 0; + } + + if (nb >= 5 && value->observed_intf[4] == if_index) { + if (value->observed_direction[4] != direction && + value->observed_direction[4] != OBSERVED_DIRECTION_BOTH) { + value->observed_direction[4] = OBSERVED_DIRECTION_BOTH; + } + return 0; + } + + if (nb >= 6 && value->observed_intf[5] == if_index) { + if (value->observed_direction[5] != direction && + value->observed_direction[5] != OBSERVED_DIRECTION_BOTH) { + value->observed_direction[5] = OBSERVED_DIRECTION_BOTH; + } + return 0; + } + +add_new: + // Not found - add new interface + value->observed_intf[nb] = if_index; + value->observed_direction[nb] = direction; + value->nb_observed_intf = nb + 1; return 0; } @@ -84,22 +137,34 @@ static __always_inline void update_existing_flow(flow_metrics *aggregate_flow, p u64 len, u32 sampling, u32 if_index, u8 direction) { // Count only packets seen from the same interface as previously to avoid duplicate counts + // Using lock-free atomic operations for better performance int maxReached = 0; - bpf_spin_lock(&aggregate_flow->lock); - if (aggregate_flow->if_index_first_seen == if_index) { - aggregate_flow->packets += 1; - aggregate_flow->bytes += len; + + // Read if_index_first_seen once (it's never modified after flow creation) + u32 first_seen = aggregate_flow->if_index_first_seen; + + if (first_seen == if_index) { + // Common path: same interface - use atomic operations + __sync_fetch_and_add(&aggregate_flow->packets, 1); + __sync_fetch_and_add(&aggregate_flow->bytes, len); + // Timestamp: use simple write (acceptable if slightly out of order, we want latest anyway) + // On architectures that support it, this will be naturally atomic for aligned 64-bit writes aggregate_flow->end_mono_time_ts = pkt->current_ts; + // Flags is u16 - eBPF doesn't support atomic ops on 16-bit types + // Use simple write: OR is idempotent, so worst case is missing a flag bit in rare races (acceptable) aggregate_flow->flags |= pkt->flags; + // DSCP and sampling: simple writes (these are infrequently updated, races are acceptable) aggregate_flow->dscp = pkt->dscp; aggregate_flow->sampling = sampling; } else if (if_index != 0) { - // Only add info that we've seen this interface (we can also update end time & flags) + // Different interface path: update timestamps/flags atomically, then add interface aggregate_flow->end_mono_time_ts = pkt->current_ts; + // Flags update - use simple write (OR is idempotent, occasional missed flag is acceptable) aggregate_flow->flags |= pkt->flags; + // Note: add_observed_intf may have races, but worst case is missing one interface entry + // This is acceptable since interface tracking is best-effort metadata maxReached = add_observed_intf(aggregate_flow, pkt, if_index, direction); } - bpf_spin_unlock(&aggregate_flow->lock); if (maxReached > 0) { BPF_PRINTK("observed interface missed (array capacity reached); ifindex=%d, eth_type=%d, " "proto=%d, sport=%d, dport=%d\n", @@ -138,25 +203,50 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) { } u16 eth_protocol = 0; + // Initialize pkt_info with only needed fields - compiler zeros the rest pkt_info pkt; - __builtin_memset(&pkt, 0, sizeof(pkt)); + pkt.current_ts = bpf_ktime_get_ns(); // Record the current time first. + pkt.id = NULL; // Will be set below + pkt.flags = 0; + pkt.l4_hdr = NULL; + pkt.dscp = 0; + pkt.dns_id = 0; + pkt.dns_flags = 0; + pkt.dns_latency = 0; + // DNS name only initialized if DNS tracking enabled (set by track_dns_packet if needed) - flow_id id; - __builtin_memset(&id, 0, sizeof(id)); + flow_id id = {0}; // All fields zeroed - needed for flow identification - pkt.current_ts = bpf_ktime_get_ns(); // Record the current time first. pkt.id = &id; void *data_end = (void *)(long)skb->data_end; void *data = (void *)(long)skb->data; struct ethhdr *eth = (struct ethhdr *)data; u64 len = skb->len; + u8 protocol = 0; // Will be set by L3 parsing - if (fill_ethhdr(eth, data_end, &pkt, ð_protocol) == DISCARD) { + // Optimized: Parse L2+L3 first for early IP filtering + // This allows us to skip L4 parsing if IP-based filtering rejects the packet + if (fill_ethhdr_l3only(eth, data_end, &pkt, ð_protocol, &protocol) == DISCARD) { return TC_ACT_OK; } - // check if this packet need to be filtered if filtering feature is enabled + // Early IP filtering: check if we can reject before parsing L4 + // This saves L4 parsing for packets that will be rejected anyway + bool filter_enabled = is_filter_enabled(); + if (filter_enabled) { + filter_action early_action = MAX_FILTER_ACTIONS; + if (early_ip_filter_check(&id, &early_action, eth_protocol, direction)) { + // Early rejection - skip L4 parsing entirely + if (early_action == REJECT) { + return TC_ACT_OK; + } + } + } + // Parse L4 (needed for full filtering or flow tracking) + parse_l4_after_l3(eth, data_end, &pkt, eth_protocol, protocol); + + // Full filter check (now that L4 is parsed if needed) bool skip = check_and_do_flow_filtering(&id, pkt.flags, 0, eth_protocol, &flow_sampling, direction); if (has_filter_sampling) { @@ -183,18 +273,20 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) { update_existing_flow(aggregate_flow, &pkt, len, flow_sampling, skb->ifindex, direction); } else { // Key does not exist in the map, and will need to create a new entry. - flow_metrics new_flow; - __builtin_memset(&new_flow, 0, sizeof(new_flow)); - new_flow.if_index_first_seen = skb->ifindex; - new_flow.direction_first_seen = direction; - new_flow.packets = 1; - new_flow.bytes = len; - new_flow.eth_protocol = eth_protocol; - new_flow.start_mono_time_ts = pkt.current_ts; - new_flow.end_mono_time_ts = pkt.current_ts; - new_flow.flags = pkt.flags; - new_flow.dscp = pkt.dscp; - new_flow.sampling = flow_sampling; + // Initialize only the fields we need - compiler will zero the rest + flow_metrics new_flow = { + .if_index_first_seen = skb->ifindex, + .direction_first_seen = direction, + .packets = 1, + .bytes = len, + .eth_protocol = eth_protocol, + .start_mono_time_ts = pkt.current_ts, + .end_mono_time_ts = pkt.current_ts, + .flags = pkt.flags, + .dscp = pkt.dscp, + .sampling = flow_sampling, + .nb_observed_intf = 0 // Explicitly zero for clarity + }; __builtin_memcpy(new_flow.dst_mac, eth->h_dest, ETH_ALEN); __builtin_memcpy(new_flow.src_mac, eth->h_source, ETH_ALEN); @@ -245,15 +337,17 @@ static inline int flow_monitor(struct __sk_buff *skb, u8 direction) { if (extra_metrics != NULL) { update_dns(extra_metrics, &pkt, dns_errno); } else { - additional_metrics new_metrics; - __builtin_memset(&new_metrics, 0, sizeof(new_metrics)); - new_metrics.start_mono_time_ts = pkt.current_ts; - new_metrics.end_mono_time_ts = pkt.current_ts; - new_metrics.eth_protocol = eth_protocol; - new_metrics.dns_record.id = pkt.dns_id; - new_metrics.dns_record.flags = pkt.dns_flags; - new_metrics.dns_record.latency = pkt.dns_latency; - new_metrics.dns_record.errno = dns_errno; + // Initialize only needed fields - compiler will zero the rest + additional_metrics new_metrics = { + .start_mono_time_ts = pkt.current_ts, + .end_mono_time_ts = pkt.current_ts, + .eth_protocol = eth_protocol, + .dns_record = {.id = pkt.dns_id, + .flags = pkt.dns_flags, + .latency = pkt.dns_latency, + .errno = dns_errno}, + .network_events_idx = 0 // Explicitly zero for clarity + }; long ret = bpf_map_update_elem(&additional_flow_metrics, &id, &new_metrics, BPF_NOEXIST); if (ret != 0) { diff --git a/bpf/flows_filter.h b/bpf/flows_filter.h index 22055c774..085da1da6 100644 --- a/bpf/flows_filter.h +++ b/bpf/flows_filter.h @@ -59,7 +59,7 @@ static __always_inline int do_flow_filter_lookup(flow_id *id, struct filter_key_ if (rule->do_peerCIDR_lookup) { struct filter_key_t peerKey; - __builtin_memset(&peerKey, 0, sizeof(peerKey)); + // No need to memset - flow_filter_setup_lookup_key will initialize all fields we use // PeerCIDR lookup will will target the opposite IP compared to original CIDR lookup // In other words if cidr is using srcIP then peerCIDR will be the dstIP if (flow_filter_setup_lookup_key(id, &peerKey, &len, &offset, use_src_ip, @@ -218,6 +218,62 @@ static __always_inline int do_flow_filter_lookup(flow_id *id, struct filter_key_ return result; } +/* + * Early IP-only filter check - optimized to skip L4 parsing if IP-based rejection is possible. + * Returns: 1 if packet can be rejected early (IP-only reject rule), 0 if needs full check + * This is a fast path that only checks CIDR matching, not ports/protocols. + */ +static __always_inline int early_ip_filter_check(flow_id *id, filter_action *action, + u16 eth_protocol, u8 direction) { + struct filter_key_t key; + u8 len, offset; + struct filter_value_t *rule; + + // Check srcIP CIDR match first + if (flow_filter_setup_lookup_key(id, &key, &len, &offset, true, eth_protocol) < 0) { + return 0; // Need full check + } + + rule = (struct filter_value_t *)bpf_map_lookup_elem(&filter_map, &key); + if (rule && rule->action == REJECT) { + // IP matches and action is REJECT - can reject early without checking ports/protocols + // Note: We check direction if rule specifies it + if (rule->direction == MAX_DIRECTION || rule->direction == direction) { + // If rule has port/protocol checks, we can't reject early (would need L4) + // But if it's IP-only (protocol==0, no ports), we can reject now + if (rule->protocol == 0 && rule->dstPortStart == 0 && rule->srcPortStart == 0 && + rule->portStart == 0 && rule->dstPort1 == 0 && rule->srcPort1 == 0 && + rule->port1 == 0 && rule->dstPort2 == 0 && rule->srcPort2 == 0 && + rule->port2 == 0 && !rule->do_peerCIDR_lookup && rule->tcpFlags == 0 && + rule->icmpType == 0 && rule->filter_drops == 0) { + *action = REJECT; + return 1; // Can reject early + } + } + } + + // Check dstIP CIDR match + if (flow_filter_setup_lookup_key(id, &key, &len, &offset, false, eth_protocol) < 0) { + return 0; // Need full check + } + + rule = (struct filter_value_t *)bpf_map_lookup_elem(&filter_map, &key); + if (rule && rule->action == REJECT) { + if (rule->direction == MAX_DIRECTION || rule->direction == direction) { + if (rule->protocol == 0 && rule->dstPortStart == 0 && rule->srcPortStart == 0 && + rule->portStart == 0 && rule->dstPort1 == 0 && rule->srcPort1 == 0 && + rule->port1 == 0 && rule->dstPort2 == 0 && rule->srcPort2 == 0 && + rule->port2 == 0 && !rule->do_peerCIDR_lookup && rule->tcpFlags == 0 && + rule->icmpType == 0 && rule->filter_drops == 0) { + *action = REJECT; + return 1; // Can reject early + } + } + } + + return 0; // Need full check with L4 +} + /* * check if the flow match filter rule and return >= 1 if the flow is to be dropped */ @@ -228,7 +284,7 @@ static __always_inline int is_flow_filtered(flow_id *id, filter_action *action, u8 len, offset; int result = 0; - __builtin_memset(&key, 0, sizeof(key)); + // No need to memset - flow_filter_setup_lookup_key will initialize all fields we use *action = MAX_FILTER_ACTIONS; // Lets do first CIDR match using srcIP. diff --git a/bpf/network_events_monitoring.h b/bpf/network_events_monitoring.h index 6adc099b7..3e6765170 100644 --- a/bpf/network_events_monitoring.h +++ b/bpf/network_events_monitoring.h @@ -7,11 +7,20 @@ #include "utils.h" +// Optimized: unroll loop for small array (MAX_NETWORK_EVENTS=4) static inline bool md_already_exists(u8 network_events[MAX_NETWORK_EVENTS][MAX_EVENT_MD], u8 *md) { - for (u8 i = 0; i < MAX_NETWORK_EVENTS; i++) { - if (__builtin_memcmp(network_events[i], md, MAX_EVENT_MD) == 0) { - return true; - } + // Unroll comparisons for common case - most flows have 1-2 events + if (__builtin_memcmp(network_events[0], md, MAX_EVENT_MD) == 0) { + return true; + } + if (__builtin_memcmp(network_events[1], md, MAX_EVENT_MD) == 0) { + return true; + } + if (__builtin_memcmp(network_events[2], md, MAX_EVENT_MD) == 0) { + return true; + } + if (__builtin_memcmp(network_events[3], md, MAX_EVENT_MD) == 0) { + return true; } return false; } diff --git a/bpf/types.h b/bpf/types.h index 500620de4..9a6965503 100644 --- a/bpf/types.h +++ b/bpf/types.h @@ -98,7 +98,7 @@ typedef struct flow_metrics_t { u8 dst_mac[ETH_ALEN]; // OS interface index u32 if_index_first_seen; - struct bpf_spin_lock lock; + // Lock removed - using lock-free atomic operations for better performance u32 sampling; u8 direction_first_seen; // The positive errno of a failed map insertion that caused a flow diff --git a/bpf/utils.h b/bpf/utils.h index 09a6b8533..bc46b9c20 100644 --- a/bpf/utils.h +++ b/bpf/utils.h @@ -109,6 +109,24 @@ static inline u8 ipv6_get_dscp(const struct ipv6hdr *ipv6h) { return ((bpf_ntohs(*(const __be16 *)ipv6h) >> 4) >> DSCP_SHIFT) & DSCP_MASK; } +// sets flow fields from IPv4 header information (L3 only, no L4) +// Returns protocol in *protocol for later L4 parsing +static inline int fill_iphdr_l3only(struct iphdr *ip, void *data_end, pkt_info *pkt, u8 *protocol) { + if ((void *)ip + sizeof(*ip) > data_end) { + return DISCARD; + } + flow_id *id = pkt->id; + /* Save the IP Address to id directly. copy once. */ + __builtin_memcpy(id->src_ip, ip4in6, sizeof(ip4in6)); + __builtin_memcpy(id->dst_ip, ip4in6, sizeof(ip4in6)); + __builtin_memcpy(id->src_ip + sizeof(ip4in6), &ip->saddr, sizeof(ip->saddr)); + __builtin_memcpy(id->dst_ip + sizeof(ip4in6), &ip->daddr, sizeof(ip->daddr)); + pkt->dscp = ipv4_get_dscp(ip); + *protocol = ip->protocol; // Store for later L4 parsing + // Note: L4 not parsed yet - will be parsed later if needed + return SUBMIT; +} + // sets flow fields from IPv4 header information static inline int fill_iphdr(struct iphdr *ip, void *data_end, pkt_info *pkt) { void *l4_hdr_start; @@ -129,6 +147,23 @@ static inline int fill_iphdr(struct iphdr *ip, void *data_end, pkt_info *pkt) { return SUBMIT; } +// sets flow fields from IPv6 header information (L3 only, no L4) +// Returns protocol in *protocol for later L4 parsing +static inline int fill_ip6hdr_l3only(struct ipv6hdr *ip, void *data_end, pkt_info *pkt, + u8 *protocol) { + if ((void *)ip + sizeof(*ip) > data_end) { + return DISCARD; + } + flow_id *id = pkt->id; + /* Save the IP Address to id directly. copy once. */ + __builtin_memcpy(id->src_ip, ip->saddr.in6_u.u6_addr8, IP_MAX_LEN); + __builtin_memcpy(id->dst_ip, ip->daddr.in6_u.u6_addr8, IP_MAX_LEN); + pkt->dscp = ipv6_get_dscp(ip); + *protocol = ip->nexthdr; // Store for later L4 parsing + // Note: L4 not parsed yet - will be parsed later if needed + return SUBMIT; +} + // sets flow fields from IPv6 header information static inline int fill_ip6hdr(struct ipv6hdr *ip, void *data_end, pkt_info *pkt) { void *l4_hdr_start; @@ -147,6 +182,48 @@ static inline int fill_ip6hdr(struct ipv6hdr *ip, void *data_end, pkt_info *pkt) return SUBMIT; } +// Parse L4 header separately (after L3 has been parsed) +// Optimized for early IP filtering flow +static inline void parse_l4_after_l3(struct ethhdr *eth, void *data_end, pkt_info *pkt, + u16 eth_protocol, u8 protocol) { + void *l4_hdr_start; + + if (eth_protocol == ETH_P_IP) { + struct iphdr *ip = (void *)eth + sizeof(*eth); + l4_hdr_start = (void *)ip + sizeof(*ip); + } else if (eth_protocol == ETH_P_IPV6) { + struct ipv6hdr *ip6 = (void *)eth + sizeof(*eth); + l4_hdr_start = (void *)ip6 + sizeof(*ip6); + } else { + return; // Not IP, shouldn't happen + } + + if (l4_hdr_start <= data_end) { + fill_l4info(l4_hdr_start, data_end, protocol, pkt); + } +} + +// sets flow fields from Ethernet header information (L2+L3 only, no L4) +// Optimized for early IP filtering - skips L4 parsing +// Returns protocol in *protocol for later L4 parsing +static inline int fill_ethhdr_l3only(struct ethhdr *eth, void *data_end, pkt_info *pkt, + u16 *eth_protocol, u8 *protocol) { + if ((void *)eth + sizeof(*eth) > data_end) { + return DISCARD; + } + *eth_protocol = bpf_ntohs(eth->h_proto); + + if (*eth_protocol == ETH_P_IP) { + struct iphdr *ip = (void *)eth + sizeof(*eth); + return fill_iphdr_l3only(ip, data_end, pkt, protocol); + } else if (*eth_protocol == ETH_P_IPV6) { + struct ipv6hdr *ip6 = (void *)eth + sizeof(*eth); + return fill_ip6hdr_l3only(ip6, data_end, pkt, protocol); + } + // Only IP-based flows are managed + return DISCARD; +} + // sets flow fields from Ethernet header information static inline int fill_ethhdr(struct ethhdr *eth, void *data_end, pkt_info *pkt, u16 *eth_protocol) { diff --git a/pkg/ebpf/bpf_arm64_bpfel.go b/pkg/ebpf/bpf_arm64_bpfel.go index 400595e5e..265af46bd 100644 --- a/pkg/ebpf/bpf_arm64_bpfel.go +++ b/pkg/ebpf/bpf_arm64_bpfel.go @@ -116,20 +116,16 @@ type BpfFlowIdT struct { type BpfFlowMetrics BpfFlowMetricsT type BpfFlowMetricsT struct { - _ structs.HostLayout - StartMonoTimeTs uint64 - EndMonoTimeTs uint64 - Bytes uint64 - Packets uint32 - EthProtocol uint16 - Flags uint16 - SrcMac [6]uint8 - DstMac [6]uint8 - IfIndexFirstSeen uint32 - Lock struct { - _ structs.HostLayout - Val uint32 - } + _ structs.HostLayout + StartMonoTimeTs uint64 + EndMonoTimeTs uint64 + Bytes uint64 + Packets uint32 + EthProtocol uint16 + Flags uint16 + SrcMac [6]uint8 + DstMac [6]uint8 + IfIndexFirstSeen uint32 Sampling uint32 DirectionFirstSeen uint8 Errno uint8 @@ -138,7 +134,6 @@ type BpfFlowMetricsT struct { ObservedDirection [6]uint8 _ [2]byte ObservedIntf [6]uint32 - _ [4]byte } type BpfFlowRecordT struct { diff --git a/pkg/ebpf/bpf_arm64_bpfel.o b/pkg/ebpf/bpf_arm64_bpfel.o index 54d7d1d9d225626a733ced708dd176546690db06..7b497cae97287a79fa5e0d230dc46037a720b819 100644 GIT binary patch literal 295544 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 z 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 H(f0oU21Ti_ literal 290176 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

-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

4(pF+V)yh1Yd84#gFdv)aL|W#8V>r< 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 literal 289024 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 diff --git a/pkg/ebpf/bpf_s390_bpfeb.go b/pkg/ebpf/bpf_s390_bpfeb.go index fc25078be..d3a96551c 100644 --- a/pkg/ebpf/bpf_s390_bpfeb.go +++ b/pkg/ebpf/bpf_s390_bpfeb.go @@ -116,20 +116,16 @@ type BpfFlowIdT struct { type BpfFlowMetrics BpfFlowMetricsT type BpfFlowMetricsT struct { - _ structs.HostLayout - StartMonoTimeTs uint64 - EndMonoTimeTs uint64 - Bytes uint64 - Packets uint32 - EthProtocol uint16 - Flags uint16 - SrcMac [6]uint8 - DstMac [6]uint8 - IfIndexFirstSeen uint32 - Lock struct { - _ structs.HostLayout - Val uint32 - } + _ structs.HostLayout + StartMonoTimeTs uint64 + EndMonoTimeTs uint64 + Bytes uint64 + Packets uint32 + EthProtocol uint16 + Flags uint16 + SrcMac [6]uint8 + DstMac [6]uint8 + IfIndexFirstSeen uint32 Sampling uint32 DirectionFirstSeen uint8 Errno uint8 @@ -138,7 +134,6 @@ type BpfFlowMetricsT struct { ObservedDirection [6]uint8 _ [2]byte ObservedIntf [6]uint32 - _ [4]byte } type BpfFlowRecordT struct { diff --git a/pkg/ebpf/bpf_s390_bpfeb.o b/pkg/ebpf/bpf_s390_bpfeb.o index aa38ced8afa3b14b13e6ea88bc51e78a1fd46833..7f5f1ce4a2d075bb5606de3f82b051ba7efda994 100644 GIT binary patch literal 311136 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 NNtOAIDpZf({=aJ%nFIg; literal 305528 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˗&7!zt{=8s0_Wn3&<=K_t%LzkAtLcan1QJeDQ

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 fn(xN{Ew)4F-D!78fs) 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

EH&$Gq3nxBbVa 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 wEB*TJYi@GMD8T)y{=W21b* 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 OYrEI9{^(ge+WsH!Y67$X literal 289920 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 diff --git a/pkg/model/record_test.go b/pkg/model/record_test.go index 46ab2eab9..cfa3e0538 100644 --- a/pkg/model/record_test.go +++ b/pkg/model/record_test.go @@ -16,7 +16,7 @@ import ( func TestRecordBinaryEncoding(t *testing.T) { // Makes sure that we read the C *not packed* flow structure according - // to the order defined in bpf/flow.h + // to the order defined in bpf/types.h fr, err := ReadFrom(bytes.NewReader([]byte{ // ID 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x06, 0x07, 0x08, 0x09, // network: u8[16] src_ip @@ -37,7 +37,6 @@ func TestRecordBinaryEncoding(t *testing.T) { 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, // data_link: u8[6] src_mac 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, // data_link: u8[6] dst_mac 0x13, 0x14, 0x15, 0x16, // u32 if_index_first_seen - 0x00, 0x00, 0x00, 0x00, // u32 lock 0x02, 0x00, 0x00, 0x00, // u32 sampling 0x03, // u8 direction_first_seen 0x33, // u8 errno From 53d49f86d25f0be1d38691e7c8520f0c4f9c15a7 Mon Sep 17 00:00:00 2001 From: Julien Pinsonneau Date: Tue, 4 Nov 2025 11:25:27 +0100 Subject: [PATCH 2/4] add perf comparaison script --- .gitignore | 1 + scripts/README_visualize.md | 90 +++++ scripts/visualize_ebpf_performance.py | 455 ++++++++++++++++++++++++++ 3 files changed, 546 insertions(+) create mode 100644 scripts/README_visualize.md create mode 100755 scripts/visualize_ebpf_performance.py diff --git a/.gitignore b/.gitignore index fde737a2c..6fb1816da 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ ebpf-agent.tar *.pcap protoc/ release-assets/ +perf/ diff --git a/scripts/README_visualize.md b/scripts/README_visualize.md new file mode 100644 index 000000000..4e303367a --- /dev/null +++ b/scripts/README_visualize.md @@ -0,0 +1,90 @@ +# eBPF Performance Visualization Script + +## Overview + +`visualize_ebpf_performance.py` creates comprehensive visualizations of eBPF agent performance data from CSV files generated by prow. + +## Usage + +```bash +python3 scripts/visualize_ebpf_performance.py [--output ] +``` + +### Arguments + +- `csv_file`: Path to CSV file containing performance data such as `https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/netobserv_netobserv-ebpf-agent/824/pull-ci-netobserv-netobserv-ebpf-agent-main-ebpf-node-density-heavy-25nodes/1985348508604960768/artifacts/ebpf-node-density-heavy-25nodes/openshift-qe-orion/artifacts/data-netobserv-perf-node-density-heavy-AWS-25w.csv` +- `prow_id`: Prow ID of the target run to compare against previous runs such as `1985348508604960768` +- `--output`, `-o`: (Optional) Output PNG file path (default: `perf/ebpf_performance_visualization.png`) + +### Examples + +```bash +# Basic usage +python3 scripts/visualize_ebpf_performance.py data.csv 1985348508604960768 + +# Specify custom output file +python3 scripts/visualize_ebpf_performance.py data.csv 1985348508604960768 --output custom_output.png + +# With full paths +python3 scripts/visualize_ebpf_performance.py /path/to/data.csv 1985348508604960768 -o /path/to/output.png +``` + +## Requirements + +- Python 3 +- matplotlib +- numpy + +Install dependencies: +```bash +pip3 install matplotlib numpy +``` + +## Output + +The script generates an 8-panel visualization (5 rows × 2 columns) showing: + +**Row 1:** +1. **Flows Processed Over Time** - Scatter plot with previous average line +2. **Flows Processed Comparison** - Bar chart comparing min/avg/max vs current + +**Row 2:** +3. **CPU Usage Over Time** - CPU usage trends with previous average line +4. **Memory Usage Over Time** - RSS memory usage trends with previous average line + +**Row 3:** +5. **CPU Efficiency** - Flows per minute per core scatter plot with efficiency trend line +6. **Memory Efficiency** - Flows per minute per MB scatter plot with efficiency trend line + +**Row 4:** +7. **Efficiency Comparison** - Percentage change bar chart (CPU and Memory efficiency vs previous average), full width spanning both columns + +**Row 5:** +8. **Summary Statistics** - Comprehensive text panel split into 3 columns: + - **Column 1**: Flows metrics (Flows Processed, Flows Per Minute) + - **Column 2**: Resource usage (CPU Usage, Memory RSS) + - **Column 3**: Efficiency metrics and Dropped Flows information + +## Metrics Visualized + +- **Flows Processed**: Total flows and flows per minute +- **CPU Usage**: Resource consumption (cores) over time +- **Memory Usage**: RSS memory consumption (GB) over time +- **Efficiency Metrics**: + - **CPU Efficiency**: Flows per minute per core (scatter plot + percentage change) + - **Memory Efficiency**: Flows per minute per MB (scatter plot + percentage change) +- **Dropped Flows**: Reliability indicator (zero is ideal) - shown in summary panel only + +## Notes + +- The script compares the target prow ID against all previous runs in the CSV +- Efficiency calculations use rate-based metrics (flows per minute) for accurate comparison +- Memory efficiency is calculated per MB (not GB) for more granular analysis +- Efficiency comparison shows percentage change from previous average (green = improvement, orange = regression) +- All plots include trend lines and reference averages for easy comparison +- Dropped flows information is displayed in the summary panel (not as a separate plot) +- Summary statistics are organized into 3 columns for better readability +- Output is saved at 300 DPI for high-quality visualization +- By default, output is saved to `perf/` folder (created automatically if it doesn't exist) +- The `perf/` folder is ignored by git (added to `.gitignore`) + diff --git a/scripts/visualize_ebpf_performance.py b/scripts/visualize_ebpf_performance.py new file mode 100755 index 000000000..f6de6ee6d --- /dev/null +++ b/scripts/visualize_ebpf_performance.py @@ -0,0 +1,455 @@ +#!/usr/bin/env python3 +""" +Visualization script for eBPF agent performance data from CSV files. + +Usage: + python3 visualize_ebpf_performance.py [--output ] + +Example: + python3 visualize_ebpf_performance.py data.csv 1985348508604960768 + python3 visualize_ebpf_performance.py data.csv 1985348508604960768 --output perf.png +""" +import csv +import argparse +import os +import sys +import matplotlib +matplotlib.use('Agg') # Use non-interactive backend +import matplotlib.pyplot as plt +import matplotlib.patches as mpatches +import numpy as np + +def extract_prow_id(build_url): + """Extract prow ID from build URL.""" + if build_url and '/' in build_url: + parts = build_url.split('/') + return parts[-1] if parts else None + return None + +def parse_csv_row(row): + """Parse a CSV row and extract relevant fields.""" + return { + 'uuid': row[1], + 'nFlowsProcessedTotals_max': float(row[2]) if row[2] else 0, + 'nFlowsProcessedPerMinuteTotals_max': float(row[3]) if row[3] else 0, + 'ebpfFlowsDroppedRatio_avg': float(row[8]) if row[8] else 0, + 'cpuEBPFTotals_avg': float(row[13]) if row[13] else 0, + 'rssEBPFTotals_avg': float(row[18]) if len(row) > 18 and row[18] else 0, # RSS memory in bytes + 'timestamp': row[34], + 'buildUrl': row[36] + } + +def visualize_csv_data(csv_file, target_prow_id, output_file=None): + """Create visualizations from CSV data.""" + + # Read CSV data + with open(csv_file, 'r') as f: + reader = csv.reader(f) + header = next(reader) + + rows = [] + target_row = None + target_index = None + + for i, row in enumerate(reader): + if len(row) < 37: + continue + + prow_id = extract_prow_id(row[36]) + parsed_row = parse_csv_row(row) + parsed_row['prow_id'] = prow_id + parsed_row['index'] = i + + rows.append(parsed_row) + + if prow_id == target_prow_id: + target_row = parsed_row + target_index = i + + if not target_row: + print(f"Error: Prow ID {target_prow_id} not found in CSV file") + sys.exit(1) + + # Get previous runs + previous_runs = rows[:target_index] + all_runs = rows[:target_index + 1] # Include target + + # Create figure with subplots + fig = plt.figure(figsize=(16, 22)) + gs = fig.add_gridspec(6, 2, hspace=0.3, wspace=0.3) + + # Color scheme + color_prev = '#3498db' # Blue + color_current = '#e74c3c' # Red + color_avg = '#2ecc71' # Green + + # 1. Flows Processed Over Time + ax1 = fig.add_subplot(gs[0, 0]) + indices = [r['index'] for r in all_runs] + flows = [r['nFlowsProcessedTotals_max'] / 1e6 for r in all_runs] + colors = [color_current if r['prow_id'] == target_prow_id else color_prev for r in all_runs] + + ax1.scatter(indices, flows, c=colors, alpha=0.6, s=50) + if previous_runs: + avg_flows = sum(r['nFlowsProcessedTotals_max'] for r in previous_runs) / len(previous_runs) / 1e6 + ax1.axhline(y=avg_flows, color=color_avg, linestyle='--', linewidth=2, label=f'Previous Avg: {avg_flows:.2f}M') + ax1.axhline(y=target_row['nFlowsProcessedTotals_max'] / 1e6, color=color_current, linestyle='--', linewidth=2, alpha=0.5, label=f'Current: {target_row["nFlowsProcessedTotals_max"]/1e6:.2f}M') + ax1.set_xlabel('Run Index', fontsize=11, fontweight='bold') + ax1.set_ylabel('Flows Processed (Millions)', fontsize=11, fontweight='bold') + ax1.set_title('Flows Processed Over Time', fontsize=13, fontweight='bold') + ax1.grid(True, alpha=0.3) + ax1.legend(fontsize=9) + + # 2. Comparison Bar Chart + ax2 = fig.add_subplot(gs[0, 1]) + if previous_runs: + prev_avg_flows = sum(r['nFlowsProcessedTotals_max'] for r in previous_runs) / len(previous_runs) / 1e6 + prev_min_flows = min(r['nFlowsProcessedTotals_max'] for r in previous_runs) / 1e6 + prev_max_flows = max(r['nFlowsProcessedTotals_max'] for r in previous_runs) / 1e6 + curr_flows = target_row['nFlowsProcessedTotals_max'] / 1e6 + + categories = ['Previous\nMin', 'Previous\nAvg', 'Previous\nMax', 'Current\n(Updated)'] + values = [prev_min_flows, prev_avg_flows, prev_max_flows, curr_flows] + colors_bar = [color_prev, color_prev, color_prev, color_current] + bars = ax2.bar(categories, values, color=colors_bar, alpha=0.7, edgecolor='black', linewidth=1.5) + + # Add value labels on bars + for bar, val in zip(bars, values): + height = bar.get_height() + ax2.text(bar.get_x() + bar.get_width()/2., height, + f'{val:.2f}M', + ha='center', va='bottom', fontweight='bold', fontsize=10) + + ax2.set_ylabel('Flows Processed (Millions)', fontsize=11, fontweight='bold') + ax2.set_title('Flows Processed Comparison', fontsize=13, fontweight='bold') + ax2.grid(True, alpha=0.3, axis='y') + + # 3. CPU Usage Comparison + ax3 = fig.add_subplot(gs[1, 0]) + cpu_values = [r['cpuEBPFTotals_avg'] for r in all_runs] + colors_cpu = [color_current if r['prow_id'] == target_prow_id else color_prev for r in all_runs] + + ax3.scatter(indices, cpu_values, c=colors_cpu, alpha=0.6, s=50) + if previous_runs: + avg_cpu = sum(r['cpuEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) + ax3.axhline(y=avg_cpu, color=color_avg, linestyle='--', linewidth=2, label=f'Previous Avg: {avg_cpu:.3f}') + ax3.axhline(y=target_row['cpuEBPFTotals_avg'], color=color_current, linestyle='--', linewidth=2, alpha=0.5, label=f'Current: {target_row["cpuEBPFTotals_avg"]:.3f}') + ax3.set_xlabel('Run Index', fontsize=11, fontweight='bold') + ax3.set_ylabel('CPU Usage (cores)', fontsize=11, fontweight='bold') + ax3.set_title('eBPF CPU Usage Over Time', fontsize=13, fontweight='bold') + ax3.grid(True, alpha=0.3) + ax3.legend(fontsize=9) + + # 4. Memory Usage Over Time + ax4 = fig.add_subplot(gs[1, 1]) + mem_values = [r['rssEBPFTotals_avg'] / 1e9 for r in all_runs] # Convert to GB + colors_mem = [color_current if r['prow_id'] == target_prow_id else color_prev for r in all_runs] + + ax4.scatter(indices, mem_values, c=colors_mem, alpha=0.6, s=50) + if previous_runs: + avg_mem = sum(r['rssEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) / 1e9 + ax4.axhline(y=avg_mem, color=color_avg, linestyle='--', linewidth=2, label=f'Previous Avg: {avg_mem:.2f} GB') + ax4.axhline(y=target_row['rssEBPFTotals_avg'] / 1e9, color=color_current, linestyle='--', linewidth=2, alpha=0.5, label=f'Current: {target_row["rssEBPFTotals_avg"]/1e9:.2f} GB') + ax4.set_xlabel('Run Index', fontsize=11, fontweight='bold') + ax4.set_ylabel('Memory Usage RSS (GB)', fontsize=11, fontweight='bold') + ax4.set_title('eBPF Memory Usage Over Time', fontsize=13, fontweight='bold') + ax4.grid(True, alpha=0.3) + ax4.legend(fontsize=9) + + # 5. CPU vs Flows Per Minute Efficiency + ax5 = fig.add_subplot(gs[2, 0]) + if previous_runs: + prev_cpu = [r['cpuEBPFTotals_avg'] for r in previous_runs] + prev_flows_per_min = [r['nFlowsProcessedPerMinuteTotals_max'] / 1e6 for r in previous_runs] + curr_cpu = target_row['cpuEBPFTotals_avg'] + curr_flows_per_min = target_row['nFlowsProcessedPerMinuteTotals_max'] / 1e6 + + ax5.scatter(prev_flows_per_min, prev_cpu, c=color_prev, alpha=0.6, s=50, label='Previous Runs') + ax5.scatter(curr_flows_per_min, curr_cpu, c=color_current, s=200, marker='*', + edgecolor='black', linewidth=2, label='Current (Updated)', zorder=5) + + # Add efficiency line (flows per minute per core) + if prev_flows_per_min: + x_range = np.linspace(min(prev_flows_per_min), max(max(prev_flows_per_min), curr_flows_per_min), 100) + # Calculate average efficiency using flows per minute + efficiencies = [f / c for f, c in zip(prev_flows_per_min, prev_cpu)] + avg_efficiency = sum(efficiencies) / len(efficiencies) + y_line = x_range / avg_efficiency + ax5.plot(x_range, y_line, '--', color='gray', alpha=0.5, linewidth=1, + label=f'Avg Efficiency: {avg_efficiency:.1f}M flows/min/core') + + ax5.set_xlabel('Flows Per Minute (Millions)', fontsize=11, fontweight='bold') + ax5.set_ylabel('CPU Usage (cores)', fontsize=11, fontweight='bold') + ax5.set_title('CPU Efficiency (Flows/Min per Core)', fontsize=13, fontweight='bold') + ax5.grid(True, alpha=0.3) + ax5.legend(fontsize=9) + + # 6. Memory vs Flows Per Minute Efficiency + ax6 = fig.add_subplot(gs[2, 1]) + if previous_runs: + prev_mem = [r['rssEBPFTotals_avg'] / 1e6 for r in previous_runs] # Convert to MB + prev_flows_per_min = [r['nFlowsProcessedPerMinuteTotals_max'] / 1e6 for r in previous_runs] + curr_mem = target_row['rssEBPFTotals_avg'] / 1e6 # Convert to MB + curr_flows_per_min = target_row['nFlowsProcessedPerMinuteTotals_max'] / 1e6 + + ax6.scatter(prev_flows_per_min, prev_mem, c=color_prev, alpha=0.6, s=50, label='Previous Runs') + ax6.scatter(curr_flows_per_min, curr_mem, c=color_current, s=200, marker='*', + edgecolor='black', linewidth=2, label='Current (Updated)', zorder=5) + + # Add efficiency line (flows per minute per MB) + if prev_flows_per_min: + x_range = np.linspace(min(prev_flows_per_min), max(max(prev_flows_per_min), curr_flows_per_min), 100) + # Calculate average efficiency using flows per minute per MB + efficiencies = [f / m for f, m in zip(prev_flows_per_min, prev_mem)] + avg_efficiency = sum(efficiencies) / len(efficiencies) + y_line = x_range / avg_efficiency + ax6.plot(x_range, y_line, '--', color='gray', alpha=0.5, linewidth=1, + label=f'Avg Efficiency: {avg_efficiency:.2f}M flows/min/MB') + + ax6.set_xlabel('Flows Per Minute (Millions)', fontsize=11, fontweight='bold') + ax6.set_ylabel('Memory Usage RSS (MB)', fontsize=11, fontweight='bold') + ax6.set_title('Memory Efficiency (Flows/Min per MB)', fontsize=13, fontweight='bold') + ax6.grid(True, alpha=0.3) + ax6.legend(fontsize=9) + + # 7. Efficiency Comparison (Percentage) - Full width + ax7 = fig.add_subplot(gs[3, :]) + if previous_runs: + prev_avg_flows_per_min = sum(r['nFlowsProcessedPerMinuteTotals_max'] for r in previous_runs) / len(previous_runs) + prev_avg_cpu = sum(r['cpuEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) + prev_avg_mem = sum(r['rssEBPFTotals_avg'] for r in previous_runs if r['rssEBPFTotals_avg'] > 0) / max(1, len([r for r in previous_runs if r['rssEBPFTotals_avg'] > 0])) + + curr_flows_per_min = target_row['nFlowsProcessedPerMinuteTotals_max'] + curr_cpu = target_row['cpuEBPFTotals_avg'] + curr_mem = target_row['rssEBPFTotals_avg'] + + # Calculate efficiencies using flows per minute (rate-based) + prev_cpu_eff = prev_avg_flows_per_min / prev_avg_cpu / 1e6 if prev_avg_cpu > 0 else 0 # M flows/min per core + curr_cpu_eff = curr_flows_per_min / curr_cpu / 1e6 if curr_cpu > 0 else 0 + prev_mem_eff = prev_avg_flows_per_min / (prev_avg_mem / 1e6) / 1e6 if prev_avg_mem > 0 else 0 # M flows/min per MB + curr_mem_eff = curr_flows_per_min / (curr_mem / 1e6) / 1e6 if curr_mem > 0 else 0 + + # Calculate percentage changes + cpu_eff_change = ((curr_cpu_eff - prev_cpu_eff) / prev_cpu_eff * 100) if prev_cpu_eff > 0 else 0 + mem_eff_change = ((curr_mem_eff - prev_mem_eff) / prev_mem_eff * 100) if prev_mem_eff > 0 else 0 + + # Create efficiency percentage change bar chart + categories = ['CPU Efficiency\n(flows/min/core)', 'Memory Efficiency\n(flows/min/MB)'] + changes = [cpu_eff_change, mem_eff_change] + colors_change = [color_avg if c >= 0 else '#e67e22' for c in changes] # Green for improvement, orange for regression + + x = np.arange(len(categories)) + width = 0.6 # Wider bars for better visibility in full-width plot + bars = ax7.bar(x, changes, width, color=colors_change, alpha=0.7, edgecolor='black', linewidth=1.5) + + # Add value labels on bars + for bar, change in zip(bars, changes): + height = bar.get_height() + # Center text within the bar (middle of the bar height) + # For negative bars, height is negative, so text_y will be negative too (which is correct) + text_y = height / 2 + # Use white text for better contrast on colored bars + text_color = 'white' if abs(height) > 1 else 'black' + # Show percentage change prominently + ax7.text(bar.get_x() + bar.get_width()/2., text_y, + f'{change:+.2f}%', + ha='center', va='center', + fontweight='bold', fontsize=12, color=text_color) + + # Add zero line + ax7.axhline(y=0, color='black', linestyle='-', linewidth=1) + ax7.set_ylabel('Efficiency Change (%)', fontsize=11, fontweight='bold') + ax7.set_title('Efficiency Change vs Previous Average', fontsize=13, fontweight='bold') + ax7.set_xticks(x) + ax7.set_xticklabels(categories, fontsize=10) + ax7.grid(True, alpha=0.3, axis='y') + + # Add legend for colors + legend_elements = [ + mpatches.Patch(facecolor=color_avg, alpha=0.7, label='Improvement'), + mpatches.Patch(facecolor='#e67e22', alpha=0.7, label='Regression') + ] + ax7.legend(handles=legend_elements, fontsize=9, loc='upper right') + + # 8. Summary Statistics - 3 columns + # Create a sub-gridspec for row 4 to split into 3 columns + summary_gs = gs[4, :].subgridspec(1, 3, wspace=0.2) + + ax8 = fig.add_subplot(summary_gs[0, 0]) + ax8.axis('off') + + ax9 = fig.add_subplot(summary_gs[0, 1]) + ax9.axis('off') + + ax10 = fig.add_subplot(summary_gs[0, 2]) + ax10.axis('off') + + if previous_runs: + prev_avg_flows = sum(r['nFlowsProcessedTotals_max'] for r in previous_runs) / len(previous_runs) + prev_avg_flows_per_min = sum(r['nFlowsProcessedPerMinuteTotals_max'] for r in previous_runs) / len(previous_runs) + prev_avg_cpu = sum(r['cpuEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) + prev_avg_mem = sum(r['rssEBPFTotals_avg'] for r in previous_runs if r['rssEBPFTotals_avg'] > 0) / max(1, len([r for r in previous_runs if r['rssEBPFTotals_avg'] > 0])) + prev_avg_dropped = sum(r['ebpfFlowsDroppedRatio_avg'] for r in previous_runs) / len(previous_runs) + + curr_flows = target_row['nFlowsProcessedTotals_max'] + curr_flows_per_min = target_row['nFlowsProcessedPerMinuteTotals_max'] + curr_cpu = target_row['cpuEBPFTotals_avg'] + curr_mem = target_row['rssEBPFTotals_avg'] + curr_dropped = target_row['ebpfFlowsDroppedRatio_avg'] + + flows_change = ((curr_flows - prev_avg_flows) / prev_avg_flows * 100) if prev_avg_flows > 0 else 0 + flows_per_min_change = ((curr_flows_per_min - prev_avg_flows_per_min) / prev_avg_flows_per_min * 100) if prev_avg_flows_per_min > 0 else 0 + cpu_change = ((curr_cpu - prev_avg_cpu) / prev_avg_cpu * 100) if prev_avg_cpu > 0 else 0 + mem_change = ((curr_mem - prev_avg_mem) / prev_avg_mem * 100) if prev_avg_mem > 0 else 0 + dropped_change = ((curr_dropped - prev_avg_dropped) / prev_avg_dropped * 100) if prev_avg_dropped > 0 else (0 if curr_dropped == 0 else float('inf')) + + # Calculate efficiencies for summary + prev_cpu_eff = prev_avg_flows_per_min / prev_avg_cpu / 1e6 if prev_avg_cpu > 0 else 0 + curr_cpu_eff = curr_flows_per_min / curr_cpu / 1e6 if curr_cpu > 0 else 0 + prev_mem_eff = prev_avg_flows_per_min / (prev_avg_mem / 1e6) / 1e6 if prev_avg_mem > 0 else 0 # M flows/min per MB + curr_mem_eff = curr_flows_per_min / (curr_mem / 1e6) / 1e6 if curr_mem > 0 else 0 + + cpu_eff_change = ((curr_cpu_eff - prev_cpu_eff) / prev_cpu_eff * 100) if prev_cpu_eff > 0 else 0 + mem_eff_change = ((curr_mem_eff - prev_mem_eff) / prev_mem_eff * 100) if prev_mem_eff > 0 else 0 + + # Determine dropped flows status + if curr_dropped == 0 and prev_avg_dropped == 0: + dropped_status = '[OK] Zero drops' + elif curr_dropped == 0 and prev_avg_dropped > 0: + dropped_status = '[OK] Eliminated drops' + elif curr_dropped > 0: + dropped_status = '[WARN] Drops present' + else: + dropped_status = '[OK] No change' + + # Format dropped change + if dropped_change == float('inf'): + dropped_change_str = 'N/A' + else: + dropped_change_str = f'{dropped_change:+.2f}%' + + summary_col1 = f""" +PERFORMANCE SUMMARY + +Target Prow ID: {target_prow_id} +Previous Runs: {len(previous_runs)} + +FLOWS PROCESSED + Previous Avg: {prev_avg_flows/1e6:.2f}M flows + Current: {curr_flows/1e6:.2f}M flows + Change: {flows_change:+.2f}% + +FLOWS PER MINUTE + Previous Avg: {prev_avg_flows_per_min/1e6:.2f}M flows/min + Current: {curr_flows_per_min/1e6:.2f}M flows/min + Change: {flows_per_min_change:+.2f}% + """ + + summary_col2 = f""" +RESOURCE USAGE + +CPU USAGE + Previous Avg: {prev_avg_cpu:.3f} cores + Current: {curr_cpu:.3f} cores + Change: {cpu_change:+.2f}% + +MEMORY (RSS) + Previous Avg: {prev_avg_mem/1e9:.2f} GB + Current: {curr_mem/1e9:.2f} GB + Change: {mem_change:+.2f}% + """ + + summary_col3 = f""" +EFFICIENCY (Rate-Based) + +CPU Efficiency: + Previous: {prev_cpu_eff:.2f}M flows/min/core + Current: {curr_cpu_eff:.2f}M flows/min/core + Change: {cpu_eff_change:+.2f}% + +Memory Efficiency: + Previous: {prev_mem_eff:.2f}M flows/min/MB + Current: {curr_mem_eff:.2f}M flows/min/MB + Change: {mem_eff_change:+.2f}% + """ + + ax8.text(0.05, 0.5, summary_col1, fontsize=10, family='monospace', + verticalalignment='center', horizontalalignment='left', + bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.8)) + + ax9.text(0.05, 0.5, summary_col2, fontsize=10, family='monospace', + verticalalignment='center', horizontalalignment='left', + bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.8)) + + ax10.text(0.05, 0.5, summary_col3, fontsize=10, family='monospace', + verticalalignment='center', horizontalalignment='left', + bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.8)) + + # 9. Dropped Flows - Separate text box + ax11 = fig.add_subplot(gs[5, :]) # Full width + ax11.axis('off') + + if previous_runs: + dropped_flows_text = f""" +DROPPED FLOWS (Ratio) + Previous Avg: {prev_avg_dropped:.6f} + Current: {curr_dropped:.6f} + Change: {dropped_change_str} + Status: {dropped_status} + """ + + ax11.text(0.5, 0.5, dropped_flows_text, fontsize=10, family='monospace', + verticalalignment='center', horizontalalignment='center', + bbox=dict(boxstyle='round', facecolor='lightgreen' if dropped_status.startswith('[OK]') else 'lightyellow', alpha=0.8)) + + # Main title + fig.suptitle('eBPF Agent Performance Analysis\n(Updated Code vs Previous Runs)', + fontsize=16, fontweight='bold', y=0.98) + + # Determine output file + if output_file is None: + # Create perf directory if it doesn't exist + perf_dir = 'perf' + os.makedirs(perf_dir, exist_ok=True) + output_file = os.path.join(perf_dir, 'ebpf_performance_visualization.png') + else: + # If output is specified, ensure directory exists + output_dir = os.path.dirname(output_file) if os.path.dirname(output_file) else '.' + if output_dir and output_dir != '.': + os.makedirs(output_dir, exist_ok=True) + + plt.savefig(output_file, dpi=300, bbox_inches='tight', facecolor='white') + print(f"[OK] Visualization saved to: {output_file}") + return output_file + +def main(): + """Main entry point.""" + parser = argparse.ArgumentParser( + description='Visualize eBPF agent performance data from CSV file', + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + %(prog)s data.csv 1985348508604960768 + %(prog)s data.csv 1985348508604960768 --output perf.png + """ + ) + parser.add_argument('csv_file', help='Path to CSV file with performance data') + parser.add_argument('prow_id', help='Prow ID of the target run to compare') + parser.add_argument('--output', '-o', help='Output PNG file path (default: perf/ebpf_performance_visualization.png)') + + args = parser.parse_args() + + # Check if CSV file exists + if not os.path.exists(args.csv_file): + print(f"Error: CSV file not found: {args.csv_file}") + sys.exit(1) + + print(f"Creating visualization from {args.csv_file}") + print(f"Target Prow ID: {args.prow_id}") + + visualize_csv_data(args.csv_file, args.prow_id, args.output) + print("\n[OK] Visualization completed successfully!") + +if __name__ == '__main__': + main() + From dda38e53891a892e4f7f44a33d73b31b3221f021 Mon Sep 17 00:00:00 2001 From: Julien Pinsonneau Date: Tue, 4 Nov 2025 11:59:42 +0100 Subject: [PATCH 3/4] compare to last x runs --- scripts/README_visualize.md | 18 +-- scripts/visualize_ebpf_performance.py | 153 ++++++++++++++++---------- 2 files changed, 103 insertions(+), 68 deletions(-) diff --git a/scripts/README_visualize.md b/scripts/README_visualize.md index 4e303367a..14ba97b4f 100644 --- a/scripts/README_visualize.md +++ b/scripts/README_visualize.md @@ -7,7 +7,7 @@ ## Usage ```bash -python3 scripts/visualize_ebpf_performance.py [--output ] +python3 scripts/visualize_ebpf_performance.py [--output ] [--num-runs ] ``` ### Arguments @@ -15,18 +15,22 @@ python3 scripts/visualize_ebpf_performance.py [--output [--output ] + python3 visualize_ebpf_performance.py [--output ] [--num-runs ] Example: python3 visualize_ebpf_performance.py data.csv 1985348508604960768 python3 visualize_ebpf_performance.py data.csv 1985348508604960768 --output perf.png + python3 visualize_ebpf_performance.py data.csv 1985348508604960768 --num-runs 5 """ import csv import argparse @@ -39,8 +40,15 @@ def parse_csv_row(row): 'buildUrl': row[36] } -def visualize_csv_data(csv_file, target_prow_id, output_file=None): - """Create visualizations from CSV data.""" +def visualize_csv_data(csv_file, target_prow_id, output_file=None, num_runs=3): + """Create visualizations from CSV data. + + Args: + csv_file: Path to CSV file with performance data + target_prow_id: Prow ID of the target run to compare + output_file: Optional output PNG file path + num_runs: Number of previous runs to compare against (default: 3) + """ # Read CSV data with open(csv_file, 'r') as f: @@ -70,8 +78,14 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): print(f"Error: Prow ID {target_prow_id} not found in CSV file") sys.exit(1) - # Get previous runs - previous_runs = rows[:target_index] + # Get all previous runs + all_previous_runs = rows[:target_index] + + # Use last N runs for comparison (or all if less than N available) + previous_runs = all_previous_runs[-num_runs:] if len(all_previous_runs) >= num_runs else all_previous_runs + + print(f"Comparing target run to last {len(previous_runs)} previous runs (out of {len(all_previous_runs)} total)") + all_runs = rows[:target_index + 1] # Include target # Create figure with subplots @@ -92,7 +106,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): ax1.scatter(indices, flows, c=colors, alpha=0.6, s=50) if previous_runs: avg_flows = sum(r['nFlowsProcessedTotals_max'] for r in previous_runs) / len(previous_runs) / 1e6 - ax1.axhline(y=avg_flows, color=color_avg, linestyle='--', linewidth=2, label=f'Previous Avg: {avg_flows:.2f}M') + ax1.axhline(y=avg_flows, color=color_avg, linestyle='--', linewidth=2, label=f'Last {len(previous_runs)} Avg: {avg_flows:.2f}M') ax1.axhline(y=target_row['nFlowsProcessedTotals_max'] / 1e6, color=color_current, linestyle='--', linewidth=2, alpha=0.5, label=f'Current: {target_row["nFlowsProcessedTotals_max"]/1e6:.2f}M') ax1.set_xlabel('Run Index', fontsize=11, fontweight='bold') ax1.set_ylabel('Flows Processed (Millions)', fontsize=11, fontweight='bold') @@ -108,7 +122,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): prev_max_flows = max(r['nFlowsProcessedTotals_max'] for r in previous_runs) / 1e6 curr_flows = target_row['nFlowsProcessedTotals_max'] / 1e6 - categories = ['Previous\nMin', 'Previous\nAvg', 'Previous\nMax', 'Current\n(Updated)'] + categories = [f'Last {len(previous_runs)}\nMin', f'Last {len(previous_runs)}\nAvg', f'Last {len(previous_runs)}\nMax', 'Current\n(Updated)'] values = [prev_min_flows, prev_avg_flows, prev_max_flows, curr_flows] colors_bar = [color_prev, color_prev, color_prev, color_current] bars = ax2.bar(categories, values, color=colors_bar, alpha=0.7, edgecolor='black', linewidth=1.5) @@ -132,7 +146,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): ax3.scatter(indices, cpu_values, c=colors_cpu, alpha=0.6, s=50) if previous_runs: avg_cpu = sum(r['cpuEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) - ax3.axhline(y=avg_cpu, color=color_avg, linestyle='--', linewidth=2, label=f'Previous Avg: {avg_cpu:.3f}') + ax3.axhline(y=avg_cpu, color=color_avg, linestyle='--', linewidth=2, label=f'Last {len(previous_runs)} Avg: {avg_cpu:.3f}') ax3.axhline(y=target_row['cpuEBPFTotals_avg'], color=color_current, linestyle='--', linewidth=2, alpha=0.5, label=f'Current: {target_row["cpuEBPFTotals_avg"]:.3f}') ax3.set_xlabel('Run Index', fontsize=11, fontweight='bold') ax3.set_ylabel('CPU Usage (cores)', fontsize=11, fontweight='bold') @@ -148,7 +162,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): ax4.scatter(indices, mem_values, c=colors_mem, alpha=0.6, s=50) if previous_runs: avg_mem = sum(r['rssEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) / 1e9 - ax4.axhline(y=avg_mem, color=color_avg, linestyle='--', linewidth=2, label=f'Previous Avg: {avg_mem:.2f} GB') + ax4.axhline(y=avg_mem, color=color_avg, linestyle='--', linewidth=2, label=f'Last {len(previous_runs)} Avg: {avg_mem:.2f} GB') ax4.axhline(y=target_row['rssEBPFTotals_avg'] / 1e9, color=color_current, linestyle='--', linewidth=2, alpha=0.5, label=f'Current: {target_row["rssEBPFTotals_avg"]/1e9:.2f} GB') ax4.set_xlabel('Run Index', fontsize=11, fontweight='bold') ax4.set_ylabel('Memory Usage RSS (GB)', fontsize=11, fontweight='bold') @@ -176,7 +190,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): avg_efficiency = sum(efficiencies) / len(efficiencies) y_line = x_range / avg_efficiency ax5.plot(x_range, y_line, '--', color='gray', alpha=0.5, linewidth=1, - label=f'Avg Efficiency: {avg_efficiency:.1f}M flows/min/core') + label=f'Last {len(previous_runs)} Avg Efficiency: {avg_efficiency:.1f}M flows/min/core') ax5.set_xlabel('Flows Per Minute (Millions)', fontsize=11, fontweight='bold') ax5.set_ylabel('CPU Usage (cores)', fontsize=11, fontweight='bold') @@ -204,7 +218,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): avg_efficiency = sum(efficiencies) / len(efficiencies) y_line = x_range / avg_efficiency ax6.plot(x_range, y_line, '--', color='gray', alpha=0.5, linewidth=1, - label=f'Avg Efficiency: {avg_efficiency:.2f}M flows/min/MB') + label=f'Last {len(previous_runs)} Avg Efficiency: {avg_efficiency:.2f}M flows/min/MB') ax6.set_xlabel('Flows Per Minute (Millions)', fontsize=11, fontweight='bold') ax6.set_ylabel('Memory Usage RSS (MB)', fontsize=11, fontweight='bold') @@ -215,61 +229,69 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): # 7. Efficiency Comparison (Percentage) - Full width ax7 = fig.add_subplot(gs[3, :]) if previous_runs: - prev_avg_flows_per_min = sum(r['nFlowsProcessedPerMinuteTotals_max'] for r in previous_runs) / len(previous_runs) - prev_avg_cpu = sum(r['cpuEBPFTotals_avg'] for r in previous_runs) / len(previous_runs) - prev_avg_mem = sum(r['rssEBPFTotals_avg'] for r in previous_runs if r['rssEBPFTotals_avg'] > 0) / max(1, len([r for r in previous_runs if r['rssEBPFTotals_avg'] > 0])) - curr_flows_per_min = target_row['nFlowsProcessedPerMinuteTotals_max'] curr_cpu = target_row['cpuEBPFTotals_avg'] curr_mem = target_row['rssEBPFTotals_avg'] - # Calculate efficiencies using flows per minute (rate-based) - prev_cpu_eff = prev_avg_flows_per_min / prev_avg_cpu / 1e6 if prev_avg_cpu > 0 else 0 # M flows/min per core - curr_cpu_eff = curr_flows_per_min / curr_cpu / 1e6 if curr_cpu > 0 else 0 - prev_mem_eff = prev_avg_flows_per_min / (prev_avg_mem / 1e6) / 1e6 if prev_avg_mem > 0 else 0 # M flows/min per MB - curr_mem_eff = curr_flows_per_min / (curr_mem / 1e6) / 1e6 if curr_mem > 0 else 0 + # Calculate current efficiencies + curr_cpu_eff = curr_flows_per_min / curr_cpu / 1e6 if curr_cpu > 0 else 0 # M flows/min per core + curr_mem_eff = curr_flows_per_min / (curr_mem / 1e6) / 1e6 if curr_mem > 0 else 0 # M flows/min per MB - # Calculate percentage changes - cpu_eff_change = ((curr_cpu_eff - prev_cpu_eff) / prev_cpu_eff * 100) if prev_cpu_eff > 0 else 0 - mem_eff_change = ((curr_mem_eff - prev_mem_eff) / prev_mem_eff * 100) if prev_mem_eff > 0 else 0 - - # Create efficiency percentage change bar chart - categories = ['CPU Efficiency\n(flows/min/core)', 'Memory Efficiency\n(flows/min/MB)'] - changes = [cpu_eff_change, mem_eff_change] - colors_change = [color_avg if c >= 0 else '#e67e22' for c in changes] # Green for improvement, orange for regression + # Calculate efficiency changes for each individual run + cpu_eff_changes = [] + mem_eff_changes = [] + run_labels = [] - x = np.arange(len(categories)) - width = 0.6 # Wider bars for better visibility in full-width plot - bars = ax7.bar(x, changes, width, color=colors_change, alpha=0.7, edgecolor='black', linewidth=1.5) + for prev_run in previous_runs: + prev_flows_per_min = prev_run['nFlowsProcessedPerMinuteTotals_max'] + prev_cpu = prev_run['cpuEBPFTotals_avg'] + prev_mem = prev_run['rssEBPFTotals_avg'] if prev_run['rssEBPFTotals_avg'] > 0 else 0 + + # Calculate previous run efficiencies + prev_cpu_eff = prev_flows_per_min / prev_cpu / 1e6 if prev_cpu > 0 else 0 + prev_mem_eff = prev_flows_per_min / (prev_mem / 1e6) / 1e6 if prev_mem > 0 else 0 + + # Calculate percentage changes + cpu_eff_change = ((curr_cpu_eff - prev_cpu_eff) / prev_cpu_eff * 100) if prev_cpu_eff > 0 else 0 + mem_eff_change = ((curr_mem_eff - prev_mem_eff) / prev_mem_eff * 100) if prev_mem_eff > 0 else 0 + + cpu_eff_changes.append(cpu_eff_change) + mem_eff_changes.append(mem_eff_change) + # Use prow ID as label (full ID, no truncation) + prow_id = prev_run.get('prow_id', 'N/A') + run_labels.append(str(prow_id) if prow_id else 'N/A') + + # Create grouped bar chart + x = np.arange(len(run_labels)) # One group per run + width = 0.35 # Width of bars + + # Create bars for CPU and Memory efficiency + bars_cpu = ax7.bar(x - width/2, cpu_eff_changes, width, + label='CPU Efficiency (flows/min/core)', + color=color_prev, alpha=0.7, edgecolor='black', linewidth=1.5) + bars_mem = ax7.bar(x + width/2, mem_eff_changes, width, + label='Memory Efficiency (flows/min/MB)', + color=color_avg, alpha=0.7, edgecolor='black', linewidth=1.5) # Add value labels on bars - for bar, change in zip(bars, changes): - height = bar.get_height() - # Center text within the bar (middle of the bar height) - # For negative bars, height is negative, so text_y will be negative too (which is correct) - text_y = height / 2 - # Use white text for better contrast on colored bars - text_color = 'white' if abs(height) > 1 else 'black' - # Show percentage change prominently - ax7.text(bar.get_x() + bar.get_width()/2., text_y, - f'{change:+.2f}%', - ha='center', va='center', - fontweight='bold', fontsize=12, color=text_color) + for bars in [bars_cpu, bars_mem]: + for bar in bars: + height = bar.get_height() + text_y = height / 2 + text_color = 'white' if abs(height) > 1 else 'black' + ax7.text(bar.get_x() + bar.get_width()/2., text_y, + f'{height:+.2f}%', + ha='center', va='center', + fontweight='bold', fontsize=10, color=text_color) # Add zero line ax7.axhline(y=0, color='black', linestyle='-', linewidth=1) ax7.set_ylabel('Efficiency Change (%)', fontsize=11, fontweight='bold') - ax7.set_title('Efficiency Change vs Previous Average', fontsize=13, fontweight='bold') + ax7.set_title(f'Efficiency Change vs Each of Last {len(previous_runs)} Runs', fontsize=13, fontweight='bold') ax7.set_xticks(x) - ax7.set_xticklabels(categories, fontsize=10) + ax7.set_xticklabels(run_labels, fontsize=8, rotation=0) ax7.grid(True, alpha=0.3, axis='y') - - # Add legend for colors - legend_elements = [ - mpatches.Patch(facecolor=color_avg, alpha=0.7, label='Improvement'), - mpatches.Patch(facecolor='#e67e22', alpha=0.7, label='Regression') - ] - ax7.legend(handles=legend_elements, fontsize=9, loc='upper right') + ax7.legend(fontsize=9, loc='upper right') # 8. Summary Statistics - 3 columns # Create a sub-gridspec for row 4 to split into 3 columns @@ -332,15 +354,15 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): PERFORMANCE SUMMARY Target Prow ID: {target_prow_id} -Previous Runs: {len(previous_runs)} +Comparing to: Last {len(previous_runs)} runs FLOWS PROCESSED - Previous Avg: {prev_avg_flows/1e6:.2f}M flows + Last {len(previous_runs)} Avg: {prev_avg_flows/1e6:.2f}M flows Current: {curr_flows/1e6:.2f}M flows Change: {flows_change:+.2f}% FLOWS PER MINUTE - Previous Avg: {prev_avg_flows_per_min/1e6:.2f}M flows/min + Last {len(previous_runs)} Avg: {prev_avg_flows_per_min/1e6:.2f}M flows/min Current: {curr_flows_per_min/1e6:.2f}M flows/min Change: {flows_per_min_change:+.2f}% """ @@ -349,12 +371,12 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): RESOURCE USAGE CPU USAGE - Previous Avg: {prev_avg_cpu:.3f} cores + Last {len(previous_runs)} Avg: {prev_avg_cpu:.3f} cores Current: {curr_cpu:.3f} cores Change: {cpu_change:+.2f}% MEMORY (RSS) - Previous Avg: {prev_avg_mem/1e9:.2f} GB + Last {len(previous_runs)} Avg: {prev_avg_mem/1e9:.2f} GB Current: {curr_mem/1e9:.2f} GB Change: {mem_change:+.2f}% """ @@ -363,12 +385,12 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): EFFICIENCY (Rate-Based) CPU Efficiency: - Previous: {prev_cpu_eff:.2f}M flows/min/core + Last {len(previous_runs)} Avg: {prev_cpu_eff:.2f}M flows/min/core Current: {curr_cpu_eff:.2f}M flows/min/core Change: {cpu_eff_change:+.2f}% Memory Efficiency: - Previous: {prev_mem_eff:.2f}M flows/min/MB + Last {len(previous_runs)} Avg: {prev_mem_eff:.2f}M flows/min/MB Current: {curr_mem_eff:.2f}M flows/min/MB Change: {mem_eff_change:+.2f}% """ @@ -392,7 +414,7 @@ def visualize_csv_data(csv_file, target_prow_id, output_file=None): if previous_runs: dropped_flows_text = f""" DROPPED FLOWS (Ratio) - Previous Avg: {prev_avg_dropped:.6f} + Last {len(previous_runs)} Avg: {prev_avg_dropped:.6f} Current: {curr_dropped:.6f} Change: {dropped_change_str} Status: {dropped_status} @@ -431,11 +453,14 @@ def main(): Examples: %(prog)s data.csv 1985348508604960768 %(prog)s data.csv 1985348508604960768 --output perf.png + %(prog)s data.csv 1985348508604960768 --num-runs 5 """ ) parser.add_argument('csv_file', help='Path to CSV file with performance data') parser.add_argument('prow_id', help='Prow ID of the target run to compare') parser.add_argument('--output', '-o', help='Output PNG file path (default: perf/ebpf_performance_visualization.png)') + parser.add_argument('--num-runs', '-n', type=int, default=3, + help='Number of previous runs to compare against (default: 3)') args = parser.parse_args() @@ -444,10 +469,16 @@ def main(): print(f"Error: CSV file not found: {args.csv_file}") sys.exit(1) + # Validate num_runs + if args.num_runs < 1: + print(f"Error: --num-runs must be at least 1") + sys.exit(1) + print(f"Creating visualization from {args.csv_file}") print(f"Target Prow ID: {args.prow_id}") + print(f"Comparing against last {args.num_runs} previous runs") - visualize_csv_data(args.csv_file, args.prow_id, args.output) + visualize_csv_data(args.csv_file, args.prow_id, args.output, args.num_runs) print("\n[OK] Visualization completed successfully!") if __name__ == '__main__': From 45b25342ce3b81da557ce7ef990d3513357926e6 Mon Sep 17 00:00:00 2001 From: Julien Pinsonneau Date: Wed, 12 Nov 2025 16:12:40 +0100 Subject: [PATCH 4/4] kernel stats --- Dockerfile | 5 + Makefile | 5 + cmd/collect-kernel-stats.go | 243 +++++ cmd/collect-kernel-stats/README.md | 220 +++++ cmd/collect-kernel-stats/main.go | 226 +++++ scripts/benchmark-images.sh | 1403 ++++++++++++++++++++++++++++ scripts/compare-kernel-stats.py | 1011 ++++++++++++++++++++ 7 files changed, 3113 insertions(+) create mode 100644 cmd/collect-kernel-stats.go create mode 100644 cmd/collect-kernel-stats/README.md create mode 100644 cmd/collect-kernel-stats/main.go create mode 100755 scripts/benchmark-images.sh create mode 100755 scripts/compare-kernel-stats.py diff --git a/Dockerfile b/Dockerfile index 2662e64f7..10d3932f9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,10 +19,15 @@ COPY go.sum go.sum # Build RUN CGO_ENABLED=0 GOARCH=$TARGETARCH go build -ldflags "$LDFLAGS" -mod vendor -a -o bin/netobserv-ebpf-agent cmd/netobserv-ebpf-agent.go +# Build collect-kernel-stats utility +# Note: CGO may be required for cilium/ebpf library interactions with kernel +RUN GOARCH=$TARGETARCH go build -mod vendor -a -o bin/collect-kernel-stats ./cmd/collect-kernel-stats + # Create final image from minimal + built binary FROM --platform=linux/$TARGETARCH registry.access.redhat.com/ubi9/ubi-minimal:9.6-1758184547 WORKDIR / COPY --from=builder /opt/app-root/bin/netobserv-ebpf-agent . +COPY --from=builder /opt/app-root/bin/collect-kernel-stats /collect-kernel-stats USER 65532:65532 ENTRYPOINT ["/netobserv-ebpf-agent"] diff --git a/Makefile b/Makefile index aa3ebd979..6894a37c7 100644 --- a/Makefile +++ b/Makefile @@ -159,6 +159,11 @@ compile: ## Compile ebpf agent project @echo "### Compiling project" GOARCH=${GOARCH} GOOS=$(GOOS) go build -mod vendor -o bin/netobserv-ebpf-agent cmd/netobserv-ebpf-agent.go +.PHONY: collect-kernel-stats +collect-kernel-stats: ## Build kernel-space eBPF statistics collector + @echo "### Building kernel stats collector" + GOARCH=${GOARCH} GOOS=$(GOOS) go build -mod vendor -o bin/collect-kernel-stats ./cmd/collect-kernel-stats + .PHONY: test test: ## Test code using go test @echo "### Testing code" diff --git a/cmd/collect-kernel-stats.go b/cmd/collect-kernel-stats.go new file mode 100644 index 000000000..ee9753c5a --- /dev/null +++ b/cmd/collect-kernel-stats.go @@ -0,0 +1,243 @@ +//go:build linux + +package main + +import ( + "encoding/json" + "errors" + "flag" + "fmt" + "os" + "time" + + "github.com/cilium/ebpf" + "github.com/sirupsen/logrus" + "golang.org/x/sys/unix" +) + +type KernelStats struct { + Timestamp time.Time `json:"timestamp"` + CollectionDuration time.Duration `json:"collection_duration_sec"` + ProgramStats map[string]ProgramKernelStats `json:"program_stats"` + TotalRuntime time.Duration `json:"total_runtime_ns"` + TotalRunCount uint64 `json:"total_run_count"` + TotalEventsPerSec float64 `json:"total_events_per_sec"` + TotalEstimatedCPU float64 `json:"total_estimated_cpu_percent"` + TotalRecursionMisses uint64 `json:"total_recursion_misses"` + NumPrograms int `json:"num_programs"` +} + +type ProgramKernelStats struct { + Name string `json:"name"` + Type string `json:"type"` + ID ebpf.ProgramID `json:"id"` + Tag string `json:"tag,omitempty"` // BPF bytecode hash (available from 4.13) + Runtime time.Duration `json:"runtime_ns"` + RunCount uint64 `json:"run_count"` + EventsPerSec float64 `json:"events_per_sec"` + AvgRuntime time.Duration `json:"avg_runtime_ns"` + EstimatedCPU float64 `json:"estimated_cpu_percent"` + RecursionMisses uint64 `json:"recursion_misses"` + Memlock uint64 `json:"memlock_bytes,omitempty"` // Memory locked by program (available from 4.10) + JitedSize uint32 `json:"jited_size_bytes,omitempty"` // JIT-compiled code size (available from 4.13) + VerifiedInstructions uint32 `json:"verified_instructions,omitempty"` // Number of verified instructions (available from 5.16) + NumMaps int `json:"num_maps,omitempty"` // Number of associated maps (available from 4.15) +} + +func collectKernelStats(duration time.Duration, interval time.Duration) (*KernelStats, error) { + // Enable BPF statistics collection + closer, err := ebpf.EnableStats(unix.BPF_STATS_RUN_TIME) + if err != nil { + return nil, fmt.Errorf("failed to enable BPF stats: %w", err) + } + defer closer.Close() + + logrus.Infof("Collecting kernel-space eBPF statistics for %v (sampling every %v)", duration, interval) + + // Collect initial stats + initialStats := make(map[ebpf.ProgramID]ProgramKernelStats) + programInfo := make(map[ebpf.ProgramID]*ebpf.ProgramInfo) + + // Iterate over all loaded programs + var progID ebpf.ProgramID = 0 + for { + nextID, err := ebpf.ProgramGetNextID(progID) + if err != nil { + // ErrNotExist means no more programs, which is expected + if errors.Is(err, os.ErrNotExist) || errors.Is(err, ebpf.ErrNotSupported) { + break + } + // Other errors are logged but we continue + logrus.WithError(err).Warn("error getting next program ID") + break + } + progID = nextID + prog, err := ebpf.NewProgramFromID(progID) + if err != nil { + logrus.WithError(err).WithField("program_id", progID).Warn("failed to open program") + continue + } + + info, err := prog.Info() + if err != nil { + prog.Close() + logrus.WithError(err).WithField("program_id", progID).Warn("failed to get program info") + continue + } + + stats, err := prog.Stats() + if err != nil { + prog.Close() + logrus.WithError(err).WithField("program_id", progID).Warn("failed to get program stats") + continue + } + + programInfo[progID] = info + + // Extract additional metadata + memlock, _ := info.Memlock() + jitedSize, _ := info.JitedSize() + verifiedInsns, _ := info.VerifiedInstructions() + mapIDs, _ := info.MapIDs() + + initialStats[progID] = ProgramKernelStats{ + Name: info.Name, + Type: info.Type.String(), + ID: progID, + Tag: info.Tag, + Runtime: stats.Runtime, + RunCount: stats.RunCount, + RecursionMisses: stats.RecursionMisses, + Memlock: memlock, + JitedSize: jitedSize, + VerifiedInstructions: verifiedInsns, + NumMaps: len(mapIDs), + } + + prog.Close() + } + + if len(initialStats) == 0 { + return nil, fmt.Errorf("no eBPF programs found") + } + + logrus.Infof("Found %d eBPF programs, collecting stats for %v", len(initialStats), duration) + + // Wait for collection duration + time.Sleep(duration) + + // Collect final stats and calculate metrics + finalStats := make(map[string]ProgramKernelStats) + var totalRuntime time.Duration + var totalRunCount uint64 + + for progID, initialStat := range initialStats { + prog, err := ebpf.NewProgramFromID(progID) + if err != nil { + continue + } + + stats, err := prog.Stats() + if err != nil { + prog.Close() + continue + } + + info := programInfo[progID] + deltaRuntime := stats.Runtime - initialStat.Runtime + deltaRunCount := stats.RunCount - initialStat.RunCount + + var eventsPerSec float64 + var avgRuntime time.Duration + var estimatedCPU float64 + + if duration > 0 { + eventsPerSec = float64(deltaRunCount) / duration.Seconds() + if deltaRunCount > 0 { + avgRuntime = deltaRuntime / time.Duration(deltaRunCount) + // Estimated CPU % = (total runtime / collection duration) * 100 + estimatedCPU = (float64(deltaRuntime) / duration.Seconds()) / 1e9 * 100 + } + } + + // Extract additional metadata (these don't change during runtime) + memlock, _ := info.Memlock() + jitedSize, _ := info.JitedSize() + verifiedInsns, _ := info.VerifiedInstructions() + mapIDs, _ := info.MapIDs() + + finalStats[info.Name] = ProgramKernelStats{ + Name: info.Name, + Type: info.Type.String(), + ID: progID, + Tag: info.Tag, + Runtime: deltaRuntime, + RunCount: deltaRunCount, + EventsPerSec: eventsPerSec, + AvgRuntime: avgRuntime, + EstimatedCPU: estimatedCPU, + RecursionMisses: stats.RecursionMisses - initialStat.RecursionMisses, + Memlock: memlock, + JitedSize: jitedSize, + VerifiedInstructions: verifiedInsns, + NumMaps: len(mapIDs), + } + + totalRuntime += deltaRuntime + totalRunCount += deltaRunCount + + prog.Close() + } + + var totalEventsPerSec float64 + var totalEstimatedCPU float64 + if duration > 0 { + totalEventsPerSec = float64(totalRunCount) / duration.Seconds() + totalEstimatedCPU = (float64(totalRuntime) / duration.Seconds()) / 1e9 * 100 + } + + return &KernelStats{ + Timestamp: time.Now(), + ProgramStats: finalStats, + TotalRuntime: totalRuntime, + TotalRunCount: totalRunCount, + TotalEventsPerSec: totalEventsPerSec, + TotalEstimatedCPU: totalEstimatedCPU, + NumPrograms: len(finalStats), + }, nil +} + +func main() { + var ( + duration = flag.Duration("duration", 60*time.Second, "Duration to collect statistics") + interval = flag.Duration("interval", 1*time.Second, "Sampling interval (not used, kept for compatibility)") + output = flag.String("output", "", "Output JSON file (default: stdout)") + verbose = flag.Bool("verbose", false, "Enable verbose logging") + ) + flag.Parse() + + if *verbose { + logrus.SetLevel(logrus.DebugLevel) + } else { + logrus.SetLevel(logrus.InfoLevel) + } + + stats, err := collectKernelStats(*duration, *interval) + if err != nil { + logrus.WithError(err).Fatal("Failed to collect kernel statistics") + } + + jsonData, err := json.MarshalIndent(stats, "", " ") + if err != nil { + logrus.WithError(err).Fatal("Failed to marshal statistics to JSON") + } + + if *output != "" { + if err := os.WriteFile(*output, jsonData, 0644); err != nil { + logrus.WithError(err).Fatal("Failed to write output file") + } + logrus.Infof("Kernel statistics saved to %s", *output) + } else { + fmt.Println(string(jsonData)) + } +} diff --git a/cmd/collect-kernel-stats/README.md b/cmd/collect-kernel-stats/README.md new file mode 100644 index 000000000..bc896568e --- /dev/null +++ b/cmd/collect-kernel-stats/README.md @@ -0,0 +1,220 @@ +# Kernel-Space eBPF Statistics Collector + +This tool collects kernel-space performance statistics for running eBPF programs, similar to [bpftop](https://github.com/Netflix/bpftop). It uses the `BPF_ENABLE_STATS` syscall to gather runtime statistics directly from the kernel. + +## Overview + +Unlike user-space metrics (CPU, memory usage of the userspace agent), kernel-space metrics capture the actual performance of eBPF programs running in the kernel: + +- **Runtime**: Total time spent executing eBPF programs +- **Run Count**: Number of times programs executed +- **Events Per Second**: Rate of program executions +- **Average Runtime**: Average execution time per program run +- **Estimated CPU %**: Estimated CPU percentage used by eBPF programs +- **Recursion Misses**: Number of times programs couldn't run due to recursion limits + +## Building + +```bash +go build -o collect-kernel-stats ./cmd/collect-kernel-stats +``` + +Or using make (add to Makefile): + +```bash +make collect-kernel-stats +``` + +## Usage + +### Basic Usage + +Collect statistics for 60 seconds (default): + +```bash +sudo ./collect-kernel-stats +``` + +### Options + +```bash +./collect-kernel-stats [OPTIONS] + +Options: + -duration duration Duration to collect statistics (default: 60s) + -output string Output JSON file (default: stdout) + -verbose Enable verbose logging +``` + +### Examples + +```bash +# Collect for 5 minutes and save to file +sudo ./collect-kernel-stats -duration 5m -output kernel-stats.json + +# Collect for 30 seconds and print to stdout +sudo ./collect-kernel-stats -duration 30s + +# Verbose output +sudo ./collect-kernel-stats -duration 2m -verbose +``` + +## Requirements + +- **Root privileges**: Must run with `sudo` (required for `BPF_ENABLE_STATS` syscall) +- **Linux kernel 5.8+**: Required for eBPF statistics support +- **eBPF programs loaded**: The tool will only collect stats if eBPF programs are currently loaded + +## Output Format + +The tool outputs JSON with the following structure: + +```json +{ + "timestamp": "2024-01-15T10:30:00Z", + "program_stats": { + "tc_ingress_flow_parse": { + "name": "tc_ingress_flow_parse", + "type": "SchedCLS", + "id": 42, + "runtime_ns": 1234567890, + "run_count": 1000000, + "events_per_sec": 16666.67, + "avg_runtime_ns": 1234, + "estimated_cpu_percent": 1.23, + "recursion_misses": 0 + }, + ... + }, + "total_runtime_ns": 9876543210, + "total_run_count": 5000000, + "total_events_per_sec": 83333.33, + "total_estimated_cpu_percent": 9.88, + "num_programs": 8 +} +``` + +## Integration with Performance Tests + +### Automatic Collection During e2e Tests + +Kernel stats are **automatically collected** during e2e tests when you run: + +```bash +make tests-e2e +``` + +The kernel stats will be saved to `e2e-logs/{cluster-name}/kernel-stats.json` after the tests complete. + +### Manual Collection + +To collect kernel-space metrics manually during performance tests: + +1. **Start the eBPF agent** (which loads the eBPF programs) +2. **Run the performance test** (generate traffic) +3. **Collect kernel stats** in parallel: + +```bash +sudo ./bin/collect-kernel-stats -duration 5m -output kernel-stats-$(date +%s).json +``` + +### Baseline Comparison + +You can automatically compare kernel stats against the main branch: + +```bash +make tests-e2e BASELINE=true +``` + +This will: +- Run e2e tests with main branch image and collect baseline stats +- Run e2e tests with your branch image and collect current stats +- Generate a comparison visualization at `perf/kernel-comparison-main.png` + +See [e2e/README.md](../../e2e/README.md) for more details. + +## Integration with Visualization + +The kernel stats can be integrated into the performance visualization by: + +1. Collecting kernel stats during performance runs (automatically during e2e tests) +2. Storing the JSON output alongside CSV performance data +3. Using the visualization script with kernel stats support (see `scripts/visualize_ebpf_performance.py`) + +**Examples:** + +```bash +# Visualize kernel stats only +python3 scripts/visualize_ebpf_performance.py --kernel-stats e2e-logs/*/kernel-stats.json + +# Compare with baseline (main branch) +python3 scripts/visualize_ebpf_performance.py \ + --kernel-stats perf/kernel-stats-current.json \ + --kernel-stats-baseline perf/kernel-stats-main.json \ + --output perf/comparison.png +``` + +## How It Works + +1. **Enable Statistics**: Uses `ebpf.EnableStats(unix.BPF_STATS_RUN_TIME)` to enable kernel statistics collection +2. **Discover Programs**: Iterates through all loaded eBPF programs using `ebpf.ProgramGetNextID()` - captures all program IDs +3. **Collect Baseline**: Records initial stats for each program +4. **Wait**: Collects statistics for the specified duration +5. **Collect Final**: Records final stats and calculates deltas (runtime, run count, etc.) +6. **Calculate Metrics**: Computes events/sec, average runtime, and estimated CPU usage +7. **Generate Report**: Outputs JSON with statistics for all collected programs + +## Program IDs + +The tool collects statistics for **all** loaded eBPF programs in the system. Each eBPF program has a unique **program ID** assigned by the kernel when loaded. + +### How Program IDs Work + +- Each eBPF program gets a unique **program ID** assigned by the kernel when loaded +- Program IDs are assigned sequentially as programs are loaded +- The tool captures all program IDs during collection and includes them in the output + +### Viewing Program IDs + +To see all program IDs collected: + +```bash +# Quick 1-second collection to see all program IDs +sudo ./collect-kernel-stats -duration 1s | jq '.program_stats[].id' + +# Or extract min/max IDs +MIN_ID=$(sudo ./collect-kernel-stats -duration 1s | jq '[.program_stats[].id] | min') +MAX_ID=$(sudo ./collect-kernel-stats -duration 1s | jq '[.program_stats[].id] | max') +``` + +### Multiple Agents in Same Cluster + +When multiple eBPF agents run in the same cluster (e.g., for benchmark comparisons), the tool collects statistics for **all** loaded programs from all agents. This allows for comprehensive comparison of performance across different agent versions running simultaneously. + +## Comparison with bpftop + +This tool is similar to Netflix's `bpftop` but: +- **Outputs JSON** for easy integration with automation +- **Non-interactive** by default (suitable for CI/CD) +- **Built with Go** using the same cilium/ebpf library as the agent +- **Focuses on aggregation** over a collection period rather than real-time display + +## Troubleshooting + +**"No eBPF programs found"** +- Ensure the eBPF agent is running and has loaded programs +- Check that programs are loaded: `sudo bpftool prog list` + +**"Failed to enable BPF stats"** +- Requires Linux kernel 5.8+ with `CONFIG_BPF_STATS` enabled +- Must run with root privileges + +**"Permission denied"** +- The tool requires `sudo` to access kernel eBPF statistics + +## References + +- [bpftop](https://github.com/Netflix/bpftop) - Netflix's interactive eBPF monitoring tool +- [BPF_ENABLE_STATS documentation](https://www.kernel.org/doc/html/latest/bpf/bpf_stats.html) +- [cilium/ebpf library](https://github.com/cilium/ebpf) + diff --git a/cmd/collect-kernel-stats/main.go b/cmd/collect-kernel-stats/main.go new file mode 100644 index 000000000..a5ecc363e --- /dev/null +++ b/cmd/collect-kernel-stats/main.go @@ -0,0 +1,226 @@ +//go:build linux + +package main + +import ( + "encoding/json" + "errors" + "flag" + "fmt" + "os" + "time" + + "github.com/cilium/ebpf" + "github.com/sirupsen/logrus" + "golang.org/x/sys/unix" +) + +type KernelStats struct { + Timestamp time.Time `json:"timestamp"` + CollectionDuration time.Duration `json:"collection_duration_ns"` + ProgramStats map[string]ProgramKernelStats `json:"program_stats"` + TotalRuntime time.Duration `json:"total_runtime_ns"` + TotalRunCount uint64 `json:"total_run_count"` + TotalEventsPerSec float64 `json:"total_events_per_sec"` + TotalEstimatedCPU float64 `json:"total_estimated_cpu_percent"` + TotalRecursionMisses uint64 `json:"total_recursion_misses"` + NumPrograms int `json:"num_programs"` +} + +type ProgramKernelStats struct { + Name string `json:"name"` + Type string `json:"type"` + ID ebpf.ProgramID `json:"id"` + Runtime time.Duration `json:"runtime_ns"` + RunCount uint64 `json:"run_count"` + EventsPerSec float64 `json:"events_per_sec"` + AvgRuntime time.Duration `json:"avg_runtime_ns"` + EstimatedCPU float64 `json:"estimated_cpu_percent"` + RecursionMisses uint64 `json:"recursion_misses"` +} + +func collectKernelStats(duration time.Duration) (*KernelStats, error) { + // Enable BPF statistics collection + closer, err := ebpf.EnableStats(unix.BPF_STATS_RUN_TIME) + if err != nil { + return nil, fmt.Errorf("failed to enable BPF stats: %w", err) + } + defer closer.Close() + + logrus.Infof("Collecting kernel-space eBPF statistics for %v", duration) + + // Collect initial stats for all programs + initialStats := make(map[ebpf.ProgramID]ProgramKernelStats) + programInfo := make(map[ebpf.ProgramID]*ebpf.ProgramInfo) + + // Iterate over all loaded programs + var progID ebpf.ProgramID = 0 + for { + nextID, err := ebpf.ProgramGetNextID(progID) + if err != nil { + // ErrNotExist means no more programs, which is expected + if errors.Is(err, os.ErrNotExist) || errors.Is(err, ebpf.ErrNotSupported) { + break + } + // Other errors are logged but we continue + logrus.WithError(err).Warn("error getting next program ID") + break + } + progID = nextID + + // Collect stats for all programs + prog, err := ebpf.NewProgramFromID(progID) + if err != nil { + logrus.WithError(err).WithField("program_id", progID).Warn("failed to open program") + continue + } + + info, err := prog.Info() + if err != nil { + prog.Close() + logrus.WithError(err).WithField("program_id", progID).Warn("failed to get program info") + continue + } + + stats, err := prog.Stats() + if err != nil { + prog.Close() + logrus.WithError(err).WithField("program_id", progID).Warn("failed to get program stats") + continue + } + + programInfo[progID] = info + initialStats[progID] = ProgramKernelStats{ + Name: info.Name, + Type: info.Type.String(), + ID: progID, + Runtime: stats.Runtime, + RunCount: stats.RunCount, + RecursionMisses: stats.RecursionMisses, + } + + prog.Close() + } + + if len(initialStats) == 0 { + return nil, fmt.Errorf("no eBPF programs found") + } + + logrus.Infof("Found %d eBPF programs, collecting stats for %v", len(initialStats), duration) + + // Wait for collection duration + time.Sleep(duration) + + // Collect final stats and calculate metrics + finalStats := make(map[string]ProgramKernelStats) + var totalRuntime time.Duration + var totalRunCount uint64 + var totalRecursionMisses uint64 + + for progID, initialStat := range initialStats { + prog, err := ebpf.NewProgramFromID(progID) + if err != nil { + continue + } + + stats, err := prog.Stats() + if err != nil { + prog.Close() + continue + } + + info := programInfo[progID] + deltaRuntime := stats.Runtime - initialStat.Runtime + deltaRunCount := stats.RunCount - initialStat.RunCount + deltaRecursionMisses := stats.RecursionMisses - initialStat.RecursionMisses + + var eventsPerSec float64 + var avgRuntime time.Duration + var estimatedCPU float64 + + if duration > 0 { + eventsPerSec = float64(deltaRunCount) / duration.Seconds() + if deltaRunCount > 0 && deltaRuntime >= 0 { + avgRuntime = deltaRuntime / time.Duration(deltaRunCount) + // Estimated CPU % = (total runtime / collection duration) * 100 + // deltaRuntime is in nanoseconds, duration.Seconds() is in seconds + // Divide by 1e9 to convert ns to seconds, then multiply by 100 for percentage + estimatedCPU = (float64(deltaRuntime) / duration.Seconds()) / 1e9 * 100 + } + } + + finalStats[info.Name] = ProgramKernelStats{ + Name: info.Name, + Type: info.Type.String(), + ID: progID, + Runtime: deltaRuntime, + RunCount: deltaRunCount, + EventsPerSec: eventsPerSec, + AvgRuntime: avgRuntime, + EstimatedCPU: estimatedCPU, + RecursionMisses: deltaRecursionMisses, + } + + totalRuntime += deltaRuntime + totalRunCount += deltaRunCount + totalRecursionMisses += deltaRecursionMisses + + prog.Close() + } + + var totalEventsPerSec float64 + var totalEstimatedCPU float64 + if duration > 0 { + totalEventsPerSec = float64(totalRunCount) / duration.Seconds() + // Only calculate CPU if we have positive runtime (negative would indicate counter issues) + if totalRuntime >= 0 { + totalEstimatedCPU = (float64(totalRuntime) / duration.Seconds()) / 1e9 * 100 + } + } + + return &KernelStats{ + Timestamp: time.Now(), + CollectionDuration: duration, + ProgramStats: finalStats, + TotalRuntime: totalRuntime, + TotalRunCount: totalRunCount, + TotalEventsPerSec: totalEventsPerSec, + TotalEstimatedCPU: totalEstimatedCPU, + TotalRecursionMisses: totalRecursionMisses, + NumPrograms: len(finalStats), + }, nil +} + +func main() { + var ( + duration = flag.Duration("duration", 60*time.Second, "Duration to collect statistics") + output = flag.String("output", "", "Output JSON file (default: stdout)") + verbose = flag.Bool("verbose", false, "Enable verbose logging") + ) + flag.Parse() + + if *verbose { + logrus.SetLevel(logrus.DebugLevel) + } else { + logrus.SetLevel(logrus.InfoLevel) + } + + stats, err := collectKernelStats(*duration) + if err != nil { + logrus.WithError(err).Fatal("Failed to collect kernel statistics") + } + + jsonData, err := json.MarshalIndent(stats, "", " ") + if err != nil { + logrus.WithError(err).Fatal("Failed to marshal statistics to JSON") + } + + if *output != "" { + if err := os.WriteFile(*output, jsonData, 0644); err != nil { + logrus.WithError(err).Fatal("Failed to write output file") + } + logrus.Infof("Kernel statistics saved to %s", *output) + } else { + fmt.Println(string(jsonData)) + } +} diff --git a/scripts/benchmark-images.sh b/scripts/benchmark-images.sh new file mode 100755 index 000000000..85bdf24b5 --- /dev/null +++ b/scripts/benchmark-images.sh @@ -0,0 +1,1403 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Benchmark script to compare BPF performance between two agent images +# +# Usage: +# ./scripts/benchmark-images.sh [options] +# +# Options: +# --duration Duration to run each benchmark (default: 60) +# --output-dir

Output directory for results (default: perf/benchmark-) +# --keep-cluster Keep KIND cluster after benchmark (default: cleanup) +# --kubeconfig Use existing kubeconfig file (skips KIND cluster creation) +# --help Show this help message +# +# Example: +# ./scripts/benchmark-images.sh quay.io/user/agent:v1.0.0 quay.io/user/agent:v2.0.0 --duration 300 + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" +OUTPUT_DIR="${OUTPUT_DIR:-}" +DURATION="${DURATION:-300}" # Default 300 seconds (5 minutes) for better averaging +WARMUP_PERIOD="${WARMUP_PERIOD:-180}" # 180 seconds for agent and cluster stabilization +TRAFFIC_WARMUP="${TRAFFIC_WARMUP:-120}" # 120 seconds for traffic to stabilize +CLUSTER_INIT_STABILIZE="${CLUSTER_INIT_STABILIZE:-120}" # 120 seconds for initial cluster stabilization +KEEP_CLUSTER="${KEEP_CLUSTER:-false}" +EXISTING_KUBECONFIG="${EXISTING_KUBECONFIG:-}" +USE_EXISTING_CLUSTER=false +TIMESTAMP=$(date +%Y%m%d-%H%M%S) +CLUSTER_NAME="benchmark-${TIMESTAMP}" +NAMESPACE1="netobserv-privileged-1" +NAMESPACE2="netobserv-privileged-2" +IPERF3_NAMESPACE="iperf3-traffic" + +# Fixed iperf3 parameters for deterministic traffic generation +IPERF3_PARALLEL_STREAMS="${IPERF3_PARALLEL_STREAMS:-8}" # Number of parallel streams +IPERF3_BANDWIDTH="${IPERF3_BANDWIDTH:-100M}" # Bandwidth per stream +IPERF3_WINDOW_SIZE="${IPERF3_WINDOW_SIZE:-128K}" # TCP window size +IPERF3_MSS="${IPERF3_MSS:-1460}" # Maximum segment size (MTU - IP/TCP headers) +IPERF3_TEST_DURATION="${IPERF3_TEST_DURATION:-3600}" # Test duration (infinite, restarted) + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +log_info() { + echo -e "${BLUE}[INFO]${NC} $*" +} + +log_success() { + echo -e "${GREEN}[SUCCESS]${NC} $*" +} + +log_warn() { + echo -e "${YELLOW}[WARN]${NC} $*" +} + +log_error() { + echo -e "${RED}[ERROR]${NC} $*" +} + +show_help() { + cat < [options] + +Arguments: + image1 First image to benchmark (baseline) + image2 Second image to benchmark (comparison) + +Options: + --duration Duration to run each benchmark in seconds (default: 300) + --output-dir Output directory for results (default: perf/benchmark-) + --keep-cluster Keep KIND cluster after benchmark instead of cleaning up + --kubeconfig Use existing kubeconfig file (skips KIND cluster creation) + --help Show this help message + +Environment Variables (for advanced tuning): + WARMUP_PERIOD Agent warmup period in seconds (default: 180) + TRAFFIC_WARMUP Traffic stabilization period in seconds (default: 120) + CLUSTER_INIT_STABILIZE Initial cluster stabilization in seconds (default: 120) + IPERF3_PARALLEL_STREAMS Number of parallel iperf3 streams (default: 8) + IPERF3_BANDWIDTH Bandwidth per stream (default: 100M) + IPERF3_WINDOW_SIZE TCP window size (default: 128K) + IPERF3_MSS Maximum segment size (default: 1460) + +Note: Benchmarks run SEQUENTIALLY in the same cluster. Each image is tested + independently to ensure accurate statistics collection for all eBPF programs. + +Examples: + # Compare two images with default settings + $0 quay.io/user/agent:v1.0.0 quay.io/user/agent:v2.0.0 + + # Compare with custom duration + $0 image1:tag image2:tag --duration 900 + + # Keep cluster for debugging + $0 image1:tag image2:tag --keep-cluster + + # Use existing cluster (skip KIND creation) + $0 image1:tag image2:tag --kubeconfig ~/.kube/config +EOF +} + +# Parse arguments +IMAGE1="" +IMAGE2="" + +while [[ $# -gt 0 ]]; do + case $1 in + --duration) + DURATION="$2" + shift 2 + ;; + --output-dir) + OUTPUT_DIR="$2" + shift 2 + ;; + --keep-cluster) + KEEP_CLUSTER="true" + shift + ;; + --kubeconfig) + EXISTING_KUBECONFIG="$2" + USE_EXISTING_CLUSTER=true + shift 2 + ;; + --help) + show_help + exit 0 + ;; + -*) + log_error "Unknown option: $1" + show_help + exit 1 + ;; + *) + if [[ -z "$IMAGE1" ]]; then + IMAGE1="$1" + elif [[ -z "$IMAGE2" ]]; then + IMAGE2="$1" + else + log_error "Unexpected argument: $1" + show_help + exit 1 + fi + shift + ;; + esac +done + +if [[ -z "$IMAGE1" ]] || [[ -z "$IMAGE2" ]]; then + log_error "Both image1 and image2 must be provided" + show_help + exit 1 +fi + +# Set output directory +if [[ -z "$OUTPUT_DIR" ]]; then + OUTPUT_DIR="${PROJECT_ROOT}/perf/benchmark-$(date +%Y%m%d-%H%M%S)" +fi +mkdir -p "$OUTPUT_DIR" + +# Initialize kubeconfig file path +if [[ "$USE_EXISTING_CLUSTER" == "true" ]]; then + if [[ ! -f "$EXISTING_KUBECONFIG" ]]; then + log_error "Kubeconfig file not found: $EXISTING_KUBECONFIG" + exit 1 + fi + KUBECONFIG_FILE="$EXISTING_KUBECONFIG" + log_info "Using existing kubeconfig: $KUBECONFIG_FILE" + # Try to get cluster name from kubeconfig context + CLUSTER_NAME=$(kubectl --kubeconfig="$KUBECONFIG_FILE" config view -o jsonpath='{.contexts[0].context.cluster}' 2>/dev/null || echo "existing-cluster") +else + KUBECONFIG_FILE="${TMPDIR:-/tmp}/kubeconfig-${CLUSTER_NAME}" +fi + +log_info "Starting parallel benchmark comparison" +log_info " Image 1 (baseline): $IMAGE1" +log_info " Image 2 (comparison): $IMAGE2" +log_info " Duration: ${DURATION}s (measurement period)" +log_info " Warmup period: ${WARMUP_PERIOD}s (agent stabilization)" +log_info " Traffic warmup: ${TRAFFIC_WARMUP}s (traffic stabilization)" +log_info " Cluster init stabilize: ${CLUSTER_INIT_STABILIZE}s" +log_info " iperf3 parameters: -P ${IPERF3_PARALLEL_STREAMS} -b ${IPERF3_BANDWIDTH} -w ${IPERF3_WINDOW_SIZE} -M ${IPERF3_MSS}" +log_info " Output directory: $OUTPUT_DIR" +log_info " Cluster: $CLUSTER_NAME" +log_info " Namespace 1 (image 1): $NAMESPACE1" +log_info " Namespace 2 (image 2): $NAMESPACE2" +log_info " Running agents SEQUENTIALLY in same cluster for accurate statistics collection" + +# Check prerequisites +if ! command -v kubectl &> /dev/null; then + log_error "kubectl is not installed. Please install it first." + exit 1 +fi + +if [[ "$USE_EXISTING_CLUSTER" == "false" ]]; then + if ! command -v kind &> /dev/null; then + log_error "kind is not installed. Please install it first." + exit 1 + fi +fi + +# Increase file descriptor limits to prevent "too many open files" errors +# This is especially important when running parallel benchmarks +log_info "Checking and increasing file descriptor limits..." +CURRENT_ULIMIT=$(ulimit -n) +TARGET_ULIMIT=100000 +if [[ $CURRENT_ULIMIT -lt $TARGET_ULIMIT ]]; then + if ulimit -n $TARGET_ULIMIT 2>/dev/null; then + log_info " Increased file descriptor limit from $CURRENT_ULIMIT to $TARGET_ULIMIT" + else + log_warn " Could not increase file descriptor limit (current: $CURRENT_ULIMIT)" + log_warn " This may cause 'too many open files' errors. Consider running: ulimit -n 100000" + fi +else + log_info " File descriptor limit is already sufficient: $CURRENT_ULIMIT" +fi + +# Cleanup function +cleanup() { + log_info "Cleaning up benchmark resources..." + + # Clean up traffic generators and their namespace + delete_traffic_generators + + # Clean up packet-counter (in default namespace) + delete_packet_counter + + # Clean up agent namespaces + log_info "Cleaning up agent namespaces..." + kubectl delete namespace "$NAMESPACE1" --ignore-not-found=true --wait=false || true + kubectl delete namespace "$NAMESPACE2" --ignore-not-found=true --wait=false || true + + # Wait a moment for namespace deletion to start + sleep 2 + + # Only clean up cluster if we created it (not using existing) + if [[ "$USE_EXISTING_CLUSTER" == "false" ]]; then + if [[ "$KEEP_CLUSTER" != "true" ]]; then + log_info "Cleaning up KIND cluster..." + kind delete cluster --name "$CLUSTER_NAME" 2>/dev/null || true + rm -f "${KUBECONFIG_FILE:-}" 2>/dev/null || true + else + log_warn "Keeping cluster for inspection" + log_info "To clean up manually:" + log_info " kind delete cluster --name $CLUSTER_NAME" + log_info " kubectl delete namespace $NAMESPACE1 $NAMESPACE2 $IPERF3_NAMESPACE" + log_info "Kubeconfig file: ${KUBECONFIG_FILE:-}" + fi + else + log_info "Using existing cluster - namespaces cleaned up" + fi +} + +trap cleanup EXIT + +# Function to create a KIND cluster with retry logic +create_cluster() { + local cluster_name=$1 + local kubeconfig_file=$2 + local max_retries=3 + local retry_count=0 + + while [[ $retry_count -lt $max_retries ]]; do + if [[ $retry_count -gt 0 ]]; then + log_warn "Retrying cluster creation for $cluster_name (attempt $((retry_count + 1))/$max_retries)..." + # Clean up any partial cluster from previous attempt + kind delete cluster --name "$cluster_name" 2>/dev/null || true + sleep 5 + fi + + log_info "Creating KIND cluster: $cluster_name" + if cat < "$kubeconfig_file" + + # Wait for cluster to be ready + log_info "Waiting for cluster $cluster_name to be ready..." + if KUBECONFIG="$kubeconfig_file" kubectl wait --for=condition=Ready nodes --all --timeout=300s 2>&1; then + # Wait for cluster metrics to stabilize + log_info "Waiting for cluster $cluster_name metrics to stabilize (${CLUSTER_INIT_STABILIZE}s)..." + sleep "$CLUSTER_INIT_STABILIZE" + return 0 + else + log_warn "Cluster $cluster_name created but nodes not ready, will retry..." + kind delete cluster --name "$cluster_name" 2>/dev/null || true + fi + else + log_warn "Failed to create cluster $cluster_name, will retry..." + fi + + retry_count=$((retry_count + 1)) + done + + log_error "Failed to create cluster $cluster_name after $max_retries attempts" + return 1 +} + +# Create cluster or use existing +if [[ "$USE_EXISTING_CLUSTER" == "true" ]]; then + log_info "Using existing cluster from kubeconfig: $KUBECONFIG_FILE" + # Verify cluster is accessible and connected + log_info "Verifying cluster connection..." + if ! kubectl --kubeconfig="$KUBECONFIG_FILE" cluster-info &>/dev/null; then + log_error "Cannot access cluster using provided kubeconfig: $KUBECONFIG_FILE" + log_error "Please ensure the cluster is accessible and you have proper credentials" + exit 1 + fi + # Verify we can actually query the cluster (not just that kubeconfig is valid) + if ! kubectl --kubeconfig="$KUBECONFIG_FILE" get nodes &>/dev/null; then + log_error "Cannot query cluster nodes - cluster may not be accessible or credentials may be invalid" + log_error "Please verify cluster connectivity: kubectl --kubeconfig=\"$KUBECONFIG_FILE\" get nodes" + exit 1 + fi + log_success "Cluster connected and accessible" +else + log_info "Creating KIND cluster..." + if ! create_cluster "$CLUSTER_NAME" "$KUBECONFIG_FILE"; then + log_error "Failed to create cluster ($CLUSTER_NAME)" + exit 1 + fi + log_success "Cluster created and stabilized" +fi + +# Function to run benchmark for a single image +run_benchmark() { + local image=$1 + local label=$2 + local output_file=$3 + local namespace=$4 + + # Set KUBECONFIG for this benchmark + export KUBECONFIG="$KUBECONFIG_FILE" + + log_info "[$namespace] Running benchmark for $label ($image)..." + + # Load image into kind (only for KIND clusters) + if [[ "$USE_EXISTING_CLUSTER" == "false" ]]; then + log_info "[$namespace] Loading image into KIND cluster..." + docker pull "$image" || { log_error "[$namespace] Failed to pull image: $image"; return 1; } + kind load docker-image "$image" --name "$CLUSTER_NAME" + else + log_info "[$namespace] Using existing cluster - assuming image is available in cluster registry" + # For existing clusters, images should be available via registry or already loaded + # User is responsible for ensuring images are accessible + fi + + # Deploy packet-counter collector first + if [[ "$namespace" == "$NAMESPACE1" ]]; then + log_info "[$namespace] Deploying packet-counter collector..." + deploy_packet_counter + else + log_info "[$namespace] Waiting for packet-counter to be ready (deployed by agent 1)..." + sleep 5 + fi + + # Wait a moment for deployment to be created + sleep 2 + + # Wait for packet-counter deployment to be available + log_info "[$namespace] Waiting for packet-counter to be ready..." + if kubectl wait --for=condition=Available deployment/packet-counter -n default --timeout=60s 2>/dev/null; then + log_success "[$namespace] Packet-counter is ready" + else + log_warn "[$namespace] Packet-counter deployment may not be ready, checking pod status..." + # Try waiting for pod as fallback + sleep 5 + kubectl wait --for=condition=Ready pod -l run=packet-counter -n default --timeout=30s 2>/dev/null || true + fi + sleep 3 + + # Delete any existing agent deployment before deploying new one + log_info "[$namespace] Cleaning up any existing agent deployment..." + kubectl delete daemonset netobserv-ebpf-agent -n "$namespace" --ignore-not-found=true + kubectl wait --for=delete pod -l k8s-app=netobserv-ebpf-agent -n "$namespace" --timeout=60s 2>/dev/null || true + sleep 3 # Give time for cleanup + + # Check if we're on OpenShift and set up SCC if needed + local is_openshift=false + if kubectl get crd securitycontextconstraints.security.openshift.io &>/dev/null; then + is_openshift=true + log_info "[$namespace] Detected OpenShift cluster - setting up privileged SCC access..." + + # Create namespace with privileged pod security labels (if not exists) + if ! kubectl get namespace "$namespace" &>/dev/null; then + kubectl create namespace "$namespace" + fi + kubectl label namespace "$namespace" pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/audit=privileged --overwrite + + # Create service account + kubectl create serviceaccount netobserv-ebpf-agent -n "$namespace" --dry-run=client -o yaml | kubectl apply -f - + + # Grant privileged SCC to service account + if ! kubectl get clusterrole netobserv-ebpf-agent-privileged &>/dev/null; then + log_info "[$namespace] Creating ClusterRole for privileged SCC..." + cat </dev/null; then + log_error "[$namespace] Agent pod failed to become ready" + log_info "[$namespace] Checking pod status..." + kubectl get pods -l k8s-app=netobserv-ebpf-agent -n "$namespace" -o wide + log_info "[$namespace] Checking pod events..." + local agent_pod=$(kubectl get pods -l k8s-app=netobserv-ebpf-agent -n "$namespace" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + if [[ -n "$agent_pod" ]]; then + kubectl describe pod "$agent_pod" -n "$namespace" | tail -20 + log_info "[$namespace] Checking pod logs..." + kubectl logs "$agent_pod" -n "$namespace" --tail=50 2>&1 || true + fi + return 1 + fi + + # Get pod name + local pod_name=$(kubectl get pods -n "$namespace" -l k8s-app=netobserv-ebpf-agent -o jsonpath='{.items[0].metadata.name}') + + # Wait a moment for agent to fully load its programs + sleep 3 + + # Wait for agent to stabilize and cluster metrics to settle + log_info "[$namespace] Waiting for agent and cluster metrics to stabilize (${WARMUP_PERIOD}s)..." + sleep "$WARMUP_PERIOD" + + # Deploy traffic generators (only once, shared between agents) + if [[ "$namespace" == "$NAMESPACE1" ]]; then + log_info "[$namespace] Deploying traffic generators..." + deploy_traffic_generators + else + log_info "[$namespace] Traffic generators already deployed by agent 1..." + sleep 5 + fi + + # Wait for traffic generators to be ready + log_info "[$namespace] Waiting for traffic generators to be ready..." + kubectl wait --for=condition=Ready pod -l app=iperf3-server -n "$IPERF3_NAMESPACE" --timeout=60s || true + kubectl wait --for=condition=Ready pod -l app=iperf3-client -n "$IPERF3_NAMESPACE" --timeout=60s || true + + # Wait for iperf3 clients to establish connections and start generating traffic + log_info "[$namespace] Waiting for traffic generators to establish connections and start generating traffic (${TRAFFIC_WARMUP}s)..." + sleep "$TRAFFIC_WARMUP" + + # Get packet-counter pod name for verification + local packet_counter_pod=$(kubectl get pods -n default -l run=packet-counter -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + + # Verify traffic is actually flowing before starting stats collection + # Lower threshold to 100 packets/s and allow more time since packet-counter needs 60s window + if ! verify_traffic_flowing "$packet_counter_pod" "$namespace" 100 15 10; then + log_error "Traffic verification failed - iperf3 traffic generators may not be working" + log_error "This will cause inaccurate benchmark results" + log_error "Checking iperf3 client pod status..." + kubectl get pods -l app=iperf3-client -n "$IPERF3_NAMESPACE" -o wide || true + kubectl get pods -l app=iperf3-server -n "$IPERF3_NAMESPACE" -o wide || true + log_error "Checking iperf3 client logs..." + local client_pods=$(kubectl get pods -l app=iperf3-client -n "$IPERF3_NAMESPACE" -o jsonpath='{.items[*].metadata.name}' 2>/dev/null || echo "") + if [[ -n "$client_pods" ]]; then + for client_pod in $client_pods; do + log_error " Logs from $client_pod:" + kubectl logs -n "$IPERF3_NAMESPACE" "$client_pod" --tail=20 2>&1 | head -10 || true + done + fi + log_error "Failing benchmark run to prevent invalid results" + log_error "Please ensure iperf3 traffic generators are working before running benchmarks" + return 1 + fi + + # Additional wait to ensure agent is actively processing traffic before stats collection + # This gives time for flows to accumulate and agent to be in steady state + log_info "[$namespace] Waiting additional 30s to ensure agent is processing traffic steadily..." + sleep 30 + + # Collect kernel stats using collect-kernel-stats (collects all programs) + log_info "[$namespace] Collecting kernel stats for ${DURATION}s using collect-kernel-stats..." + local stats_cmd="/collect-kernel-stats --duration ${DURATION}s" + + if ! kubectl exec -n "$namespace" "$pod_name" -- test -f /collect-kernel-stats 2>/dev/null; then + log_error "[$namespace] collect-kernel-stats binary not found in image: $image" + log_error "[$namespace] The image must include the /collect-kernel-stats binary" + return 1 + fi + + # Collect packet-counter logs in background + # Use timeout to prevent hanging and ensure cleanup + local packet_counter_logs="${output_file%.json}.packet-counter.log" + if [[ -n "$packet_counter_pod" ]]; then + log_info "[$namespace] Starting packet-counter log collection..." + # Use timeout to ensure the log collection doesn't hang indefinitely + # The timeout should be slightly longer than the measurement duration + local timeout_seconds=$((DURATION + 60)) + timeout "$timeout_seconds" kubectl logs -n default "$packet_counter_pod" --tail=0 -f > "$packet_counter_logs" 2>&1 & + local log_pid=$! + fi + + # Run collect-kernel-stats and filter out log messages (lines starting with "time=") + # to get only the JSON output + # Use a temporary file to capture the raw output first + local temp_output=$(mktemp) + + # Add timeout to kubectl exec to prevent hanging (DURATION + buffer for overhead) + local exec_timeout=$((DURATION + 120)) # Add 2 minutes buffer for command overhead + + log_info "[$namespace] Running collect-kernel-stats with timeout of ${exec_timeout}s..." + if timeout "$exec_timeout" kubectl exec -n "$namespace" "$pod_name" -- $stats_cmd > "$temp_output" 2>&1; then + # Stop packet-counter log collection + if [[ -n "${log_pid:-}" ]]; then + kill "$log_pid" 2>/dev/null || true + wait "$log_pid" 2>/dev/null || true + sleep 1 + fi + + # Filter out log messages (lines starting with "time=") to get only JSON + grep -v '^time=' "$temp_output" > "$output_file" + rm -f "$temp_output" + + # Verify we got valid JSON (starts with {) + if [[ ! -s "$output_file" ]] || ! head -n 1 "$output_file" | grep -q '^{'; then + log_error "[$namespace] collect-kernel-stats did not produce valid JSON output" + log_error "[$namespace] Output file contents:" + cat "$output_file" >&2 + return 1 + fi + + # Extract packet-counter stats from logs + if [[ -f "$packet_counter_logs" ]]; then + extract_packet_counter_stats "$packet_counter_logs" "${output_file%.json}.packet-stats.json" + fi + + log_success "[$namespace] Stats collected successfully" + log_success "[$namespace] Benchmark completed for $label" + return 0 + else + local exit_code=$? + # Stop packet-counter log collection on error + if [[ -n "${log_pid:-}" ]]; then + kill "$log_pid" 2>/dev/null || true + wait "$log_pid" 2>/dev/null || true + fi + + # Check if timeout killed the command (exit code 124) + if [[ $exit_code -eq 124 ]]; then + log_error "[$namespace] collect-kernel-stats timed out after ${exec_timeout}s" + log_error "[$namespace] The command exceeded the timeout duration. This may indicate:" + log_error "[$namespace] - The collect-kernel-stats command is hanging" + log_error "[$namespace] - Network issues preventing kubectl exec from completing" + log_error "[$namespace] - The pod may be unresponsive" + else + log_error "[$namespace] collect-kernel-stats failed with exit code $exit_code" + fi + log_error "[$namespace] Raw output:" + cat "$temp_output" >&2 + rm -f "$temp_output" + return 1 + fi +} + +# Collect cluster information (nodes, instance types, etc.) +collect_cluster_info() { + local output_file=$1 + log_info "Collecting cluster information..." + + # Get node information + local nodes_json=$(kubectl get nodes -o json 2>/dev/null || echo "{}") + + if [[ "$nodes_json" == "{}" ]]; then + log_warn "Could not collect cluster information" + return 1 + fi + + # Extract node information using jq if available, otherwise use kubectl + if command -v jq &> /dev/null; then + local num_nodes=$(echo "$nodes_json" | jq '.items | length' 2>/dev/null || echo "0") + # Use jq with proper handling of optional fields using try-catch + local node_info=$(echo "$nodes_json" | jq -r '.items[] | { + name: .metadata.name, + instance_type: (.metadata.labels."node.kubernetes.io/instance-type" // .metadata.labels."beta.kubernetes.io/instance-type" // "unknown"), + zone: (.metadata.labels."topology.kubernetes.io/zone" // .metadata.labels."failure-domain.beta.kubernetes.io/zone" // "unknown"), + arch: .status.nodeInfo.architecture, + os: .status.nodeInfo.operatingSystem, + kernel: .status.nodeInfo.kernelVersion, + kubelet: .status.nodeInfo.kubeletVersion, + cpu: .status.capacity.cpu, + memory: .status.capacity.memory, + pods: .status.capacity.pods + }' 2>/dev/null | jq -s '.' 2>/dev/null || echo "[]") + + # Create cluster info JSON + cat > "$output_file" </dev/null | wc -l) + local node_names=$(kubectl get nodes -o jsonpath='{.items[*].metadata.name}' 2>/dev/null | tr ' ' ',') + local instance_types=$(kubectl get nodes -o jsonpath='{.items[*].metadata.labels.node\.kubernetes\.io/instance-type}' 2>/dev/null || \ + kubectl get nodes -o jsonpath='{.items[*].metadata.labels.beta\.kubernetes\.io/instance-type}' 2>/dev/null || \ + echo "unknown") + + cat > "$output_file" </dev/null; then + log_info "Loading packet-counter image into KIND cluster..." + kind load docker-image "$packet_counter_image" --name "$CLUSTER_NAME" 2>/dev/null || true + else + log_warn "Could not pull packet-counter image, will rely on cluster pull" + fi + else + log_info "Using existing cluster - assuming packet-counter image is available in cluster registry" + fi + + cat </dev/null || echo "") + if [[ -z "$packet_counter_logs" ]] || ! echo "$packet_counter_logs" | grep -q "starting flow collector"; then + log_warn " Packet-counter may not be fully started yet" + fi + + # Check if we're seeing any iperf3 traffic (port 5201) in the flows + local iperf3_flows=$(echo "$packet_counter_logs" | grep ":5201" | wc -l || echo "0") + if [[ $iperf3_flows -gt 0 ]]; then + log_info " Found $iperf3_flows flow entries with port 5201 (iperf3 traffic detected)" + else + log_warn " No iperf3 traffic (port 5201) detected in packet-counter flows yet" + fi + + # Check agent logs to see if it's sending flows (only check current namespace) + if [[ -n "$namespace" ]]; then + local agent_pod=$(kubectl get pods -n "$namespace" -l k8s-app=netobserv-ebpf-agent -o jsonpath='{.items[0].metadata.name}' 2>/dev/null || echo "") + if [[ -n "$agent_pod" ]]; then + log_info " Checking agent status in namespace $namespace..." + local agent_logs=$(kubectl logs -n "$namespace" "$agent_pod" --tail=20 2>/dev/null || echo "") + if echo "$agent_logs" | grep -q "couldn't send flow records"; then + log_warn " Agent appears to have connection issues with packet-counter" + fi + if echo "$agent_logs" | grep -q "connection error\|connection refused\|Unavailable"; then + log_warn " Agent may not be able to connect to packet-counter" + fi + fi + fi + + local attempt=1 + while [[ $attempt -le $max_attempts ]]; do + # Get recent packet-counter logs and look for rate statistics + # Use larger window (100 lines) to catch rate statistics that may appear less frequently + local recent_logs=$(kubectl logs -n default "$packet_counter_pod" --tail=100 2>/dev/null || echo "") + + if [[ -z "$recent_logs" ]]; then + log_warn " Attempt $attempt/$max_attempts: No logs from packet-counter yet, waiting ${wait_seconds}s..." + sleep "$wait_seconds" + ((attempt++)) + continue + fi + + # Try to find rate statistics in either format: + # Format 1: "2025/11/05 10:34:04 === TOTAL RATE: 6783.6 packets/s 335.0 flows/s 196510951.0 bytes/s" + # Format 2: "2025/11/05 10:34:04 6783.6 packets/s. 335.0 flows/s" + local latest_rate=$(echo "$recent_logs" | grep -E "(=== TOTAL RATE:|packets/s\.)" | tail -1) + + if [[ -z "$latest_rate" ]]; then + # Check if we're at least seeing flow entries (even without rate stats) + local flow_entries=$(echo "$recent_logs" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:" | wc -l || echo "0") + local iperf3_in_flows=$(echo "$recent_logs" | grep ":5201" | wc -l || echo "0") + + # Show some diagnostic info on first few attempts + if [[ $attempt -le 3 ]]; then + log_info " Attempt $attempt/$max_attempts: No rate statistics found yet" + log_info " Flow entries in logs: $flow_entries (iperf3 flows: $iperf3_in_flows)" + if [[ $flow_entries -gt 0 ]]; then + log_info " Packet-counter is receiving flows but rate statistics not available yet" + log_info " Packet-counter logs (last 3 lines):" + echo "$recent_logs" | tail -3 | sed 's/^/ /' || true + else + log_info " Packet-counter logs (last 3 lines):" + echo "$recent_logs" | tail -3 | sed 's/^/ /' || true + fi + elif [[ $attempt -eq 5 ]]; then + log_warn " Attempt $attempt/$max_attempts: No rate statistics found yet" + log_warn " Flow entries seen: $flow_entries (iperf3 flows: $iperf3_in_flows)" + if [[ $iperf3_in_flows -gt 0 ]]; then + log_info " iperf3 traffic detected in flows, but rate stats not logging yet" + log_info " This may be normal - packet-counter logs rates every 5 seconds" + fi + else + log_warn " Attempt $attempt/$max_attempts: No rate statistics found yet, waiting ${wait_seconds}s..." + fi + sleep "$wait_seconds" + ((attempt++)) + continue + fi + + # Extract packets/s from the rate line (handle both formats) + local packets_per_sec="0" + if echo "$latest_rate" | grep -q "=== TOTAL RATE:"; then + # Format 1: "=== TOTAL RATE: 6783.6 packets/s ..." + packets_per_sec=$(echo "$latest_rate" | sed -n 's/.*TOTAL RATE: \([0-9.]*\) packets\/s.*/\1/p' || echo "0") + elif echo "$latest_rate" | grep -q "packets/s\."; then + # Format 2: "6783.6 packets/s. ..." + packets_per_sec=$(echo "$latest_rate" | sed -n 's/.* \([0-9.]*\) packets\/s\..*/\1/p' || echo "0") + fi + + # Convert to integer for comparison (using awk to handle floating point) + local packets_int=$(echo "$packets_per_sec" | awk '{printf "%.0f", $1}' 2>/dev/null || echo "0") + local min_int=$(echo "$min_packets_per_sec" | awk '{printf "%.0f", $1}' 2>/dev/null || echo "1000") + + if [[ -z "$packets_per_sec" ]] || [[ "$packets_per_sec" == "0" ]] || [[ "$packets_int" == "0" ]]; then + log_warn " Attempt $attempt/$max_attempts: Traffic rate is 0 packets/s, waiting ${wait_seconds}s..." + if [[ $attempt -eq 5 ]]; then + log_warn " Showing packet-counter logs for diagnostics:" + kubectl logs -n default "$packet_counter_pod" --tail=10 2>/dev/null | sed 's/^/ /' || true + fi + sleep "$wait_seconds" + ((attempt++)) + continue + fi + + if [[ $packets_int -ge $min_int ]]; then + log_success " Traffic verified: ${packets_per_sec} packets/s (threshold: ${min_packets_per_sec} packets/s)" + return 0 + else + # If we have some traffic but below threshold, check if iperf3 is actually flowing + local iperf3_check=$(echo "$recent_logs" | grep ":5201" | head -1 || echo "") + if [[ -n "$iperf3_check" ]]; then + log_warn " Attempt $attempt/$max_attempts: Traffic rate ${packets_per_sec} packets/s is below threshold ${min_packets_per_sec} packets/s" + log_info " iperf3 traffic detected in flows, but rate may be too low" + else + log_warn " Attempt $attempt/$max_attempts: Traffic rate ${packets_per_sec} packets/s is below threshold ${min_packets_per_sec} packets/s" + log_warn " No iperf3 traffic (port 5201) detected in recent flows" + fi + sleep "$wait_seconds" + ((attempt++)) + fi + done + + log_error " Traffic verification failed after $max_attempts attempts" + log_error " Last packet-counter logs:" + kubectl logs -n default "$packet_counter_pod" --tail=10 2>/dev/null | sed 's/^/ /' || true + + # Final check: Only allow proceeding if we have significant traffic AND iperf3 flows + # Check a larger window (500 lines) to account for flow accumulation over time + local final_logs=$(kubectl logs -n default "$packet_counter_pod" --tail=500 2>/dev/null || echo "") + local final_iperf3=$(echo "$final_logs" | grep ":5201" | wc -l || echo "0") + local final_flows=$(echo "$final_logs" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:" | wc -l || echo "0") + + # Require at least 20 iperf3 flows AND 200 total flows to ensure sufficient traffic + # (Reduced thresholds to account for flow accumulation time and log window size) + if [[ $final_iperf3 -ge 20 ]] && [[ $final_flows -ge 200 ]]; then + log_warn " However, detected $final_flows total flows ($final_iperf3 with iperf3) in packet-counter logs" + log_warn " Packet-counter may need more time to accumulate rate statistics (60s window)" + log_warn " Proceeding with benchmark - significant traffic detected" + return 0 # Allow to proceed only with significant traffic + else + log_error " Insufficient traffic detected: $final_flows total flows ($final_iperf3 with iperf3)" + log_error " Required: at least 20 iperf3 flows and 200 total flows (checked last 500 log lines)" + fi + + log_error " This may indicate:" + log_error " 1. iperf3 traffic generators are not working properly" + log_error " 2. Agent is not capturing/sending flows to packet-counter" + log_error " 3. Network connectivity issues between agent and packet-counter" + return 1 +} + +# Extract packet-counter stats from logs +extract_packet_counter_stats() { + local log_file=$1 + local output_file=$2 + + if [[ ! -f "$log_file" ]]; then + return 1 + fi + + # Extract all rate lines and calculate averages + # Format 1: "2025/11/05 10:34:04 === TOTAL RATE: 3.5 packets/s 2.2 flows/s 659.7 bytes/s" + # Format 2: "2025/11/05 10:34:04 3.5 packets/s. 2.2 flows/s" + local rates=$(grep -E "(=== TOTAL RATE:|packets/s\.)" "$log_file" | \ + sed -n -e 's/.*TOTAL RATE: \([0-9.]*\) packets\/s \([0-9.]*\) flows\/s \([0-9.]*\) bytes\/s.*/\1 \2 \3/p' \ + -e 's/.* \([0-9.]*\) packets\/s\. \([0-9.]*\) flows\/s.*/\1 \2 0/p' | \ + grep -v "^$" || echo "") + + if [[ -z "$rates" ]]; then + log_warn " No packet-counter stats found in logs" + return 1 + fi + + # Calculate averages using awk + local avg_packets=$(echo "$rates" | awk '{sum+=$1; count++} END {if(count>0) print sum/count; else print "0"}') + local avg_flows=$(echo "$rates" | awk '{sum+=$2; count++} END {if(count>0) print sum/count; else print "0"}') + local avg_bytes=$(echo "$rates" | awk '{sum+=$3; count++} END {if(count>0) print sum/count; else print "0"}') + + # Get min and max for range + local min_packets=$(echo "$rates" | awk '{if(NR==1 || $1max) max=$1} END {print max+0}') + local min_flows=$(echo "$rates" | awk '{if(NR==1 || $2max) max=$2} END {print max+0}') + + # Create JSON output + cat > "$output_file" </dev/null; then + # Namespace exists, check if it's active (not terminating) + local phase=$(kubectl get namespace "$IPERF3_NAMESPACE" -o jsonpath='{.status.phase}' 2>/dev/null || echo "") + if [[ "$phase" == "Active" ]]; then + log_info "Namespace $IPERF3_NAMESPACE is ready" + break + fi + fi + if [[ $attempt -eq $max_attempts ]]; then + log_error "Failed to create or verify namespace $IPERF3_NAMESPACE after $max_attempts attempts" + return 1 + fi + sleep 1 + ((attempt++)) + done + + cat <.iperf3-server-headless..svc.cluster.local + SERVER_HOST="iperf3-server-\${POD_INDEX}.iperf3-server-headless.${IPERF3_NAMESPACE}.svc.cluster.local" + + # Wait for specific server pod to be ready (check DNS resolution) + echo "Waiting for server: \$SERVER_HOST" + for i in \$(seq 1 30); do + if nslookup \$SERVER_HOST &>/dev/null || ping -c 1 \$SERVER_HOST &>/dev/null; then + echo "Found server at \$SERVER_HOST" + break + fi + sleep 2 + done + + # Generate consistent traffic with fixed parameters + # Use long test duration for steady, continuous traffic + while true; do + echo "Starting iperf3 test to \$SERVER_HOST - client-\${POD_INDEX} to server-\${POD_INDEX}" + # Run continuous test - each client connects to its dedicated server + iperf3 -c \$SERVER_HOST \ + -t 3600 \ + -P "${IPERF3_PARALLEL_STREAMS}" \ + -b "${IPERF3_BANDWIDTH}" \ + -w "${IPERF3_WINDOW_SIZE}" \ + -M "${IPERF3_MSS}" \ + --connect-timeout 10000 \ + --no-delay \ + --get-server-output || { + echo "iperf3 test failed, waiting before retry..." + sleep 10 + } + # Small delay before restarting + sleep 1 + done + resources: + requests: + memory: "32Mi" + cpu: "50m" + limits: + memory: "128Mi" + cpu: "1000m" + affinity: + podAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchLabels: + app: iperf3-server + topologyKey: kubernetes.io/hostname + tolerations: + - key: node-role.kubernetes.io/control-plane + operator: Exists + effect: NoSchedule +EOF +} + +# Delete traffic generators +delete_traffic_generators() { + log_info "Cleaning up traffic generators..." + kubectl delete statefulset iperf3-server iperf3-client -n "$IPERF3_NAMESPACE" --ignore-not-found=true || true + kubectl delete service iperf3-server iperf3-server-headless iperf3-client-headless -n "$IPERF3_NAMESPACE" --ignore-not-found=true || true + kubectl delete namespace "$IPERF3_NAMESPACE" --ignore-not-found=true || true + sleep 3 +} + +# Delete existing agent before deploying new one +delete_agent() { + local namespace=$1 + log_info "[$namespace] Deleting existing agent deployment..." + kubectl delete daemonset netobserv-ebpf-agent -n "$namespace" --ignore-not-found=true + kubectl wait --for=delete pod -l k8s-app=netobserv-ebpf-agent -n "$namespace" --timeout=60s || true + sleep 5 +} + +# Run benchmarks sequentially +OUTPUT_FILE1="${OUTPUT_DIR}/kernel-stats-image1.json" +OUTPUT_FILE2="${OUTPUT_DIR}/kernel-stats-image2.json" +CLUSTER_INFO_FILE="${OUTPUT_DIR}/cluster-info.json" + +# Ensure output directory exists before writing log files +mkdir -p "$OUTPUT_DIR" + +# Collect cluster information once (shared between both benchmarks) +log_info "Collecting cluster information..." +if ! collect_cluster_info "$CLUSTER_INFO_FILE"; then + log_warn "Failed to collect cluster information, continuing without it..." +fi + +# Run benchmarks sequentially in the same cluster +log_info "Starting sequential benchmarks in single cluster..." + +# Run benchmark 1 +log_info "=== Running benchmark for Image 1 (baseline) ===" +if ! run_benchmark "$IMAGE1" "Image 1 - baseline" "$OUTPUT_FILE1" "$NAMESPACE1" > "${OUTPUT_DIR}/benchmark-image1.log" 2>&1; then + log_error "Benchmark for image 1 failed" + log_info "Check logs: ${OUTPUT_DIR}/benchmark-image1.log" + exit 1 +fi +log_success "Benchmark for Image 1 completed successfully" + +# Clean up agent 1 before starting agent 2 +log_info "Cleaning up Image 1 agent before starting Image 2..." +delete_agent "$NAMESPACE1" +log_info "Waiting 30s for agent 1 to fully unload eBPF programs and cleanup..." +sleep 30 # Give time for eBPF programs to be unloaded and cleanup to complete + +# Run benchmark 2 +log_info "=== Running benchmark for Image 2 (comparison) ===" +if ! run_benchmark "$IMAGE2" "Image 2 - comparison" "$OUTPUT_FILE2" "$NAMESPACE2" > "${OUTPUT_DIR}/benchmark-image2.log" 2>&1; then + log_error "Benchmark for image 2 failed" + log_info "Check logs: ${OUTPUT_DIR}/benchmark-image2.log" + exit 1 +fi +log_success "Benchmark for Image 2 completed successfully" + +log_success "Both benchmarks completed successfully" + +# Generate comparison report +log_info "Generating comparison report..." +REPORT_GENERATED=false + +if [[ ! -f "$OUTPUT_FILE1" ]]; then + log_error "Cannot generate comparison report: Image 1 stats file missing: $OUTPUT_FILE1" +elif [[ ! -f "$OUTPUT_FILE2" ]]; then + log_error "Cannot generate comparison report: Image 2 stats file missing: $OUTPUT_FILE2" +elif [[ ! -f "${SCRIPT_DIR}/compare-kernel-stats.py" ]]; then + log_error "Comparison script not found: ${SCRIPT_DIR}/compare-kernel-stats.py" +else + # Build packet stats arguments if files exist + packet_stats_args="" + if [[ -f "${OUTPUT_FILE1%.json}.packet-stats.json" ]]; then + packet_stats_args="${packet_stats_args} --baseline-packet-stats ${OUTPUT_FILE1%.json}.packet-stats.json" + log_info " Including packet stats for image 1" + fi + if [[ -f "${OUTPUT_FILE2%.json}.packet-stats.json" ]]; then + packet_stats_args="${packet_stats_args} --comparison-packet-stats ${OUTPUT_FILE2%.json}.packet-stats.json" + log_info " Including packet stats for image 2" + fi + + # Use default labels if IMAGE1/IMAGE2 are not set (shouldn't happen, but safety check) + baseline_label="${IMAGE1:-Image1}" + comparison_label="${IMAGE2:-Image2}" + if [[ "$baseline_label" != "Image1" ]] && [[ "$comparison_label" != "Image2" ]]; then + baseline_label="$(basename "$IMAGE1")" + comparison_label="$(basename "$IMAGE2")" + fi + + log_info " Generating report with baseline: $baseline_label, comparison: $comparison_label" + + if python3 "${SCRIPT_DIR}/compare-kernel-stats.py" \ + --baseline "$OUTPUT_FILE1" \ + --comparison "$OUTPUT_FILE2" \ + --output "${OUTPUT_DIR}/comparison-report.png" \ + --baseline-label "$baseline_label" \ + --comparison-label "$comparison_label" \ + $packet_stats_args 2>&1; then + log_success "Comparison report generated successfully" + REPORT_GENERATED=true + else + local exit_code=$? + log_error "Comparison report generation failed with exit code: $exit_code" + log_error "Attempting to run comparison script manually to see error:" + python3 "${SCRIPT_DIR}/compare-kernel-stats.py" \ + --baseline "$OUTPUT_FILE1" \ + --comparison "$OUTPUT_FILE2" \ + --output "${OUTPUT_DIR}/comparison-report.png" \ + --baseline-label "$baseline_label" \ + --comparison-label "$comparison_label" \ + $packet_stats_args 2>&1 || true + fi +fi + +log_success "Benchmark completed!" +log_info "Results saved to: $OUTPUT_DIR" +log_info " - Image 1 stats: $OUTPUT_FILE1" +log_info " - Image 2 stats: $OUTPUT_FILE2" +if [[ -f "${OUTPUT_FILE1%.json}.packet-stats.json" ]]; then + log_info " - Image 1 packet stats: ${OUTPUT_FILE1%.json}.packet-stats.json" +fi +if [[ -f "${OUTPUT_FILE2%.json}.packet-stats.json" ]]; then + log_info " - Image 2 packet stats: ${OUTPUT_FILE2%.json}.packet-stats.json" +fi +if [[ -f "${OUTPUT_DIR}/comparison-report.png" ]]; then + log_info " - Comparison report: ${OUTPUT_DIR}/comparison-report.png" +else + log_warn " - Comparison report: NOT GENERATED (check errors above)" +fi + diff --git a/scripts/compare-kernel-stats.py b/scripts/compare-kernel-stats.py new file mode 100755 index 000000000..ee76c97ce --- /dev/null +++ b/scripts/compare-kernel-stats.py @@ -0,0 +1,1011 @@ +#!/usr/bin/env python3 +""" +Compare kernel stats from two benchmark runs and generate matplotlib visualizations. + +Usage: + python3 compare-kernel-stats.py --baseline --comparison --output +""" + +import json +import argparse +import sys +from pathlib import Path +from datetime import datetime +import matplotlib +matplotlib.use('Agg') # Use non-interactive backend +import matplotlib.pyplot as plt +import numpy as np + + +def load_stats(filepath): + """Load kernel stats from JSON file.""" + try: + with open(filepath, 'r') as f: + return json.load(f) + except FileNotFoundError: + print(f"Error: File not found: {filepath}", file=sys.stderr) + sys.exit(1) + except json.JSONDecodeError as e: + print(f"Error: Invalid JSON in {filepath}: {e}", file=sys.stderr) + sys.exit(1) + + +def calculate_percentage_change(old_val, new_val): + """Calculate percentage change between two values.""" + if old_val == 0: + if new_val == 0: + return 0.0 + return float('inf') if new_val > 0 else float('-inf') + return ((new_val - old_val) / old_val) * 100 + + +def generate_matplotlib_report(baseline_stats, comparison_stats, baseline_label, comparison_label, output_file, + baseline_packet_stats=None, comparison_packet_stats=None, cluster_info=None): + """Generate matplotlib visualization report as separate graph files.""" + + baseline_programs = baseline_stats.get('program_stats', {}) + comparison_programs = comparison_stats.get('program_stats', {}) + + # Collect all program names (only those with activity) + all_programs = [] + for prog_name in sorted(set(baseline_programs.keys()) | set(comparison_programs.keys())): + baseline_prog = baseline_programs.get(prog_name, {}) + comparison_prog = comparison_programs.get(prog_name, {}) + # Only include programs with activity in at least one run + if (baseline_prog.get('events_per_sec', 0) > 0 or + comparison_prog.get('events_per_sec', 0) > 0 or + baseline_prog.get('estimated_cpu_percent', 0) > 0 or + comparison_prog.get('estimated_cpu_percent', 0) > 0): + all_programs.append(prog_name or '(unnamed)') + + # Calculate totals + baseline_total_cpu = baseline_stats.get('total_estimated_cpu_percent', 0) + comparison_total_cpu = comparison_stats.get('total_estimated_cpu_percent', 0) + cpu_change = calculate_percentage_change(baseline_total_cpu, comparison_total_cpu) + + baseline_total_events = baseline_stats.get('total_events_per_sec', 0) + comparison_total_events = comparison_stats.get('total_events_per_sec', 0) + events_change = calculate_percentage_change(baseline_total_events, comparison_total_events) + + baseline_total_runtime = baseline_stats.get('total_runtime_ns', 0) + comparison_total_runtime = comparison_stats.get('total_runtime_ns', 0) + + # Calculate average runtime per event (total runtime / total run count) + baseline_run_count = baseline_stats.get('total_run_count', 0) + comparison_run_count = comparison_stats.get('total_run_count', 0) + + baseline_avg_runtime = baseline_total_runtime / baseline_run_count if baseline_run_count > 0 else 0 + comparison_avg_runtime = comparison_total_runtime / comparison_run_count if comparison_run_count > 0 else 0 + avg_runtime_change = calculate_percentage_change(baseline_avg_runtime, comparison_avg_runtime) + + # Collection duration is stored in nanoseconds - handle both old and new field names + duration_ns = baseline_stats.get('collection_duration_ns') or baseline_stats.get('collection_duration_sec', 0) + duration_sec = duration_ns / 1e9 + + # Load and process packet stats if available + baseline_packets_per_sec = 0 + baseline_flows_per_sec = 0 + baseline_bytes_per_sec = 0 + comparison_packets_per_sec = 0 + comparison_flows_per_sec = 0 + comparison_bytes_per_sec = 0 + + if baseline_packet_stats: + baseline_packets_per_sec = baseline_packet_stats.get('avg_packets_per_sec', 0) + baseline_flows_per_sec = baseline_packet_stats.get('avg_flows_per_sec', 0) + baseline_bytes_per_sec = baseline_packet_stats.get('avg_bytes_per_sec', 0) + + if comparison_packet_stats: + comparison_packets_per_sec = comparison_packet_stats.get('avg_packets_per_sec', 0) + comparison_flows_per_sec = comparison_packet_stats.get('avg_flows_per_sec', 0) + comparison_bytes_per_sec = comparison_packet_stats.get('avg_bytes_per_sec', 0) + + # Calculate efficiency metrics + # CPU efficiency: packets per second per CPU percent + baseline_cpu_efficiency_packets = baseline_packets_per_sec / baseline_total_cpu if baseline_total_cpu > 0 else 0 + comparison_cpu_efficiency_packets = comparison_packets_per_sec / comparison_total_cpu if comparison_total_cpu > 0 else 0 + cpu_efficiency_packets_change = calculate_percentage_change(baseline_cpu_efficiency_packets, comparison_cpu_efficiency_packets) + + # CPU efficiency: flows per second per CPU percent + baseline_cpu_efficiency_flows = baseline_flows_per_sec / baseline_total_cpu if baseline_total_cpu > 0 else 0 + comparison_cpu_efficiency_flows = comparison_flows_per_sec / comparison_total_cpu if comparison_total_cpu > 0 else 0 + cpu_efficiency_flows_change = calculate_percentage_change(baseline_cpu_efficiency_flows, comparison_cpu_efficiency_flows) + + # CPU efficiency: bytes per second per CPU percent + baseline_cpu_efficiency_bytes = baseline_bytes_per_sec / baseline_total_cpu if baseline_total_cpu > 0 else 0 + comparison_cpu_efficiency_bytes = comparison_bytes_per_sec / comparison_total_cpu if comparison_total_cpu > 0 else 0 + cpu_efficiency_bytes_change = calculate_percentage_change(baseline_cpu_efficiency_bytes, comparison_cpu_efficiency_bytes) + + # Events efficiency: packets per event + baseline_events_efficiency_packets = baseline_packets_per_sec / baseline_total_events if baseline_total_events > 0 else 0 + comparison_events_efficiency_packets = comparison_packets_per_sec / comparison_total_events if comparison_total_events > 0 else 0 + events_efficiency_packets_change = calculate_percentage_change(baseline_events_efficiency_packets, comparison_events_efficiency_packets) + + # Packets/Flows/Bytes changes + packets_change = calculate_percentage_change(baseline_packets_per_sec, comparison_packets_per_sec) + flows_change = calculate_percentage_change(baseline_flows_per_sec, comparison_flows_per_sec) + bytes_change = calculate_percentage_change(baseline_bytes_per_sec, comparison_bytes_per_sec) + + # Calculate program metadata totals + baseline_total_memlock = 0 + baseline_total_jited_size = 0 + baseline_total_verified_insns = 0 + baseline_total_maps = 0 + comparison_total_memlock = 0 + comparison_total_jited_size = 0 + comparison_total_verified_insns = 0 + comparison_total_maps = 0 + + for prog_name in all_programs: + baseline_prog = baseline_programs.get(prog_name, {}) + comparison_prog = comparison_programs.get(prog_name, {}) + baseline_total_memlock += baseline_prog.get('memlock_bytes', 0) + baseline_total_jited_size += baseline_prog.get('jited_size_bytes', 0) + baseline_total_verified_insns += baseline_prog.get('verified_instructions', 0) + baseline_total_maps += baseline_prog.get('num_maps', 0) + comparison_total_memlock += comparison_prog.get('memlock_bytes', 0) + comparison_total_jited_size += comparison_prog.get('jited_size_bytes', 0) + comparison_total_verified_insns += comparison_prog.get('verified_instructions', 0) + comparison_total_maps += comparison_prog.get('num_maps', 0) + + memlock_change = calculate_percentage_change(baseline_total_memlock, comparison_total_memlock) + jited_size_change = calculate_percentage_change(baseline_total_jited_size, comparison_total_jited_size) + verified_insns_change = calculate_percentage_change(baseline_total_verified_insns, comparison_total_verified_insns) + maps_change = calculate_percentage_change(baseline_total_maps, comparison_total_maps) + + # Extract base path from output_file to create separate graph files + output_path = Path(output_file) + base_dir = output_path.parent + base_name = output_path.stem # filename without extension + + # Set style + plt.style.use('default') + + generated_files = [] + + # Helper function to save a figure + def save_figure(fig, filename, title): + """Save a figure to a file with title.""" + fig.suptitle(title, fontsize=14, fontweight='bold') + fig.text(0.99, 0.01, f'Generated: {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}', + ha='right', va='bottom', fontsize=8, style='italic') + filepath = base_dir / filename + fig.savefig(filepath, dpi=150, bbox_inches='tight') + plt.close(fig) + generated_files.append(filepath) + print(f"Graph generated: {filepath}") + + # Store plot data for combined figure + plot_data = [] + + # 1. CPU Usage Comparison (by program) + fig1 = plt.figure(figsize=(14, 8)) + ax1 = fig1.add_subplot(1, 1, 1) + baseline_cpus = [] + comparison_cpus = [] + program_labels = [] + + for prog_name in all_programs: + baseline_prog = baseline_programs.get(prog_name, {}) + comparison_prog = comparison_programs.get(prog_name, {}) + baseline_cpu = baseline_prog.get('estimated_cpu_percent', 0) + comparison_cpu = comparison_prog.get('estimated_cpu_percent', 0) + + if baseline_cpu > 0 or comparison_cpu > 0: + baseline_cpus.append(baseline_cpu) + comparison_cpus.append(comparison_cpu) + # Truncate long program names + label = prog_name[:20] + '...' if len(prog_name) > 20 else prog_name + program_labels.append(label) + + if baseline_cpus: + x = np.arange(len(program_labels)) + width = 0.35 + + bars1 = ax1.bar(x - width/2, baseline_cpus, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax1.bar(x + width/2, comparison_cpus, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + ax1.set_xlabel('Program', fontweight='bold') + ax1.set_ylabel('CPU Usage (%)', fontweight='bold') + ax1.set_title('CPU Usage by Program', fontweight='bold', fontsize=12) + ax1.set_xticks(x) + ax1.set_xticklabels(program_labels, rotation=45, ha='right', fontsize=8) + ax1.legend() + ax1.grid(True, alpha=0.3, axis='y') + ax1.set_yscale('log') + + save_figure(fig1, f'{base_name}-cpu-usage.png', + f'CPU Usage by Program\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + else: + plt.close(fig1) + + # 2. Events/sec Comparison (by program) + fig2 = plt.figure(figsize=(14, 8)) + ax2 = fig2.add_subplot(1, 1, 1) + baseline_events = [] + comparison_events = [] + program_labels2 = [] + + for prog_name in all_programs: + baseline_prog = baseline_programs.get(prog_name, {}) + comparison_prog = comparison_programs.get(prog_name, {}) + baseline_evt = baseline_prog.get('events_per_sec', 0) + comparison_evt = comparison_prog.get('events_per_sec', 0) + + if baseline_evt > 0 or comparison_evt > 0: + baseline_events.append(baseline_evt) + comparison_events.append(comparison_evt) + label = prog_name[:20] + '...' if len(prog_name) > 20 else prog_name + program_labels2.append(label) + + if baseline_events: + x = np.arange(len(program_labels2)) + width = 0.35 + + bars1 = ax2.bar(x - width/2, baseline_events, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax2.bar(x + width/2, comparison_events, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + ax2.set_xlabel('Program', fontweight='bold') + ax2.set_ylabel('Events/sec', fontweight='bold') + ax2.set_title('Events/sec by Program', fontweight='bold', fontsize=12) + ax2.set_xticks(x) + ax2.set_xticklabels(program_labels2, rotation=45, ha='right', fontsize=8) + ax2.legend() + ax2.grid(True, alpha=0.3, axis='y') + ax2.set_yscale('log') + + save_figure(fig2, f'{base_name}-events-per-sec.png', + f'Events/sec by Program\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + else: + plt.close(fig2) + + # 3a. CPU Usage Comparison + fig3a = plt.figure(figsize=(8, 6)) + ax3a = fig3a.add_subplot(1, 1, 1) + metrics_cpu = ['CPU %'] + baseline_values_cpu = [baseline_total_cpu] + comparison_values_cpu = [comparison_total_cpu] + + x = np.arange(len(metrics_cpu)) + width = 0.35 + + bars1 = ax3a.bar(x - width/2, baseline_values_cpu, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax3a.bar(x + width/2, comparison_values_cpu, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + # Add percentage change label + max_val = max(baseline_total_cpu, comparison_total_cpu) if max(baseline_total_cpu, comparison_total_cpu) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(cpu_change) < 1 else ('green' if cpu_change < 0 else 'red') + ax3a.text(0, y_pos, f'{cpu_change:+.2f}%', ha='center', va='bottom', + fontsize=10, fontweight='bold', color=color) + + ax3a.set_ylabel('CPU Usage (%)', fontweight='bold') + ax3a.set_title('Total CPU Usage Comparison', fontweight='bold', fontsize=12) + ax3a.set_xticks(x) + ax3a.set_xticklabels(metrics_cpu) + ax3a.legend() + ax3a.grid(True, alpha=0.3, axis='y') + + save_figure(fig3a, f'{base_name}-cpu-total.png', + f'Total CPU Usage Comparison\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + + # 3b. Events/sec Comparison + fig3b = plt.figure(figsize=(8, 6)) + ax3b = fig3b.add_subplot(1, 1, 1) + metrics_events = ['Events/s'] + baseline_values_events = [baseline_total_events] + comparison_values_events = [comparison_total_events] + + x = np.arange(len(metrics_events)) + width = 0.35 + + bars1 = ax3b.bar(x - width/2, baseline_values_events, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax3b.bar(x + width/2, comparison_values_events, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + # Add percentage change label + max_val = max(baseline_total_events, comparison_total_events) if max(baseline_total_events, comparison_total_events) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(events_change) < 1 else ('green' if events_change > 0 else 'red') + ax3b.text(0, y_pos, f'{events_change:+.2f}%', ha='center', va='bottom', + fontsize=10, fontweight='bold', color=color) + + ax3b.set_ylabel('Events/sec', fontweight='bold') + ax3b.set_title('Total Events/sec Comparison', fontweight='bold', fontsize=12) + ax3b.set_xticks(x) + ax3b.set_xticklabels(metrics_events) + ax3b.legend() + ax3b.grid(True, alpha=0.3, axis='y') + + save_figure(fig3b, f'{base_name}-events-total.png', + f'Total Events/sec Comparison\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + + # 3c. Average Runtime Comparison + fig3c = plt.figure(figsize=(8, 6)) + ax3c = fig3c.add_subplot(1, 1, 1) + metrics_runtime = ['Avg Runtime (μs)'] + baseline_values_runtime = [baseline_avg_runtime / 1e3] # Convert to microseconds + comparison_values_runtime = [comparison_avg_runtime / 1e3] + + x = np.arange(len(metrics_runtime)) + width = 0.35 + + bars1 = ax3c.bar(x - width/2, baseline_values_runtime, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax3c.bar(x + width/2, comparison_values_runtime, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + # Add percentage change label + max_val = max(baseline_values_runtime[0], comparison_values_runtime[0]) if max(baseline_values_runtime[0], comparison_values_runtime[0]) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(avg_runtime_change) < 1 else ('green' if avg_runtime_change < 0 else 'red') + ax3c.text(0, y_pos, f'{avg_runtime_change:+.2f}%', ha='center', va='bottom', + fontsize=10, fontweight='bold', color=color) + + ax3c.set_ylabel('Average Runtime (μs)', fontweight='bold') + ax3c.set_title('Average Runtime per Event Comparison', fontweight='bold', fontsize=12) + ax3c.set_xticks(x) + ax3c.set_xticklabels(metrics_runtime) + ax3c.legend() + ax3c.grid(True, alpha=0.3, axis='y') + + save_figure(fig3c, f'{base_name}-avg-runtime-total.png', + f'Average Runtime per Event Comparison\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + + # 4. Average Runtime Comparison (by program) + fig4 = plt.figure(figsize=(14, 8)) + ax4 = fig4.add_subplot(1, 1, 1) + baseline_runtimes = [] + comparison_runtimes = [] + program_labels3 = [] + + for prog_name in all_programs: + baseline_prog = baseline_programs.get(prog_name, {}) + comparison_prog = comparison_programs.get(prog_name, {}) + baseline_rt = baseline_prog.get('avg_runtime_ns', 0) / 1e3 # Convert to microseconds + comparison_rt = comparison_prog.get('avg_runtime_ns', 0) / 1e3 + + if baseline_rt > 0 or comparison_rt > 0: + baseline_runtimes.append(baseline_rt) + comparison_runtimes.append(comparison_rt) + label = prog_name[:20] + '...' if len(prog_name) > 20 else prog_name + program_labels3.append(label) + + if baseline_runtimes: + x = np.arange(len(program_labels3)) + width = 0.35 + + bars1 = ax4.bar(x - width/2, baseline_runtimes, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax4.bar(x + width/2, comparison_runtimes, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + ax4.set_xlabel('Program', fontweight='bold') + ax4.set_ylabel('Avg Runtime (μs)', fontweight='bold') + ax4.set_title('Average Runtime by Program', fontweight='bold', fontsize=12) + ax4.set_xticks(x) + ax4.set_xticklabels(program_labels3, rotation=45, ha='right', fontsize=8) + ax4.legend() + ax4.grid(True, alpha=0.3, axis='y') + ax4.set_yscale('log') + + save_figure(fig4, f'{base_name}-avg-runtime.png', + f'Average Runtime by Program\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + else: + plt.close(fig4) + + # 5. Packet Stats Comparison (if available) + if baseline_packet_stats or comparison_packet_stats: + fig5 = plt.figure(figsize=(10, 6)) + ax5 = fig5.add_subplot(1, 1, 1) + packet_metrics = ['Packets/s', 'Flows/s', 'Bytes/s (MB)'] + baseline_packet_values = [ + baseline_packets_per_sec, + baseline_flows_per_sec, + baseline_bytes_per_sec / 1e6 # Convert to MB/s + ] + comparison_packet_values = [ + comparison_packets_per_sec, + comparison_flows_per_sec, + comparison_bytes_per_sec / 1e6 # Convert to MB/s + ] + + x = np.arange(len(packet_metrics)) + width = 0.35 + + bars1 = ax5.bar(x - width/2, baseline_packet_values, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax5.bar(x + width/2, comparison_packet_values, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + # Add percentage change labels + packet_changes = [packets_change, flows_change, bytes_change] + for i, (base, comp, change) in enumerate(zip(baseline_packet_values, comparison_packet_values, packet_changes)): + max_val = max(base, comp) if max(base, comp) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(change) < 1 else ('green' if change > 0 else 'red') + ax5.text(i, y_pos, f'{change:+.1f}%', ha='center', va='bottom', + fontsize=9, fontweight='bold', color=color) + + ax5.set_xlabel('Metric', fontweight='bold') + ax5.set_ylabel('Rate', fontweight='bold') + ax5.set_title('Packet/Flow Statistics', fontweight='bold', fontsize=12) + ax5.set_xticks(x) + ax5.set_xticklabels(packet_metrics) + ax5.legend() + ax5.grid(True, alpha=0.3, axis='y') + ax5.set_yscale('log') + + save_figure(fig5, f'{base_name}-packet-stats.png', + f'Packet/Flow Statistics\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + + # 6. Efficiency Metrics Comparison (if packet stats available) + if baseline_packet_stats or comparison_packet_stats: + fig6 = plt.figure(figsize=(10, 6)) + ax6 = fig6.add_subplot(1, 1, 1) + efficiency_metrics = ['Pkts/s per CPU%', 'Flows/s per CPU%', 'MB/s per CPU%'] + baseline_efficiency_values = [ + baseline_cpu_efficiency_packets, + baseline_cpu_efficiency_flows, + baseline_cpu_efficiency_bytes / 1e6 # Convert to MB/s per CPU% + ] + comparison_efficiency_values = [ + comparison_cpu_efficiency_packets, + comparison_cpu_efficiency_flows, + comparison_cpu_efficiency_bytes / 1e6 # Convert to MB/s per CPU% + ] + + x = np.arange(len(efficiency_metrics)) + width = 0.35 + + bars1 = ax6.bar(x - width/2, baseline_efficiency_values, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax6.bar(x + width/2, comparison_efficiency_values, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + # Add percentage change labels + efficiency_changes = [cpu_efficiency_packets_change, cpu_efficiency_flows_change, cpu_efficiency_bytes_change] + for i, (base, comp, change) in enumerate(zip(baseline_efficiency_values, comparison_efficiency_values, efficiency_changes)): + max_val = max(base, comp) if max(base, comp) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(change) < 1 else ('green' if change > 0 else 'red') + ax6.text(i, y_pos, f'{change:+.1f}%', ha='center', va='bottom', + fontsize=9, fontweight='bold', color=color) + + ax6.set_xlabel('Metric', fontweight='bold') + ax6.set_ylabel('Efficiency', fontweight='bold') + ax6.set_title('CPU Efficiency Metrics', fontweight='bold', fontsize=12) + ax6.set_xticks(x) + ax6.set_xticklabels(efficiency_metrics, rotation=15, ha='right') + ax6.legend() + ax6.grid(True, alpha=0.3, axis='y') + ax6.set_yscale('log') + + save_figure(fig6, f'{base_name}-cpu-efficiency.png', + f'CPU Efficiency Metrics\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + + # 7. Program Metadata Comparison (Memory, JIT Size, Instructions, Maps) + fig7 = plt.figure(figsize=(10, 6)) + ax7 = fig7.add_subplot(1, 1, 1) + metadata_metrics = [] + baseline_metadata_values = [] + comparison_metadata_values = [] + metadata_changes = [] + + if baseline_total_memlock > 0 or comparison_total_memlock > 0: + metadata_metrics.append('Memory (MB)') + baseline_metadata_values.append(baseline_total_memlock / 1e6) + comparison_metadata_values.append(comparison_total_memlock / 1e6) + metadata_changes.append(memlock_change) + + if baseline_total_jited_size > 0 or comparison_total_jited_size > 0: + metadata_metrics.append('JIT Size (KB)') + baseline_metadata_values.append(baseline_total_jited_size / 1e3) + comparison_metadata_values.append(comparison_total_jited_size / 1e3) + metadata_changes.append(jited_size_change) + + if baseline_total_verified_insns > 0 or comparison_total_verified_insns > 0: + metadata_metrics.append('Instructions') + baseline_metadata_values.append(baseline_total_verified_insns) + comparison_metadata_values.append(comparison_total_verified_insns) + metadata_changes.append(verified_insns_change) + + if baseline_total_maps > 0 or comparison_total_maps > 0: + metadata_metrics.append('Maps') + baseline_metadata_values.append(baseline_total_maps) + comparison_metadata_values.append(comparison_total_maps) + metadata_changes.append(maps_change) + + if metadata_metrics: + x = np.arange(len(metadata_metrics)) + width = 0.35 + + bars1 = ax7.bar(x - width/2, baseline_metadata_values, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax7.bar(x + width/2, comparison_metadata_values, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + # Add percentage change labels + for i, (base, comp, change) in enumerate(zip(baseline_metadata_values, comparison_metadata_values, metadata_changes)): + max_val = max(base, comp) if max(base, comp) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(change) < 1 else ('green' if change < 0 else 'red') + ax7.text(i, y_pos, f'{change:+.1f}%', ha='center', va='bottom', + fontsize=9, fontweight='bold', color=color) + + ax7.set_xlabel('Metric', fontweight='bold') + ax7.set_ylabel('Value', fontweight='bold') + ax7.set_title('Program Metadata Comparison', fontweight='bold', fontsize=12) + ax7.set_xticks(x) + ax7.set_xticklabels(metadata_metrics, rotation=15, ha='right') + ax7.legend() + ax7.grid(True, alpha=0.3, axis='y') + ax7.set_yscale('log') + + save_figure(fig7, f'{base_name}-program-metadata.png', + f'Program Metadata Comparison\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + else: + plt.close(fig7) + + # 8. Program Metadata by Program (Memory footprint) + fig8 = plt.figure(figsize=(14, 8)) + ax8 = fig8.add_subplot(1, 1, 1) + baseline_memlocks = [] + comparison_memlocks = [] + program_labels4 = [] + + for prog_name in all_programs: + baseline_prog = baseline_programs.get(prog_name, {}) + comparison_prog = comparison_programs.get(prog_name, {}) + baseline_mem = baseline_prog.get('memlock_bytes', 0) / 1e6 # Convert to MB + comparison_mem = comparison_prog.get('memlock_bytes', 0) / 1e6 + + if baseline_mem > 0 or comparison_mem > 0: + baseline_memlocks.append(baseline_mem) + comparison_memlocks.append(comparison_mem) + label = prog_name[:20] + '...' if len(prog_name) > 20 else prog_name + program_labels4.append(label) + + if baseline_memlocks: + x = np.arange(len(program_labels4)) + width = 0.35 + + bars1 = ax8.bar(x - width/2, baseline_memlocks, width, label=baseline_label, color='#3498db', alpha=0.8) + bars2 = ax8.bar(x + width/2, comparison_memlocks, width, label=comparison_label, color='#e74c3c', alpha=0.8) + + ax8.set_xlabel('Program', fontweight='bold') + ax8.set_ylabel('Memory (MB)', fontweight='bold') + ax8.set_title('Memory Footprint by Program', fontweight='bold', fontsize=12) + ax8.set_xticks(x) + ax8.set_xticklabels(program_labels4, rotation=45, ha='right', fontsize=8) + ax8.legend() + ax8.grid(True, alpha=0.3, axis='y') + ax8.set_yscale('log') + + save_figure(fig8, f'{base_name}-memory-footprint.png', + f'Memory Footprint by Program\nBaseline: {baseline_label} vs Comparison: {comparison_label}') + else: + plt.close(fig8) + + # Generate summary text file + summary_lines = [] + + # Add cluster information if available + if cluster_info: + summary_lines.append("Cluster Information:") + summary_lines.append(f" Cluster Name: {cluster_info.get('cluster_name', 'unknown')}") + summary_lines.append(f" Cluster Type: {cluster_info.get('cluster_type', 'unknown')}") + summary_lines.append(f" Number of Nodes: {cluster_info.get('num_nodes', 'unknown')}") + + if 'nodes' in cluster_info and isinstance(cluster_info['nodes'], list): + # Detailed node information + instance_types = {} + for node in cluster_info['nodes']: + inst_type = node.get('instance_type', 'unknown') + instance_types[inst_type] = instance_types.get(inst_type, 0) + 1 + + if instance_types: + summary_lines.append(" Instance Types:") + for inst_type, count in sorted(instance_types.items()): + summary_lines.append(f" - {inst_type}: {count} node(s)") + + # Show node details if there are few nodes + if len(cluster_info['nodes']) <= 5: + summary_lines.append(" Node Details:") + for node in cluster_info['nodes']: + summary_lines.append(f" - {node.get('name', 'unknown')}: {node.get('instance_type', 'unknown')} " + f"({node.get('cpu', '?')} CPU, {node.get('arch', '?')} arch)") + elif 'instance_types' in cluster_info: + # Fallback format + summary_lines.append(f" Instance Types: {cluster_info.get('instance_types', 'unknown')}") + + summary_lines.append("") # Empty line separator + + summary_lines.extend([ + f"Collection Duration: {duration_sec:.0f}s", + f"Total CPU: Baseline {baseline_total_cpu:.4f}% | Comparison {comparison_total_cpu:.4f}% | Change: {cpu_change:+.2f}%", + f"Total Events/sec: Baseline {baseline_total_events:.2f}/s | Comparison {comparison_total_events:.2f}/s | Change: {events_change:+.2f}%", + f"Avg Runtime/Event: Baseline {baseline_avg_runtime/1e3:.2f}μs | Comparison {comparison_avg_runtime/1e3:.2f}μs | Change: {avg_runtime_change:+.2f}%" + ]) + + if baseline_packet_stats or comparison_packet_stats: + summary_lines.append(f"Packets/sec: Baseline {baseline_packets_per_sec:.2f}/s | Comparison {comparison_packets_per_sec:.2f}/s | Change: {packets_change:+.2f}%") + summary_lines.append(f"Flows/sec: Baseline {baseline_flows_per_sec:.2f}/s | Comparison {comparison_flows_per_sec:.2f}/s | Change: {flows_change:+.2f}%") + summary_lines.append(f"Bytes/sec: Baseline {baseline_bytes_per_sec/1e6:.2f}MB/s | Comparison {comparison_bytes_per_sec/1e6:.2f}MB/s | Change: {bytes_change:+.2f}%") + summary_lines.append(f"CPU Efficiency (pkts/s per %): Baseline {baseline_cpu_efficiency_packets:.2f} | Comparison {comparison_cpu_efficiency_packets:.2f} | Change: {cpu_efficiency_packets_change:+.2f}%") + summary_lines.append(f"CPU Efficiency (flows/s per %): Baseline {baseline_cpu_efficiency_flows:.2f} | Comparison {comparison_cpu_efficiency_flows:.2f} | Change: {cpu_efficiency_flows_change:+.2f}%") + + # Add program metadata to summary + if baseline_total_memlock > 0 or comparison_total_memlock > 0: + summary_lines.append(f"Total Memory (MB): Baseline {baseline_total_memlock/1e6:.2f}MB | Comparison {comparison_total_memlock/1e6:.2f}MB | Change: {memlock_change:+.2f}%") + if baseline_total_jited_size > 0 or comparison_total_jited_size > 0: + summary_lines.append(f"Total JIT Size (KB): Baseline {baseline_total_jited_size/1e3:.2f}KB | Comparison {comparison_total_jited_size/1e3:.2f}KB | Change: {jited_size_change:+.2f}%") + if baseline_total_verified_insns > 0 or comparison_total_verified_insns > 0: + summary_lines.append(f"Total Instructions: Baseline {baseline_total_verified_insns} | Comparison {comparison_total_verified_insns} | Change: {verified_insns_change:+.2f}%") + if baseline_total_maps > 0 or comparison_total_maps > 0: + summary_lines.append(f"Total Maps: Baseline {baseline_total_maps} | Comparison {comparison_total_maps} | Change: {maps_change:+.2f}%") + + # Create combined figure with all graphs + # Calculate number of graphs to include + num_graphs = 5 # cpu-usage, events-per-sec, cpu-total, events-total, avg-runtime-total + if baseline_runtimes: + num_graphs += 1 # avg-runtime by program + if baseline_packet_stats or comparison_packet_stats: + num_graphs += 2 # packet-stats, cpu-efficiency + if metadata_metrics: + num_graphs += 1 # program-metadata + if baseline_memlocks: + num_graphs += 1 # memory-footprint + + # Create grid layout (3 columns) + cols = 3 + rows = (num_graphs + cols - 1) // cols + + combined_fig = plt.figure(figsize=(20, 6 * rows)) + combined_fig.suptitle(f'eBPF Performance Comparison\nBaseline: {baseline_label} vs Comparison: {comparison_label}', + fontsize=16, fontweight='bold', y=0.995) + + subplot_idx = 1 + + # 1. CPU Usage by Program + if baseline_cpus: + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + x = np.arange(len(program_labels)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_cpus, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_cpus, width, label=comparison_label, color='#e74c3c', alpha=0.8) + ax_combined.set_xlabel('Program', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('CPU Usage (%)', fontweight='bold', fontsize=9) + ax_combined.set_title('CPU Usage by Program', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(program_labels, rotation=45, ha='right', fontsize=7) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # 2. Events/sec by Program + if baseline_events: + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + x = np.arange(len(program_labels2)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_events, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_events, width, label=comparison_label, color='#e74c3c', alpha=0.8) + ax_combined.set_xlabel('Program', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('Events/sec', fontweight='bold', fontsize=9) + ax_combined.set_title('Events/sec by Program', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(program_labels2, rotation=45, ha='right', fontsize=7) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # 3. Total CPU Usage + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + metrics_cpu = ['CPU %'] + baseline_values_cpu = [baseline_total_cpu] + comparison_values_cpu = [comparison_total_cpu] + x = np.arange(len(metrics_cpu)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_values_cpu, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_values_cpu, width, label=comparison_label, color='#e74c3c', alpha=0.8) + max_val = max(baseline_total_cpu, comparison_total_cpu) if max(baseline_total_cpu, comparison_total_cpu) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(cpu_change) < 1 else ('green' if cpu_change < 0 else 'red') + ax_combined.text(0, y_pos, f'{cpu_change:+.2f}%', ha='center', va='bottom', fontsize=9, fontweight='bold', color=color) + ax_combined.set_ylabel('CPU Usage (%)', fontweight='bold', fontsize=9) + ax_combined.set_title('Total CPU Usage', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(metrics_cpu, fontsize=9) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + subplot_idx += 1 + + # 4. Total Events/sec + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + metrics_events = ['Events/s'] + baseline_values_events = [baseline_total_events] + comparison_values_events = [comparison_total_events] + x = np.arange(len(metrics_events)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_values_events, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_values_events, width, label=comparison_label, color='#e74c3c', alpha=0.8) + max_val = max(baseline_total_events, comparison_total_events) if max(baseline_total_events, comparison_total_events) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(events_change) < 1 else ('green' if events_change > 0 else 'red') + ax_combined.text(0, y_pos, f'{events_change:+.2f}%', ha='center', va='bottom', fontsize=9, fontweight='bold', color=color) + ax_combined.set_ylabel('Events/sec', fontweight='bold', fontsize=9) + ax_combined.set_title('Total Events/sec', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(metrics_events, fontsize=9) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + subplot_idx += 1 + + # 5. Average Runtime per Event + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + metrics_runtime = ['Avg Runtime (μs)'] + baseline_values_runtime = [baseline_avg_runtime / 1e3] + comparison_values_runtime = [comparison_avg_runtime / 1e3] + x = np.arange(len(metrics_runtime)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_values_runtime, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_values_runtime, width, label=comparison_label, color='#e74c3c', alpha=0.8) + max_val = max(baseline_values_runtime[0], comparison_values_runtime[0]) if max(baseline_values_runtime[0], comparison_values_runtime[0]) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(avg_runtime_change) < 1 else ('green' if avg_runtime_change < 0 else 'red') + ax_combined.text(0, y_pos, f'{avg_runtime_change:+.2f}%', ha='center', va='bottom', fontsize=9, fontweight='bold', color=color) + ax_combined.set_ylabel('Average Runtime (μs)', fontweight='bold', fontsize=9) + ax_combined.set_title('Avg Runtime per Event', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(metrics_runtime, fontsize=9) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + subplot_idx += 1 + + # 6. Average Runtime by Program (if available) + if baseline_runtimes: + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + x = np.arange(len(program_labels3)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_runtimes, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_runtimes, width, label=comparison_label, color='#e74c3c', alpha=0.8) + ax_combined.set_xlabel('Program', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('Avg Runtime (μs)', fontweight='bold', fontsize=9) + ax_combined.set_title('Avg Runtime by Program', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(program_labels3, rotation=45, ha='right', fontsize=7) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # 7. Packet Stats (if available) + if baseline_packet_stats or comparison_packet_stats: + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + packet_metrics = ['Packets/s', 'Flows/s', 'Bytes/s (MB)'] + baseline_packet_values = [ + baseline_packets_per_sec, + baseline_flows_per_sec, + baseline_bytes_per_sec / 1e6 + ] + comparison_packet_values = [ + comparison_packets_per_sec, + comparison_flows_per_sec, + comparison_bytes_per_sec / 1e6 + ] + x = np.arange(len(packet_metrics)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_packet_values, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_packet_values, width, label=comparison_label, color='#e74c3c', alpha=0.8) + packet_changes = [packets_change, flows_change, bytes_change] + for i, (base, comp, change) in enumerate(zip(baseline_packet_values, comparison_packet_values, packet_changes)): + max_val = max(base, comp) if max(base, comp) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(change) < 1 else ('green' if change > 0 else 'red') + ax_combined.text(i, y_pos, f'{change:+.1f}%', ha='center', va='bottom', fontsize=8, fontweight='bold', color=color) + ax_combined.set_xlabel('Metric', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('Rate', fontweight='bold', fontsize=9) + ax_combined.set_title('Packet/Flow Statistics', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(packet_metrics, fontsize=8) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # 8. CPU Efficiency (if available) + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + efficiency_metrics = ['Pkts/s per CPU%', 'Flows/s per CPU%', 'MB/s per CPU%'] + baseline_efficiency_values = [ + baseline_cpu_efficiency_packets, + baseline_cpu_efficiency_flows, + baseline_cpu_efficiency_bytes / 1e6 + ] + comparison_efficiency_values = [ + comparison_cpu_efficiency_packets, + comparison_cpu_efficiency_flows, + comparison_cpu_efficiency_bytes / 1e6 + ] + x = np.arange(len(efficiency_metrics)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_efficiency_values, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_efficiency_values, width, label=comparison_label, color='#e74c3c', alpha=0.8) + efficiency_changes = [cpu_efficiency_packets_change, cpu_efficiency_flows_change, cpu_efficiency_bytes_change] + for i, (base, comp, change) in enumerate(zip(baseline_efficiency_values, comparison_efficiency_values, efficiency_changes)): + max_val = max(base, comp) if max(base, comp) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(change) < 1 else ('green' if change > 0 else 'red') + ax_combined.text(i, y_pos, f'{change:+.1f}%', ha='center', va='bottom', fontsize=8, fontweight='bold', color=color) + ax_combined.set_xlabel('Metric', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('Efficiency', fontweight='bold', fontsize=9) + ax_combined.set_title('CPU Efficiency Metrics', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(efficiency_metrics, rotation=15, ha='right', fontsize=8) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # 9. Program Metadata (if available) + if metadata_metrics: + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + x = np.arange(len(metadata_metrics)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_metadata_values, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_metadata_values, width, label=comparison_label, color='#e74c3c', alpha=0.8) + for i, (base, comp, change) in enumerate(zip(baseline_metadata_values, comparison_metadata_values, metadata_changes)): + max_val = max(base, comp) if max(base, comp) > 0 else 1 + y_pos = max_val * 1.1 + color = 'green' if abs(change) < 1 else ('green' if change < 0 else 'red') + ax_combined.text(i, y_pos, f'{change:+.1f}%', ha='center', va='bottom', fontsize=8, fontweight='bold', color=color) + ax_combined.set_xlabel('Metric', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('Value', fontweight='bold', fontsize=9) + ax_combined.set_title('Program Metadata', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(metadata_metrics, rotation=15, ha='right', fontsize=8) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # 10. Memory Footprint by Program (if available) + if baseline_memlocks: + ax_combined = combined_fig.add_subplot(rows, cols, subplot_idx) + x = np.arange(len(program_labels4)) + width = 0.35 + ax_combined.bar(x - width/2, baseline_memlocks, width, label=baseline_label, color='#3498db', alpha=0.8) + ax_combined.bar(x + width/2, comparison_memlocks, width, label=comparison_label, color='#e74c3c', alpha=0.8) + ax_combined.set_xlabel('Program', fontweight='bold', fontsize=9) + ax_combined.set_ylabel('Memory (MB)', fontweight='bold', fontsize=9) + ax_combined.set_title('Memory Footprint by Program', fontweight='bold', fontsize=10) + ax_combined.set_xticks(x) + ax_combined.set_xticklabels(program_labels4, rotation=45, ha='right', fontsize=7) + ax_combined.legend(fontsize=8) + ax_combined.grid(True, alpha=0.3, axis='y') + ax_combined.set_yscale('log') + subplot_idx += 1 + + # Add timestamp to combined figure + combined_fig.text(0.99, 0.01, f'Generated: {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}', + ha='right', va='bottom', fontsize=8, style='italic') + + # Adjust layout and save combined figure + plt.tight_layout(rect=[0, 0.03, 1, 0.97]) + combined_fig.savefig(output_file, dpi=150, bbox_inches='tight') + plt.close(combined_fig) + print(f"Combined comparison report generated: {output_file}") + generated_files.append(Path(output_file)) + + summary_text = "\n".join(summary_lines) + summary_file = base_dir / f'{base_name}-summary.txt' + with open(summary_file, 'w') as f: + f.write(f"eBPF Performance Comparison Summary\n") + f.write(f"Baseline: {baseline_label} vs Comparison: {comparison_label}\n") + f.write(f"{'='*60}\n\n") + f.write(summary_text) + f.write(f"\n\n{'='*60}\n") + f.write(f"Generated Graphs:\n") + f.write(f"{'='*60}\n\n") + f.write(f"Combined Report:\n") + f.write(f" - {output_path.name}\n\n") + f.write(f"Individual Graphs:\n") + + # List all generated graph files + graph_files = [ + (f'{base_name}-cpu-usage.png', 'CPU Usage by Program'), + (f'{base_name}-events-per-sec.png', 'Events/sec by Program'), + (f'{base_name}-cpu-total.png', 'Total CPU Usage Comparison'), + (f'{base_name}-events-total.png', 'Total Events/sec Comparison'), + (f'{base_name}-avg-runtime-total.png', 'Average Runtime per Event Comparison'), + (f'{base_name}-avg-runtime.png', 'Average Runtime by Program'), + ] + + if baseline_packet_stats or comparison_packet_stats: + graph_files.extend([ + (f'{base_name}-packet-stats.png', 'Packet/Flow Statistics'), + (f'{base_name}-cpu-efficiency.png', 'CPU Efficiency Metrics'), + ]) + + if metadata_metrics: + graph_files.append((f'{base_name}-program-metadata.png', 'Program Metadata Comparison')) + + if baseline_memlocks: + graph_files.append((f'{base_name}-memory-footprint.png', 'Memory Footprint by Program')) + + for filename, description in graph_files: + filepath = base_dir / filename + if filepath.exists(): + f.write(f" - {filename} ({description})\n") + + f.write(f"\nGenerated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") + print(f"Summary generated: {summary_file}") + generated_files.append(summary_file) + + print(f"\nAll comparison graphs generated ({len(generated_files)} files)") + print(f"Base output directory: {base_dir}") + + +def main(): + parser = argparse.ArgumentParser( + description='Compare kernel stats from two benchmark runs and generate matplotlib visualizations', + formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument('--baseline', required=True, help='Baseline kernel stats JSON file') + parser.add_argument('--comparison', required=True, help='Comparison kernel stats JSON file') + parser.add_argument('--output', required=True, help='Output PNG image file') + parser.add_argument('--baseline-label', default='Baseline', help='Label for baseline image') + parser.add_argument('--comparison-label', default='Comparison', help='Label for comparison image') + parser.add_argument('--baseline-packet-stats', help='Baseline packet stats JSON file (optional)') + parser.add_argument('--comparison-packet-stats', help='Comparison packet stats JSON file (optional)') + parser.add_argument('--cluster-info', help='Cluster information JSON file (optional, auto-detected if in same directory as baseline)') + + args = parser.parse_args() + + # Auto-detect cluster-info.json in the same directory as baseline file if not provided + cluster_info = None + if args.cluster_info: + cluster_info_path = Path(args.cluster_info) + else: + # Try to find cluster-info.json in the same directory as baseline file + baseline_path = Path(args.baseline) + cluster_info_path = baseline_path.parent / 'cluster-info.json' + + if cluster_info_path.exists(): + try: + cluster_info = load_stats(str(cluster_info_path)) + print(f"Loaded cluster information from: {cluster_info_path}") + except (FileNotFoundError, json.JSONDecodeError) as e: + print(f"Warning: Could not load cluster info from {cluster_info_path}: {e}", file=sys.stderr) + cluster_info = None + + baseline_stats = load_stats(args.baseline) + comparison_stats = load_stats(args.comparison) + + baseline_packet_stats = None + comparison_packet_stats = None + + if args.baseline_packet_stats: + if Path(args.baseline_packet_stats).exists(): + try: + baseline_packet_stats = load_stats(args.baseline_packet_stats) + except (FileNotFoundError, json.JSONDecodeError) as e: + print(f"Warning: Could not load baseline packet stats from {args.baseline_packet_stats}: {e}", file=sys.stderr) + baseline_packet_stats = None + else: + print(f"Warning: Baseline packet stats file not found: {args.baseline_packet_stats}", file=sys.stderr) + + if args.comparison_packet_stats: + if Path(args.comparison_packet_stats).exists(): + try: + comparison_packet_stats = load_stats(args.comparison_packet_stats) + except (FileNotFoundError, json.JSONDecodeError) as e: + print(f"Warning: Could not load comparison packet stats from {args.comparison_packet_stats}: {e}", file=sys.stderr) + comparison_packet_stats = None + else: + print(f"Warning: Comparison packet stats file not found: {args.comparison_packet_stats}", file=sys.stderr) + + generate_matplotlib_report( + baseline_stats, + comparison_stats, + args.baseline_label, + args.comparison_label, + args.output, + baseline_packet_stats, + comparison_packet_stats, + cluster_info + ) + + +if __name__ == '__main__': + main()