diff --git a/tap/extensions/http/main.go b/tap/extensions/http/main.go index 4a160f1f5..28ca4a987 100644 --- a/tap/extensions/http/main.go +++ b/tap/extensions/http/main.go @@ -184,6 +184,9 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, } elapsedTime := item.Pair.Response.CaptureTime.Sub(item.Pair.Request.CaptureTime).Round(time.Millisecond).Milliseconds() + if elapsedTime < 0 { + elapsedTime = 0 + } httpPair, _ := json.Marshal(item.Pair) _protocol := protocol _protocol.Version = item.Protocol.Version diff --git a/tap/extensions/kafka/main.go b/tap/extensions/kafka/main.go index 4c8ea0697..1951a1b39 100644 --- a/tap/extensions/kafka/main.go +++ b/tap/extensions/kafka/main.go @@ -149,6 +149,9 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, request["url"] = summary elapsedTime := item.Pair.Response.CaptureTime.Sub(item.Pair.Request.CaptureTime).Round(time.Millisecond).Milliseconds() + if elapsedTime < 0 { + elapsedTime = 0 + } return &api.MizuEntry{ Protocol: _protocol, Source: &api.TCP{ diff --git a/tap/extensions/redis/main.go b/tap/extensions/redis/main.go index 387a82b2f..3a16132e2 100644 --- a/tap/extensions/redis/main.go +++ b/tap/extensions/redis/main.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "log" + "time" "github.com/up9inc/mizu/tap/api" ) @@ -82,6 +83,10 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, } request["url"] = summary + elapsedTime := item.Pair.Response.CaptureTime.Sub(item.Pair.Request.CaptureTime).Round(time.Millisecond).Milliseconds() + if elapsedTime < 0 { + elapsedTime = 0 + } return &api.MizuEntry{ Protocol: protocol, Source: &api.TCP{ @@ -104,7 +109,7 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, Service: service, Timestamp: item.Timestamp, StartTime: item.Pair.Request.CaptureTime, - ElapsedTime: 0, + ElapsedTime: elapsedTime, Summary: summary, ResolvedSource: resolvedSource, ResolvedDestination: resolvedDestination,