From 42ecbf0000381975178959c7a2da529526d55289 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 3 May 2021 14:04:03 +0700 Subject: [PATCH] qlog the reason phrase of application and transport errors --- qlog/event.go | 2 ++ qlog/qlog_test.go | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/qlog/event.go b/qlog/event.go index f15eae848..8427b6e22 100644 --- a/qlog/event.go +++ b/qlog/event.go @@ -138,6 +138,7 @@ func (e eventConnectionClosed) MarshalJSONObject(enc *gojay.Encoder) { } enc.StringKey("owner", owner.String()) enc.Uint64Key("application_code", uint64(applicationErr.ErrorCode)) + enc.StringKey("reason", applicationErr.ErrorMessage) case errors.As(e.e, &transportErr): owner := ownerLocal if transportErr.Remote { @@ -145,6 +146,7 @@ func (e eventConnectionClosed) MarshalJSONObject(enc *gojay.Encoder) { } enc.StringKey("owner", owner.String()) enc.StringKey("connection_code", transportError(transportErr.ErrorCode).String()) + enc.StringKey("reason", transportErr.ErrorMessage) case errors.As(e.e, &versionNegotiationErr): enc.StringKey("owner", ownerRemote.String()) enc.StringKey("trigger", "version_negotiation") diff --git a/qlog/qlog_test.go b/qlog/qlog_test.go index f6ec23b8c..f43390c4c 100644 --- a/qlog/qlog_test.go +++ b/qlog/qlog_test.go @@ -244,27 +244,33 @@ var _ = Describe("Tracing", func() { It("records application errors", func() { tracer.ClosedConnection(&quic.ApplicationError{ - Remote: true, - ErrorCode: 1337, + Remote: true, + ErrorCode: 1337, + ErrorMessage: "foobar", }) entry := exportAndParseSingle() Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond))) Expect(entry.Name).To(Equal("transport:connection_closed")) ev := entry.Event - Expect(ev).To(HaveLen(2)) + Expect(ev).To(HaveLen(3)) Expect(ev).To(HaveKeyWithValue("owner", "remote")) Expect(ev).To(HaveKeyWithValue("application_code", float64(1337))) + Expect(ev).To(HaveKeyWithValue("reason", "foobar")) }) It("records transport errors", func() { - tracer.ClosedConnection(&quic.TransportError{ErrorCode: qerr.AEADLimitReached}) + tracer.ClosedConnection(&quic.TransportError{ + ErrorCode: qerr.AEADLimitReached, + ErrorMessage: "foobar", + }) entry := exportAndParseSingle() Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond))) Expect(entry.Name).To(Equal("transport:connection_closed")) ev := entry.Event - Expect(ev).To(HaveLen(2)) + Expect(ev).To(HaveLen(3)) Expect(ev).To(HaveKeyWithValue("owner", "local")) Expect(ev).To(HaveKeyWithValue("connection_code", "aead_limit_reached")) + Expect(ev).To(HaveKeyWithValue("reason", "foobar")) }) It("records sent transport parameters", func() {