From 16c7621d9ec6b31bdfef985d84295be97961cc21 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 16 Dec 2022 13:22:44 +1100 Subject: [PATCH] Set span errors --- tracker/server.go | 4 ++++ tracker/udp/server/server.go | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tracker/server.go b/tracker/server.go index 67b46e0c..6ef4ec4e 100644 --- a/tracker/server.go +++ b/tracker/server.go @@ -11,6 +11,7 @@ import ( "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 @@ func (me *AnnounceHandler) Serve( 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 c8c9bec3..ad97f407 100644 --- a/tracker/udp/server/server.go +++ b/tracker/udp/server/server.go @@ -14,6 +14,7 @@ import ( "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 @@ func (me *Server) HandleRequest( 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 -- 2.48.1