mirror of
https://github.com/logos-blockchain/logos-blockchain-simulations.git
synced 2026-01-04 06:03:09 +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_persistent_index",
|
||||||
"max_latency_msg_temporal_latency_sec",
|
"max_latency_msg_temporal_latency_sec",
|
||||||
"max_latency_msg_temporal_index",
|
"max_latency_msg_temporal_index",
|
||||||
|
"min_conn_latency_sec",
|
||||||
|
"avg_conn_latency_sec",
|
||||||
|
"med_conn_latency_sec",
|
||||||
|
"max_conn_latency_sec",
|
||||||
"min_bandwidth_kbps",
|
"min_bandwidth_kbps",
|
||||||
"avg_bandwidth_kbps",
|
"avg_bandwidth_kbps",
|
||||||
"max_bandwidth_kbps",
|
"max_bandwidth_kbps",
|
||||||
@ -262,6 +266,18 @@ if __name__ == "__main__":
|
|||||||
map(str, latency_analysis.max_latency_analysis.temporal_indices)
|
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)
|
bandwidth_res = bandwidth_result(log_path, args.step_duration)
|
||||||
csv_row.append(bandwidth_res["min"] * 8 / 1000.0)
|
csv_row.append(bandwidth_res["min"] * 8 / 1000.0)
|
||||||
|
|||||||
@ -17,6 +17,7 @@ class LatencyAnalysis:
|
|||||||
max_latency_analysis: "MessageLatencyAnalysis"
|
max_latency_analysis: "MessageLatencyAnalysis"
|
||||||
avg_latency_ms: int
|
avg_latency_ms: int
|
||||||
median_latency_ms: int
|
median_latency_ms: int
|
||||||
|
conn_latency_analysis: "ConnectionLatencyAnalysis"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def build(cls, input_stream: Iterable[tuple[str, dict]]) -> "LatencyAnalysis":
|
def build(cls, input_stream: Iterable[tuple[str, dict]]) -> "LatencyAnalysis":
|
||||||
@ -35,17 +36,18 @@ class LatencyAnalysis:
|
|||||||
message_ids = pd.Series(message_ids)
|
message_ids = pd.Series(message_ids)
|
||||||
|
|
||||||
return cls(
|
return cls(
|
||||||
int(latencies.count()),
|
total_messages=int(latencies.count()),
|
||||||
int(latencies.min()),
|
min_latency_ms=int(latencies.min()),
|
||||||
MessageLatencyAnalysis.build(
|
min_latency_analysis=MessageLatencyAnalysis.build(
|
||||||
messages[str(message_ids[latencies.idxmin()])]
|
messages[str(message_ids[latencies.idxmin()])]
|
||||||
),
|
),
|
||||||
int(latencies.max()),
|
max_latency_ms=int(latencies.max()),
|
||||||
MessageLatencyAnalysis.build(
|
max_latency_analysis=MessageLatencyAnalysis.build(
|
||||||
messages[str(message_ids[latencies.idxmax()])]
|
messages[str(message_ids[latencies.idxmax()])]
|
||||||
),
|
),
|
||||||
int(latencies.mean()),
|
avg_latency_ms=int(latencies.mean()),
|
||||||
int(latencies.median()),
|
median_latency_ms=int(latencies.median()),
|
||||||
|
conn_latency_analysis=ConnectionLatencyAnalysis.build(messages),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -82,6 +84,32 @@ class MessageLatencyAnalysis:
|
|||||||
return analysis
|
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:
|
def build_argument_parser() -> argparse.ArgumentParser:
|
||||||
parser = argparse.ArgumentParser(description="Log analysis for nomos-simulations.")
|
parser = argparse.ArgumentParser(description="Log analysis for nomos-simulations.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user