qlog the reason phrase of application and transport errors

This commit is contained in:
Marten Seemann
2021-05-03 14:04:03 +07:00
parent 1613809ba2
commit 42ecbf0000
2 changed files with 13 additions and 5 deletions

View File

@@ -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")

View File

@@ -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() {