]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add span for udp packet handling
authorMatt Joiner <anacrolix@gmail.com>
Sun, 8 Jan 2023 06:22:02 +0000 (17:22 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Sun, 8 Jan 2023 06:22:02 +0000 (17:22 +1100)
tracker/udp/server/server.go

index 6f0fb438e28a2e85e939d786edf224fffebcd776..5666e8052be0e0d8b37962dafd094205211fdd20 100644 (file)
@@ -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 {