]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Trace some webrtcNetConn use
authorMatt Joiner <anacrolix@gmail.com>
Mon, 11 Jul 2022 01:38:06 +0000 (11:38 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 12 Jul 2022 06:15:50 +0000 (16:15 +1000)
webrtc.go

index 4a86e89232a8028df5f612d7325ed16fd3bcd4ae..aff1e0a3c5675017b7ff819123aea8ce705d44e2 100644 (file)
--- a/webrtc.go
+++ b/webrtc.go
@@ -1,6 +1,9 @@
 package torrent
 
 import (
+       "go.opentelemetry.io/otel"
+       "go.opentelemetry.io/otel/attribute"
+       "go.opentelemetry.io/otel/trace"
        "net"
        "strconv"
        "time"
@@ -56,13 +59,26 @@ func (me webrtcNetConn) RemoteAddr() net.Addr {
 // PeerConnection or on the channel or some transport?
 
 func (w webrtcNetConn) SetDeadline(t time.Time) error {
+       w.Span.AddEvent("SetDeadline", trace.WithAttributes(attribute.String("time", t.String())))
        return nil
 }
 
 func (w webrtcNetConn) SetReadDeadline(t time.Time) error {
+       w.Span.AddEvent("SetReadDeadline", trace.WithAttributes(attribute.String("time", t.String())))
        return nil
 }
 
 func (w webrtcNetConn) SetWriteDeadline(t time.Time) error {
+       w.Span.AddEvent("SetWriteDeadline", trace.WithAttributes(attribute.String("time", t.String())))
        return nil
 }
+
+func (w webrtcNetConn) Read(b []byte) (n int, err error) {
+       _, span := otel.Tracer(tracerName).Start(w.Context, "Read")
+       defer span.End()
+       span.SetAttributes(attribute.Int("buf_len", len(b)))
+       n, err = w.ReadWriteCloser.Read(b)
+       span.RecordError(err)
+       span.SetAttributes(attribute.Int("bytes_read", n))
+       return
+}