forked from quic-go/quic-go
Merge pull request #2758 from lucas-clemente/qlog-packet-type
qlog the packet_type as part of the packet header, not the event itself
This commit is contained in:
@@ -90,7 +90,6 @@ func (e eventConnectionClosed) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
}
|
||||
|
||||
type eventPacketSent struct {
|
||||
PacketType packetType
|
||||
Header packetHeader
|
||||
Frames frames
|
||||
IsCoalesced bool
|
||||
@@ -104,7 +103,6 @@ func (e eventPacketSent) Name() string { return "packet_sent" }
|
||||
func (e eventPacketSent) IsNil() bool { return false }
|
||||
|
||||
func (e eventPacketSent) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
enc.StringKey("packet_type", e.PacketType.String())
|
||||
enc.ObjectKey("header", e.Header)
|
||||
enc.ArrayKeyOmitEmpty("frames", e.Frames)
|
||||
enc.BoolKeyOmitEmpty("is_coalesced", e.IsCoalesced)
|
||||
@@ -112,7 +110,6 @@ func (e eventPacketSent) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
}
|
||||
|
||||
type eventPacketReceived struct {
|
||||
PacketType packetType
|
||||
Header packetHeader
|
||||
Frames frames
|
||||
IsCoalesced bool
|
||||
@@ -126,7 +123,6 @@ func (e eventPacketReceived) Name() string { return "packet_received" }
|
||||
func (e eventPacketReceived) IsNil() bool { return false }
|
||||
|
||||
func (e eventPacketReceived) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
enc.StringKey("packet_type", e.PacketType.String())
|
||||
enc.ObjectKey("header", e.Header)
|
||||
enc.ArrayKeyOmitEmpty("frames", e.Frames)
|
||||
enc.BoolKeyOmitEmpty("is_coalesced", e.IsCoalesced)
|
||||
@@ -142,7 +138,6 @@ func (e eventRetryReceived) Name() string { return "packet_received" }
|
||||
func (e eventRetryReceived) IsNil() bool { return false }
|
||||
|
||||
func (e eventRetryReceived) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
enc.StringKey("packet_type", packetType(logging.PacketTypeRetry).String())
|
||||
enc.ObjectKey("header", e.Header)
|
||||
}
|
||||
|
||||
@@ -156,7 +151,6 @@ func (e eventVersionNegotiationReceived) Name() string { return "packet_re
|
||||
func (e eventVersionNegotiationReceived) IsNil() bool { return false }
|
||||
|
||||
func (e eventVersionNegotiationReceived) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
enc.StringKey("packet_type", packetType(logging.PacketTypeVersionNegotiation).String())
|
||||
enc.ObjectKey("header", e.Header)
|
||||
enc.ArrayKey("supported_versions", versions(e.SupportedVersions))
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package qlog
|
||||
|
||||
import (
|
||||
"github.com/francoispqt/gojay"
|
||||
"github.com/lucas-clemente/quic-go/internal/protocol"
|
||||
"github.com/lucas-clemente/quic-go/internal/wire"
|
||||
"github.com/lucas-clemente/quic-go/logging"
|
||||
|
||||
"github.com/francoispqt/gojay"
|
||||
)
|
||||
|
||||
func getPacketTypeFromEncryptionLevel(encLevel protocol.EncryptionLevel) packetType {
|
||||
@@ -59,6 +60,7 @@ func transformExtendedHeader(hdr *wire.ExtendedHeader) *packetHeader {
|
||||
}
|
||||
|
||||
func (h packetHeader) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
enc.StringKey("packet_type", packetType(h.PacketType).String())
|
||||
if h.PacketType != logging.PacketTypeRetry && h.PacketType != logging.PacketTypeVersionNegotiation {
|
||||
enc.Int64Key("packet_number", int64(h.PacketNumber))
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ var _ = Describe("Packet Header", func() {
|
||||
KeyPhase: protocol.KeyPhaseZero,
|
||||
},
|
||||
map[string]interface{}{
|
||||
"packet_type": "1RTT",
|
||||
"packet_number": 42,
|
||||
"dcil": 0,
|
||||
"key_phase_bit": "0",
|
||||
@@ -58,6 +59,7 @@ var _ = Describe("Packet Header", func() {
|
||||
},
|
||||
},
|
||||
map[string]interface{}{
|
||||
"packet_type": "initial",
|
||||
"packet_number": 42,
|
||||
"payload_length": 123,
|
||||
"dcil": 0,
|
||||
@@ -78,6 +80,7 @@ var _ = Describe("Packet Header", func() {
|
||||
},
|
||||
},
|
||||
map[string]interface{}{
|
||||
"packet_type": "handshake",
|
||||
"packet_number": 0,
|
||||
"dcil": 0,
|
||||
"scil": 0,
|
||||
@@ -98,6 +101,7 @@ var _ = Describe("Packet Header", func() {
|
||||
},
|
||||
},
|
||||
map[string]interface{}{
|
||||
"packet_type": "handshake",
|
||||
"packet_number": 42,
|
||||
"dcil": 0,
|
||||
"scil": 16,
|
||||
@@ -115,6 +119,7 @@ var _ = Describe("Packet Header", func() {
|
||||
KeyPhase: protocol.KeyPhaseOne,
|
||||
},
|
||||
map[string]interface{}{
|
||||
"packet_type": "1RTT",
|
||||
"packet_number": 42,
|
||||
"dcil": 4,
|
||||
"dcid": "deadbeef",
|
||||
|
||||
10
qlog/qlog.go
10
qlog/qlog.go
@@ -233,9 +233,8 @@ func (t *connectionTracer) SentPacket(hdr *wire.ExtendedHeader, packetSize proto
|
||||
header.PacketSize = packetSize
|
||||
t.mutex.Lock()
|
||||
t.recordEvent(time.Now(), &eventPacketSent{
|
||||
PacketType: packetType(logging.PacketTypeFromHeader(&hdr.Header)),
|
||||
Header: header,
|
||||
Frames: fs,
|
||||
Header: header,
|
||||
Frames: fs,
|
||||
})
|
||||
t.mutex.Unlock()
|
||||
}
|
||||
@@ -249,9 +248,8 @@ func (t *connectionTracer) ReceivedPacket(hdr *wire.ExtendedHeader, packetSize p
|
||||
header.PacketSize = packetSize
|
||||
t.mutex.Lock()
|
||||
t.recordEvent(time.Now(), &eventPacketReceived{
|
||||
PacketType: packetType(logging.PacketTypeFromHeader(&hdr.Header)),
|
||||
Header: header,
|
||||
Frames: fs,
|
||||
Header: header,
|
||||
Frames: fs,
|
||||
})
|
||||
t.mutex.Unlock()
|
||||
}
|
||||
|
||||
@@ -313,9 +313,9 @@ var _ = Describe("Tracing", func() {
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Name).To(Equal("transport:packet_sent"))
|
||||
ev := entry.Event
|
||||
Expect(ev).To(HaveKeyWithValue("packet_type", "handshake"))
|
||||
Expect(ev).To(HaveKey("header"))
|
||||
hdr := ev["header"].(map[string]interface{})
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_type", "handshake"))
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_size", float64(987)))
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_number", float64(1337)))
|
||||
Expect(hdr).To(HaveKeyWithValue("scid", "04030201"))
|
||||
@@ -338,8 +338,10 @@ var _ = Describe("Tracing", func() {
|
||||
)
|
||||
entry := exportAndParseSingle()
|
||||
ev := entry.Event
|
||||
Expect(ev).To(HaveKeyWithValue("packet_type", "1RTT"))
|
||||
Expect(ev).To(HaveKey("header"))
|
||||
hdr := ev["header"].(map[string]interface{})
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_type", "1RTT"))
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_number", float64(1337)))
|
||||
Expect(ev).To(HaveKey("frames"))
|
||||
frames := ev["frames"].([]interface{})
|
||||
Expect(frames).To(HaveLen(2))
|
||||
@@ -369,9 +371,9 @@ var _ = Describe("Tracing", func() {
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Name).To(Equal("transport:packet_received"))
|
||||
ev := entry.Event
|
||||
Expect(ev).To(HaveKeyWithValue("packet_type", "initial"))
|
||||
Expect(ev).To(HaveKey("header"))
|
||||
hdr := ev["header"].(map[string]interface{})
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_type", "initial"))
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_size", float64(789)))
|
||||
Expect(hdr).To(HaveKeyWithValue("packet_number", float64(1337)))
|
||||
Expect(hdr).To(HaveKeyWithValue("scid", "04030201"))
|
||||
@@ -393,9 +395,9 @@ var _ = Describe("Tracing", func() {
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Name).To(Equal("transport:packet_received"))
|
||||
ev := entry.Event
|
||||
Expect(ev).To(HaveKeyWithValue("packet_type", "retry"))
|
||||
Expect(ev).To(HaveKey("header"))
|
||||
header := ev["header"]
|
||||
Expect(header).To(HaveKeyWithValue("packet_type", "retry"))
|
||||
Expect(header).ToNot(HaveKey("packet_number"))
|
||||
Expect(header).To(HaveKey("version"))
|
||||
Expect(header).To(HaveKey("dcid"))
|
||||
@@ -417,12 +419,12 @@ var _ = Describe("Tracing", func() {
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Name).To(Equal("transport:packet_received"))
|
||||
ev := entry.Event
|
||||
Expect(ev).To(HaveKeyWithValue("packet_type", "version_negotiation"))
|
||||
Expect(ev).To(HaveKey("header"))
|
||||
Expect(ev).ToNot(HaveKey("frames"))
|
||||
Expect(ev).To(HaveKey("supported_versions"))
|
||||
Expect(ev["supported_versions"].([]interface{})).To(Equal([]interface{}{"deadbeef", "decafbad"}))
|
||||
header := ev["header"]
|
||||
Expect(header).To(HaveKeyWithValue("packet_type", "version_negotiation"))
|
||||
Expect(header).ToNot(HaveKey("packet_number"))
|
||||
Expect(header).ToNot(HaveKey("version"))
|
||||
Expect(header).To(HaveKey("dcid"))
|
||||
|
||||
Reference in New Issue
Block a user