package qlogwriter

Import Path
	github.com/quic-go/quic-go/qlogwriter (on go.dev)

Dependency Relation
	imports 10 packages, and imported by 7 packages

Involved Source Files trace.go writer.go
Package-Level Type Names (total 6)
/* sort by: | */
Event represents a qlog event that can be encoded to JSON. Each event must provide its name and a method to encode itself using a jsontext.Encoder. Encode writes the event's data to the provided jsontext.Encoder Name returns the name of the event, as it should appear in the qlog output github.com/quic-go/quic-go/http3/qlog.DatagramCreated github.com/quic-go/quic-go/http3/qlog.DatagramParsed github.com/quic-go/quic-go/http3/qlog.FrameCreated github.com/quic-go/quic-go/http3/qlog.FrameParsed github.com/quic-go/quic-go/qlog.ALPNInformation github.com/quic-go/quic-go/qlog.CongestionStateUpdated github.com/quic-go/quic-go/qlog.ConnectionClosed github.com/quic-go/quic-go/qlog.DebugEvent github.com/quic-go/quic-go/qlog.ECNStateUpdated github.com/quic-go/quic-go/qlog.KeyDiscarded github.com/quic-go/quic-go/qlog.KeyUpdated github.com/quic-go/quic-go/qlog.LossTimerUpdated github.com/quic-go/quic-go/qlog.MetricsUpdated github.com/quic-go/quic-go/qlog.MTUUpdated github.com/quic-go/quic-go/qlog.PacketBuffered github.com/quic-go/quic-go/qlog.PacketDropped github.com/quic-go/quic-go/qlog.PacketLost github.com/quic-go/quic-go/qlog.PacketReceived github.com/quic-go/quic-go/qlog.PacketSent github.com/quic-go/quic-go/qlog.ParametersSet github.com/quic-go/quic-go/qlog.PTOCountUpdated github.com/quic-go/quic-go/qlog.SpuriousLoss github.com/quic-go/quic-go/qlog.StartedConnection github.com/quic-go/quic-go/qlog.VersionInformation github.com/quic-go/quic-go/qlog.VersionNegotiationReceived github.com/quic-go/quic-go/qlog.VersionNegotiationSent Event : github.com/polarsignals/frostdb/query/logicalplan.Named func Recorder.RecordEvent(Event) func (*Writer).RecordEvent(ev Event)
FileSeq represents a qlog trace using the JSON-SEQ format, https://www.ietf.org/archive/id/draft-ietf-quic-qlog-main-schema-12.html#section-5 qlog event producers can be created by calling AddProducer. The underlying io.WriteCloser is closed when the last producer is removed. (*FileSeq) AddProducer() Recorder (*FileSeq) Run() (*FileSeq) SupportsSchemas(schema string) bool *FileSeq : Trace *FileSeq : github.com/robfig/cron/v3.Job func NewConnectionFileSeq(w io.WriteCloser, isClient bool, odcid ConnectionID, eventSchemas []string) *FileSeq func NewFileSeq(w io.WriteCloser) *FileSeq
Recorder is used to record events to a qlog trace. It is safe for concurrent use by multiple goroutines. ( Recorder) Close() error RecordEvent records a single Event to the trace. It must not be called after Close. *Writer Recorder : github.com/prometheus/common/expfmt.Closer Recorder : io.Closer func (*FileSeq).AddProducer() Recorder func Trace.AddProducer() Recorder func github.com/quic-go/quic-go/internal/ackhandler.NewSentPacketHandler(initialPN protocol.PacketNumber, initialMaxDatagramSize protocol.ByteCount, rttStats *utils.RTTStats, connStats *utils.ConnectionStats, clientAddressValidated bool, enableECN bool, ignorePacketsBelow func(protocol.PacketNumber), pers protocol.Perspective, qlogger Recorder, logger utils.Logger) ackhandler.SentPacketHandler func github.com/quic-go/quic-go/internal/congestion.NewCubicSender(clock congestion.Clock, rttStats *utils.RTTStats, connStats *utils.ConnectionStats, initialMaxDatagramSize protocol.ByteCount, reno bool, qlogger Recorder) *congestion.cubicSender func github.com/quic-go/quic-go/internal/handshake.NewCryptoSetupClient(connID protocol.ConnectionID, tp *wire.TransportParameters, tlsConf *tls.Config, enable0RTT bool, rttStats *utils.RTTStats, qlogger Recorder, logger utils.Logger, version protocol.Version) handshake.CryptoSetup func github.com/quic-go/quic-go/internal/handshake.NewCryptoSetupServer(connID protocol.ConnectionID, localAddr, remoteAddr net.Addr, tp *wire.TransportParameters, tlsConf *tls.Config, allow0RTT bool, rttStats *utils.RTTStats, qlogger Recorder, logger utils.Logger, version protocol.Version) handshake.CryptoSetup
Trace represents a qlog trace that can have multiple event producers. Each producer can record events to the trace independently. When the last producer is closed, the underlying trace is closed as well. AddProducer creates a new Recorder for this trace. Each Recorder can record events independently. SupportsSchemas returns true if the trace supports the given schema. *FileSeq func github.com/quic-go/quic-go.(*Conn).QlogTrace() Trace func github.com/quic-go/quic-go/http3/qlog.DefaultConnectionTracer(ctx context.Context, isClient bool, connID quic.ConnectionID) Trace func github.com/quic-go/quic-go/qlog.DefaultConnectionTracer(_ context.Context, isClient bool, connID qlog.ConnectionID) Trace func github.com/quic-go/quic-go/qlog.DefaultConnectionTracerWithSchemas(_ context.Context, isClient bool, connID qlog.ConnectionID, eventSchemas []string) Trace
(*Writer) Close() error (*Writer) RecordEvent(ev Event) *Writer : Recorder *Writer : github.com/prometheus/common/expfmt.Closer *Writer : io.Closer
Package-Level Functions (total 2)
NewConnectionFileSeq creates a new qlog trace to log connection events.
NewFileSeq creates a new JSON-SEQ qlog trace to log transport events.
Package-Level Constants (only one)
RecordSeparator is the record separator byte for the JSON-SEQ format