mirror of
https://github.com/logos-blockchain/logos-blockchain-simulations.git
synced 2026-01-02 13:13:07 +00:00
stat used connection latencies
This commit is contained in:
parent
b2337c1253
commit
41ed890c3e
@ -178,6 +178,10 @@ if __name__ == "__main__":
|
||||
"max_latency_msg_persistent_index",
|
||||
"max_latency_msg_temporal_latency_sec",
|
||||
"max_latency_msg_temporal_index",
|
||||
"min_conn_latency_sec",
|
||||
"avg_conn_latency_sec",
|
||||
"med_conn_latency_sec",
|
||||
"max_conn_latency_sec",
|
||||
"min_bandwidth_kbps",
|
||||
"avg_bandwidth_kbps",
|
||||
"max_bandwidth_kbps",
|
||||
@ -262,6 +266,18 @@ if __name__ == "__main__":
|
||||
map(str, latency_analysis.max_latency_analysis.temporal_indices)
|
||||
)
|
||||
)
|
||||
csv_row.append(
|
||||
float(latency_analysis.conn_latency_analysis.min_ms) / 1000.0
|
||||
)
|
||||
csv_row.append(
|
||||
float(latency_analysis.conn_latency_analysis.avg_ms) / 1000.0
|
||||
)
|
||||
csv_row.append(
|
||||
float(latency_analysis.conn_latency_analysis.med_ms) / 1000.0
|
||||
)
|
||||
csv_row.append(
|
||||
float(latency_analysis.conn_latency_analysis.max_ms) / 1000.0
|
||||
)
|
||||
|
||||
bandwidth_res = bandwidth_result(log_path, args.step_duration)
|
||||
csv_row.append(bandwidth_res["min"] * 8 / 1000.0)
|
||||
|
||||
@ -17,6 +17,7 @@ class LatencyAnalysis:
|
||||
max_latency_analysis: "MessageLatencyAnalysis"
|
||||
avg_latency_ms: int
|
||||
median_latency_ms: int
|
||||
conn_latency_analysis: "ConnectionLatencyAnalysis"
|
||||
|
||||
@classmethod
|
||||
def build(cls, input_stream: Iterable[tuple[str, dict]]) -> "LatencyAnalysis":
|
||||
@ -35,17 +36,18 @@ class LatencyAnalysis:
|
||||
message_ids = pd.Series(message_ids)
|
||||
|
||||
return cls(
|
||||
int(latencies.count()),
|
||||
int(latencies.min()),
|
||||
MessageLatencyAnalysis.build(
|
||||
total_messages=int(latencies.count()),
|
||||
min_latency_ms=int(latencies.min()),
|
||||
min_latency_analysis=MessageLatencyAnalysis.build(
|
||||
messages[str(message_ids[latencies.idxmin()])]
|
||||
),
|
||||
int(latencies.max()),
|
||||
MessageLatencyAnalysis.build(
|
||||
max_latency_ms=int(latencies.max()),
|
||||
max_latency_analysis=MessageLatencyAnalysis.build(
|
||||
messages[str(message_ids[latencies.idxmax()])]
|
||||
),
|
||||
int(latencies.mean()),
|
||||
int(latencies.median()),
|
||||
avg_latency_ms=int(latencies.mean()),
|
||||
median_latency_ms=int(latencies.median()),
|
||||
conn_latency_analysis=ConnectionLatencyAnalysis.build(messages),
|
||||
)
|
||||
|
||||
|
||||
@ -82,6 +84,32 @@ class MessageLatencyAnalysis:
|
||||
return analysis
|
||||
|
||||
|
||||
@dataclass
|
||||
class ConnectionLatencyAnalysis:
|
||||
min_ms: int
|
||||
avg_ms: int
|
||||
med_ms: int
|
||||
max_ms: int
|
||||
|
||||
@classmethod
|
||||
def build(
|
||||
cls,
|
||||
messages: dict[str, dict],
|
||||
) -> "ConnectionLatencyAnalysis":
|
||||
latencies = []
|
||||
for message in messages.values():
|
||||
for event in message["history"]:
|
||||
if "NetworkReceived" in event["event_type"]:
|
||||
latencies.append(event["duration_from_prev"])
|
||||
latencies = pd.Series(latencies)
|
||||
return cls(
|
||||
int(latencies.min()),
|
||||
int(latencies.mean()),
|
||||
int(latencies.median()),
|
||||
int(latencies.max()),
|
||||
)
|
||||
|
||||
|
||||
def build_argument_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(description="Log analysis for nomos-simulations.")
|
||||
parser.add_argument(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user