@@ -10,17 +10,21 @@ import (
10
10
"go.opentelemetry.io/otel/trace"
11
11
)
12
12
13
- // HTTPMW adds tracing to http routes.
14
- func HTTPMW (tracerProvider trace.TracerProvider ) func (http.Handler ) http.Handler {
13
+ // Middleware adds tracing to http routes.
14
+ func Middleware (tracerProvider trace.TracerProvider ) func (http.Handler ) http.Handler {
15
+ var tracer trace.Tracer
16
+ if tracerProvider != nil {
17
+ tracer = tracerProvider .Tracer (TracerName )
18
+ }
15
19
return func (next http.Handler ) http.Handler {
16
20
return http .HandlerFunc (func (rw http.ResponseWriter , r * http.Request ) {
17
- if tracerProvider == nil {
21
+ if tracer == nil {
18
22
next .ServeHTTP (rw , r )
19
23
return
20
24
}
21
25
22
26
// start span with default span name. Span name will be updated to "method route" format once request finishes.
23
- ctx , span := tracerProvider . Tracer ( "" ) .Start (r .Context (), fmt .Sprintf ("%s %s" , r .Method , r .RequestURI ))
27
+ ctx , span := tracer .Start (r .Context (), fmt .Sprintf ("%s %s" , r .Method , r .RequestURI ))
24
28
defer span .End ()
25
29
r = r .WithContext (ctx )
26
30
@@ -59,5 +63,5 @@ func EndHTTPSpan(r *http.Request, status int, span trace.Span) {
59
63
}
60
64
61
65
func StartSpan (ctx context.Context , opts ... trace.SpanStartOption ) (context.Context , trace.Span ) {
62
- return trace .SpanFromContext (ctx ).TracerProvider ().Tracer ("" ).Start (ctx , FuncNameSkip (1 ), opts ... )
66
+ return trace .SpanFromContext (ctx ).TracerProvider ().Tracer (TracerName ).Start (ctx , FuncNameSkip (1 ), opts ... )
63
67
}
0 commit comments