@@ -8,6 +8,7 @@ package tracer
8
8
import (
9
9
gocontext "context"
10
10
"encoding/binary"
11
+ "fmt"
11
12
"log/slog"
12
13
"math"
13
14
"os"
@@ -587,6 +588,10 @@ func (t *tracer) StartSpan(operationName string, options ...ddtrace.StartSpanOpt
587
588
}
588
589
589
590
}
591
+ span .context = newSpanContext (span , context )
592
+ span .setMetric (ext .Pid , float64 (t .pid ))
593
+ span .setMeta ("language" , "go" )
594
+
590
595
// add tags from options
591
596
for k , v := range opts .Tags {
592
597
span .SetTag (k , v )
@@ -595,10 +600,6 @@ func (t *tracer) StartSpan(operationName string, options ...ddtrace.StartSpanOpt
595
600
for k , v := range t .config .globalTags .get () {
596
601
span .SetTag (k , v )
597
602
}
598
- span .context = newSpanContext (span , context )
599
- span .setMetric (ext .Pid , float64 (t .pid ))
600
- span .setMeta ("language" , "go" )
601
-
602
603
if t .config .serviceMappings != nil {
603
604
if newSvc , ok := t .config .serviceMappings [span .Service ]; ok {
604
605
span .Service = newSvc
@@ -648,6 +649,11 @@ func (t *tracer) StartSpan(operationName string, options ...ddtrace.StartSpanOpt
648
649
log .Error ("Abandoned spans channel full, disregarding span." )
649
650
}
650
651
}
652
+ if span .integration == "manual" {
653
+ atomic .AddUint32 (& t .spansStarted , 1 )
654
+ } else {
655
+ t .statsd .Count ("datadog.tracer.spans_started" , 1 , []string {fmt .Sprintf ("integration:%s" , span .integration )}, 1 )
656
+ }
651
657
return span
652
658
}
653
659
0 commit comments