更新时延计算

This commit is contained in:
nnbcccscdscdsc
2026-03-23 21:30:37 +08:00
parent 2dd33bf73e
commit 32e77df476
6 changed files with 178 additions and 35 deletions

View File

@@ -34,8 +34,8 @@ func TestSummarizeEventsComputesLatencyMetrics(t *testing.T) {
if got := ptrValue(summary.AQueueLatencyNS); got != 20 {
t.Fatalf("AQueueLatencyNS = %d, want 20", got)
}
if got := ptrValue(summary.ABTransportPropagationBQueueLatencyNS); got != 80 {
t.Fatalf("ABTransportPropagationBQueueLatencyNS = %d, want 80", got)
if got := ptrValue(summary.ABTransportPropagationNS); got != 80 {
t.Fatalf("ABTransportPropagationNS = %d, want 80", got)
}
if got := ptrValue(summary.BKernelReceivePathLatencyNS); got != 40 {
t.Fatalf("BKernelReceivePathLatencyNS = %d, want 40", got)
@@ -54,6 +54,46 @@ func TestSummarizeEventsComputesLatencyMetrics(t *testing.T) {
}
}
func TestSummarizeEventsComputesApproxRTTByPairingReverseMessages(t *testing.T) {
events := []Event{
{TsUnixNano: 100, Event: EventAAppPrepBegin, MessageType: protocol.MessageTypeText, MessageID: 1, From: "peer-a", To: "peer-b"},
{TsUnixNano: 110, Event: EventATXSoftware, MessageType: protocol.MessageTypeText, MessageID: 1, From: "peer-a", To: "peer-b"},
{TsUnixNano: 180, Event: EventBAppRecv, MessageType: protocol.MessageTypeText, MessageID: 1, From: "peer-a", To: "peer-b"},
{TsUnixNano: 120, Event: EventAAppPrepBegin, MessageType: protocol.MessageTypeText, MessageID: 2, From: "peer-a", To: "peer-b"},
{TsUnixNano: 140, Event: EventATXSoftware, MessageType: protocol.MessageTypeText, MessageID: 2, From: "peer-a", To: "peer-b"},
{TsUnixNano: 190, Event: EventBAppRecv, MessageType: protocol.MessageTypeText, MessageID: 2, From: "peer-a", To: "peer-b"},
{TsUnixNano: 200, Event: EventAAppPrepBegin, MessageType: protocol.MessageTypeText, MessageID: 11, From: "peer-b", To: "peer-a"},
{TsUnixNano: 210, Event: EventATXSoftware, MessageType: protocol.MessageTypeText, MessageID: 11, From: "peer-b", To: "peer-a"},
{TsUnixNano: 260, Event: EventBAppRecv, MessageType: protocol.MessageTypeText, MessageID: 11, From: "peer-b", To: "peer-a"},
{TsUnixNano: 220, Event: EventAAppPrepBegin, MessageType: protocol.MessageTypeText, MessageID: 12, From: "peer-b", To: "peer-a"},
{TsUnixNano: 230, Event: EventATXSoftware, MessageType: protocol.MessageTypeText, MessageID: 12, From: "peer-b", To: "peer-a"},
{TsUnixNano: 310, Event: EventBAppRecv, MessageType: protocol.MessageTypeText, MessageID: 12, From: "peer-b", To: "peer-a"},
}
summaries := SummarizeEvents(events)
if len(summaries) != 4 {
t.Fatalf("summary count = %d, want 4", len(summaries))
}
gotByMessageID := make(map[uint64]Summary, len(summaries))
for _, summary := range summaries {
gotByMessageID[summary.MessageID] = summary
}
if got := ptrValue(gotByMessageID[1].ApproxRTTNS); got != 150 {
t.Fatalf("message 1 ApproxRTTNS = %d, want 150", got)
}
if got := ptrValue(gotByMessageID[2].ApproxRTTNS); got != 170 {
t.Fatalf("message 2 ApproxRTTNS = %d, want 170", got)
}
if gotByMessageID[11].ApproxRTTNS != nil {
t.Fatalf("message 11 ApproxRTTNS = %d, want nil", ptrValue(gotByMessageID[11].ApproxRTTNS))
}
if gotByMessageID[12].ApproxRTTNS != nil {
t.Fatalf("message 12 ApproxRTTNS = %d, want nil", ptrValue(gotByMessageID[12].ApproxRTTNS))
}
}
func TestSummarizeEventsReportsMissingTimestamps(t *testing.T) {
events := []Event{
{TsUnixNano: 100, Event: EventAAppPrepBegin, MessageType: protocol.MessageTypeText, MessageID: 2, From: "peer-a", To: "peer-b"},