tracker/server.go | 4 ++++ tracker/udp/server/server.go | 10 ++++++++-- diff --git a/tracker/server.go b/tracker/server.go index 67b46e0c1cc6b15924ffef814e715667aaaa3734..6ef4ec4eec3266190ef85bb55e31a5d77a149faf 100644 --- a/tracker/server.go +++ b/tracker/server.go @@ -11,6 +11,7 @@ "github.com/anacrolix/generics" "github.com/anacrolix/log" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/trace" "github.com/anacrolix/torrent/tracker/udp" @@ -117,6 +118,9 @@ ) defer span.End() defer func() { span.SetAttributes(attribute.Int("announce.get_peers.len", len(ret.Peers))) + if ret.Err != nil { + span.SetStatus(codes.Error, ret.Err.Error()) + } }() ret.Err = me.AnnounceTracker.TrackAnnounce(ctx, req, addr) diff --git a/tracker/udp/server/server.go b/tracker/udp/server/server.go index c8c9bec364c65a180caa30c6459e21f58d9a27f0..ad97f407a3ec6544cc44c6e8248d745d9d3bdf7a 100644 --- a/tracker/udp/server/server.go +++ b/tracker/udp/server/server.go @@ -14,6 +14,7 @@ "github.com/anacrolix/dht/v2/krpc" "github.com/anacrolix/generics" "github.com/anacrolix/log" "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/codes" "github.com/anacrolix/torrent/tracker" "github.com/anacrolix/torrent/tracker/udp" @@ -45,13 +46,18 @@ ctx context.Context, family udp.AddrFamily, source RequestSourceAddr, body []byte, -) error { +) (err error) { ctx, span := tracer.Start(ctx, "Server.HandleRequest") defer span.End() + defer func() { + if err != nil { + span.SetStatus(codes.Error, err.Error()) + } + }() var h udp.RequestHeader var r bytes.Reader r.Reset(body) - err := udp.Read(&r, &h) + err = udp.Read(&r, &h) if err != nil { err = fmt.Errorf("reading request header: %w", err) return err