This repository has been archived by the owner on May 27, 2021. It is now read-only.
forked from DataDog/dd-trace-go
/
option.go
56 lines (44 loc) · 1.44 KB
/
option.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package http
import (
"net/http"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
)
type muxConfig struct{ serviceName string }
// MuxOption represents an option that can be passed to NewServeMux.
type MuxOption func(*muxConfig)
func defaults(cfg *muxConfig) {
cfg.serviceName = "http.router"
}
// WithServiceName sets the given service name for the returned ServeMux.
func WithServiceName(name string) MuxOption {
return func(cfg *muxConfig) {
cfg.serviceName = name
}
}
// A RoundTripperBeforeFunc can be used to modify a span before an http
// RoundTrip is made.
type RoundTripperBeforeFunc func(*http.Request, ddtrace.Span)
// A RoundTripperAfterFunc can be used to modify a span after an http
// RoundTrip is made. It is possible for the http Response to be nil.
type RoundTripperAfterFunc func(*http.Response, ddtrace.Span)
type roundTripperConfig struct {
before RoundTripperBeforeFunc
after RoundTripperAfterFunc
}
// A RoundTripperOption represents an option that can be passed to
// WrapRoundTripper.
type RoundTripperOption func(*roundTripperConfig)
// WithBefore adds a RoundTripperBeforeFunc to the RoundTripper
// config.
func WithBefore(f RoundTripperBeforeFunc) RoundTripperOption {
return func(cfg *roundTripperConfig) {
cfg.before = f
}
}
// WithAfter adds a RoundTripperAfterFunc to the RoundTripper
// config.
func WithAfter(f RoundTripperAfterFunc) RoundTripperOption {
return func(cfg *roundTripperConfig) {
cfg.after = f
}
}