From: Matt Joiner Date: Sun, 8 Jan 2023 06:22:02 +0000 (+1100) Subject: Add span for udp packet handling X-Git-Tag: v1.49.0~7^2 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=8fe9fb78aafb280d08186f1d5d1ecd5d837aad5e;p=btrtrc.git Add span for udp packet handling --- 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 {