log the size of buffered packets (#3571)

This commit is contained in:
Marten Seemann
2022-10-11 12:27:26 +03:00
committed by GitHub
parent 438942b888
commit fe277dc663
11 changed files with 28 additions and 21 deletions

View File

@@ -227,6 +227,7 @@ func (e eventVersionNegotiationReceived) MarshalJSONObject(enc *gojay.Encoder) {
type eventPacketBuffered struct {
PacketType logging.PacketType
PacketSize protocol.ByteCount
}
func (e eventPacketBuffered) Category() category { return categoryTransport }
@@ -236,6 +237,7 @@ func (e eventPacketBuffered) IsNil() bool { return false }
func (e eventPacketBuffered) MarshalJSONObject(enc *gojay.Encoder) {
//nolint:gosimple
enc.ObjectKey("header", packetHeaderWithType{PacketType: e.PacketType})
enc.ObjectKey("raw", rawInfo{Length: e.PacketSize})
enc.StringKey("trigger", "keys_unavailable")
}

View File

@@ -354,9 +354,12 @@ func (t *connectionTracer) ReceivedVersionNegotiationPacket(dest, src logging.Ar
t.mutex.Unlock()
}
func (t *connectionTracer) BufferedPacket(pt logging.PacketType) {
func (t *connectionTracer) BufferedPacket(pt logging.PacketType, size protocol.ByteCount) {
t.mutex.Lock()
t.recordEvent(time.Now(), &eventPacketBuffered{PacketType: pt})
t.recordEvent(time.Now(), &eventPacketBuffered{
PacketType: pt,
PacketSize: size,
})
t.mutex.Unlock()
}

View File

@@ -610,7 +610,7 @@ var _ = Describe("Tracing", func() {
})
It("records buffered packets", func() {
tracer.BufferedPacket(logging.PacketTypeHandshake)
tracer.BufferedPacket(logging.PacketTypeHandshake, 1337)
entry := exportAndParseSingle()
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
Expect(entry.Name).To(Equal("transport:packet_buffered"))
@@ -619,6 +619,8 @@ var _ = Describe("Tracing", func() {
hdr := ev["header"].(map[string]interface{})
Expect(hdr).To(HaveLen(1))
Expect(hdr).To(HaveKeyWithValue("packet_type", "handshake"))
Expect(ev).To(HaveKey("raw"))
Expect(ev["raw"].(map[string]interface{})).To(HaveKeyWithValue("length", float64(1337)))
Expect(ev).To(HaveKeyWithValue("trigger", "keys_unavailable"))
})