]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Set span errors
authorMatt Joiner <anacrolix@gmail.com>
Fri, 16 Dec 2022 02:22:44 +0000 (13:22 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 16 Dec 2022 02:22:44 +0000 (13:22 +1100)
tracker/server.go
tracker/udp/server/server.go

index 67b46e0c1cc6b15924ffef814e715667aaaa3734..6ef4ec4eec3266190ef85bb55e31a5d77a149faf 100644 (file)
@@ -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)
index c8c9bec364c65a180caa30c6459e21f58d9a27f0..ad97f407a3ec6544cc44c6e8248d745d9d3bdf7a 100644 (file)
@@ -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