def _parse_results_by_port(self, job, port, flow): results = FlowMeasurementResults(measurement=self, flow=flow) results.generator_results = SequentialPerfResult() results.generator_cpu_stats = SequentialPerfResult() results.receiver_results = SequentialPerfResult() results.receiver_cpu_stats = SequentialPerfResult() if not job.passed: results.generator_results.append(PerfInterval(0, 0, "packets")) results.generator_cpu_stats.append(PerfInterval(0, 0, "cpu_percent")) results.receiver_results.append(PerfInterval(0, 0, "packets")) results.receiver_cpu_stats.append(PerfInterval(0, 0, "cpu_percent")) else: prev_time = job.result["start_time"] prev_tx_val = 0 prev_rx_val = 0 for i in job.result["data"]: time_delta = i["timestamp"] - prev_time tx_delta = i["measurement"][port]["opackets"] - prev_tx_val rx_delta = i["measurement"][port]["ipackets"] - prev_rx_val results.generator_results.append(PerfInterval( tx_delta, time_delta, "pkts")) results.receiver_results.append(PerfInterval( rx_delta, time_delta, "pkts")) prev_time = i["timestamp"] prev_tx_val = i["measurement"][port]["opackets"] prev_rx_val = i["measurement"][port]["ipackets"] cpu_delta = i["measurement"]["global"]["cpu_util"] results.generator_cpu_stats.append(PerfInterval( cpu_delta, time_delta, "cpu_percent")) results.receiver_cpu_stats.append(PerfInterval( cpu_delta, time_delta, "cpu_percent")) return results
def collect_results(self): test_flows = self._finished_measurements results = [] for test_flow in test_flows: flow_results = FlowMeasurementResults(measurement=self, flow=test_flow.flow) flow_results.generator_results = self._parse_job_streams( test_flow.client_job) flow_results.generator_cpu_stats = self._parse_job_cpu( test_flow.client_job) flow_results.receiver_results = self._parse_job_streams( test_flow.server_job) flow_results.receiver_cpu_stats = self._parse_job_cpu( test_flow.server_job) results.append(flow_results) return results
def collect_results(self) -> List[FlowMeasurementResults]: test_flows = self._finished_measurements results = [] for test_flow in test_flows: flow_results = FlowMeasurementResults(measurement=self, flow=test_flow.flow) generator_stats = self._parse_job_samples(test_flow.client_job) flow_results.generator_results = generator_stats[0] flow_results.generator_cpu_stats = generator_stats[1] self._host_versions[test_flow.flow.generator] = \ test_flow.client_job.result["data"]["VERSION"] receiver_stats = self._parse_job_samples(test_flow.server_job) flow_results.receiver_results = receiver_stats[0] flow_results.receiver_cpu_stats = receiver_stats[1] self._host_versions[test_flow.flow.receiver] = \ test_flow.server_job.result["data"]["VERSION"] results.append(flow_results) return results
duration=0.9987289905548096, unit="bits", timestamp=1642059746.001419), PerfInterval(value=8679577152.0, duration=1.0011160373687744, unit="bits", timestamp=1642059747.000148), PerfInterval(value=8703026247.286531, duration=0.9989490509033203, unit="bits", timestamp=1642059748.001264), PerfInterval(value=8695992960.0, duration=0.9998459815979004, unit="bits", timestamp=1642059749.000213), PerfInterval(value=8711631360.0, duration=1.0000200271606445, unit="bits", timestamp=1642059750.000059), PerfInterval(value=8694429120.0, duration=1.000627040863037, unit="bits", timestamp=1642059751.000079), ])))) nonzero_flow = FlowMeasurementResults(flow="", measurement=BaseMeasurement()) some_zero_flow = FlowMeasurementResults(flow="", measurement=BaseMeasurement()) nonzero_flow.generator_results = nonzero_measurement some_zero_flow.generator_results = some_zero_measurement