Skip to content

Commit 2c480a7

Browse files
committed
TUN-6280: Don't wrap qlog connection tracer for gatethering QUIC metrics since we're not writing qlog files.
1 parent 32739e9 commit 2c480a7

File tree

1 file changed

+65
-24
lines changed

1 file changed

+65
-24
lines changed

quic/tracing.go

Lines changed: 65 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package quic
33
import (
44
"context"
55
"net"
6+
"time"
67

78
"github.com/lucas-clemente/quic-go/logging"
8-
"github.com/lucas-clemente/quic-go/qlog"
99
"github.com/rs/zerolog"
1010
)
1111

@@ -40,75 +40,116 @@ func NewServerTracer(logger *zerolog.Logger) logging.Tracer {
4040
}
4141
}
4242

43-
func (t *tracer) TracerForConnection(_ context.Context, p logging.Perspective, odcid logging.ConnectionID) logging.ConnectionTracer {
44-
connID := logging.ConnectionID(odcid).String()
45-
ql := &quicLogger{
46-
logger: t.logger,
47-
connectionID: connID,
48-
}
43+
func (t *tracer) TracerForConnection(_ctx context.Context, _p logging.Perspective, _odcid logging.ConnectionID) logging.ConnectionTracer {
4944
if t.config.isClient {
50-
return newConnTracer(ql, p, odcid, newClientCollector(t.config.index))
45+
return newConnTracer(newClientCollector(t.config.index))
5146
}
52-
return newConnTracer(ql, p, odcid, newServiceCollector())
47+
return newConnTracer(newServiceCollector())
5348
}
5449

5550
func (*tracer) SentPacket(net.Addr, *logging.Header, logging.ByteCount, []logging.Frame) {}
5651
func (*tracer) DroppedPacket(net.Addr, logging.PacketType, logging.ByteCount, logging.PacketDropReason) {
5752
}
5853

59-
// connTracer is a wrapper around https://pkg.go.dev/github.com/lucas-clemente/[email protected]/qlog#NewConnectionTracer to collect metrics
54+
var _ logging.Tracer = (*tracer)(nil)
55+
56+
// connTracer collects connection level metrics
6057
type connTracer struct {
61-
logging.ConnectionTracer
6258
metricsCollector MetricsCollector
63-
connectionID string
6459
}
6560

66-
func newConnTracer(ql *quicLogger, p logging.Perspective, odcid logging.ConnectionID, metricsCollector MetricsCollector) logging.ConnectionTracer {
61+
var _ logging.ConnectionTracer = (*connTracer)(nil)
62+
63+
func newConnTracer(metricsCollector MetricsCollector) logging.ConnectionTracer {
6764
return &connTracer{
68-
qlog.NewConnectionTracer(ql, p, odcid),
69-
metricsCollector,
70-
logging.ConnectionID(odcid).String(),
65+
metricsCollector: metricsCollector,
7166
}
7267
}
7368

7469
func (ct *connTracer) StartedConnection(local, remote net.Addr, srcConnID, destConnID logging.ConnectionID) {
7570
ct.metricsCollector.startedConnection()
76-
ct.ConnectionTracer.StartedConnection(local, remote, srcConnID, destConnID)
7771
}
7872

7973
func (ct *connTracer) ClosedConnection(err error) {
8074
ct.metricsCollector.closedConnection(err)
81-
ct.ConnectionTracer.ClosedConnection(err)
8275
}
8376

8477
func (ct *connTracer) SentPacket(hdr *logging.ExtendedHeader, packetSize logging.ByteCount, ack *logging.AckFrame, frames []logging.Frame) {
8578
ct.metricsCollector.sentPackets(packetSize)
86-
ct.ConnectionTracer.SentPacket(hdr, packetSize, ack, frames)
8779
}
8880

8981
func (ct *connTracer) ReceivedPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, frames []logging.Frame) {
9082
ct.metricsCollector.receivedPackets(size)
91-
ct.ConnectionTracer.ReceivedPacket(hdr, size, frames)
9283
}
9384

9485
func (ct *connTracer) BufferedPacket(pt logging.PacketType) {
9586
ct.metricsCollector.bufferedPackets(pt)
96-
ct.ConnectionTracer.BufferedPacket(pt)
9787
}
9888

9989
func (ct *connTracer) DroppedPacket(pt logging.PacketType, size logging.ByteCount, reason logging.PacketDropReason) {
10090
ct.metricsCollector.droppedPackets(pt, size, reason)
101-
ct.ConnectionTracer.DroppedPacket(pt, size, reason)
10291
}
10392

10493
func (ct *connTracer) LostPacket(level logging.EncryptionLevel, number logging.PacketNumber, reason logging.PacketLossReason) {
10594
ct.metricsCollector.lostPackets(reason)
106-
ct.ConnectionTracer.LostPacket(level, number, reason)
10795
}
10896

10997
func (ct *connTracer) UpdatedMetrics(rttStats *logging.RTTStats, cwnd, bytesInFlight logging.ByteCount, packetsInFlight int) {
11098
ct.metricsCollector.updatedRTT(rttStats)
111-
ct.ConnectionTracer.UpdatedMetrics(rttStats, cwnd, bytesInFlight, packetsInFlight)
99+
}
100+
101+
func (ct *connTracer) NegotiatedVersion(chosen logging.VersionNumber, clientVersions, serverVersions []logging.VersionNumber) {
102+
}
103+
104+
func (ct *connTracer) SentTransportParameters(parameters *logging.TransportParameters) {
105+
}
106+
107+
func (ct *connTracer) ReceivedTransportParameters(parameters *logging.TransportParameters) {
108+
}
109+
110+
func (ct *connTracer) RestoredTransportParameters(parameters *logging.TransportParameters) {
111+
}
112+
113+
func (ct *connTracer) ReceivedVersionNegotiationPacket(header *logging.Header, numbers []logging.VersionNumber) {
114+
}
115+
116+
func (ct *connTracer) ReceivedRetry(header *logging.Header) {
117+
}
118+
119+
func (ct *connTracer) AcknowledgedPacket(level logging.EncryptionLevel, number logging.PacketNumber) {
120+
}
121+
122+
func (ct *connTracer) UpdatedCongestionState(state logging.CongestionState) {
123+
}
124+
125+
func (ct *connTracer) UpdatedPTOCount(value uint32) {
126+
}
127+
128+
func (ct *connTracer) UpdatedKeyFromTLS(level logging.EncryptionLevel, perspective logging.Perspective) {
129+
}
130+
131+
func (ct *connTracer) UpdatedKey(generation logging.KeyPhase, remote bool) {
132+
}
133+
134+
func (ct *connTracer) DroppedEncryptionLevel(level logging.EncryptionLevel) {
135+
}
136+
137+
func (ct *connTracer) DroppedKey(generation logging.KeyPhase) {
138+
}
139+
140+
func (ct *connTracer) SetLossTimer(timerType logging.TimerType, level logging.EncryptionLevel, time time.Time) {
141+
}
142+
143+
func (ct *connTracer) LossTimerExpired(timerType logging.TimerType, level logging.EncryptionLevel) {
144+
}
145+
146+
func (ct *connTracer) LossTimerCanceled() {
147+
}
148+
149+
func (ct *connTracer) Close() {
150+
}
151+
152+
func (ct *connTracer) Debug(name, msg string) {
112153
}
113154

114155
type quicLogger struct {

0 commit comments

Comments
 (0)