From 8fe9fb78aafb280d08186f1d5d1ecd5d837aad5e Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Sun, 8 Jan 2023 17:22:02 +1100 Subject: [PATCH] Add span for udp packet handling --- tracker/udp/server/server.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tracker/udp/server/server.go b/tracker/udp/server/server.go index 6f0fb438..5666e805 100644 --- a/tracker/udp/server/server.go +++ b/tracker/udp/server/server.go @@ -210,19 +210,27 @@ func RunSimple(ctx context.Context, s *Server, pc net.PacketConn, family udp.Add sem := make(chan struct{}, 1000) for { n, addr, err := pc.ReadFrom(b[:]) + ctx, span := tracer.Start(ctx, "handle udp packet") if err != nil { + span.SetStatus(codes.Error, err.Error()) + span.End() return err } select { case <-ctx.Done(): + span.SetStatus(codes.Error, err.Error()) + span.End() return ctx.Err() default: - log.Printf("dropping request from %v: concurrency limit reached", addr) + span.SetStatus(codes.Error, "concurrency limit reached") + span.End() + log.Levelf(log.Debug, "dropping request from %v: concurrency limit reached", addr) continue case sem <- struct{}{}: } b := append([]byte(nil), b[:n]...) go func() { + defer span.End() defer func() { <-sem }() err := s.HandleRequest(ctx, family, addr, b) if err != nil { -- 2.48.1