...
1 package zipkin
2
3 import (
4 "net/http"
5
6 "github.com/go-kit/log"
7 )
8
9
10 type TracerOption func(o *tracerOptions)
11
12
13
14
15 func Name(name string) TracerOption {
16 return func(o *tracerOptions) {
17 o.name = name
18 }
19 }
20
21
22 func Tags(tags map[string]string) TracerOption {
23 return func(o *tracerOptions) {
24 for k, v := range tags {
25 o.tags[k] = v
26 }
27 }
28 }
29
30
31
32 func Logger(logger log.Logger) TracerOption {
33 return func(o *tracerOptions) {
34 if logger != nil {
35 o.logger = logger
36 }
37 }
38 }
39
40
41
42
43
44
45
46
47 func AllowPropagation(propagate bool) TracerOption {
48 return func(o *tracerOptions) {
49 o.propagate = propagate
50 }
51 }
52
53
54
55 func RequestSampler(sampleFunc func(r *http.Request) bool) TracerOption {
56 return func(o *tracerOptions) {
57 o.requestSampler = sampleFunc
58 }
59 }
60
61 type tracerOptions struct {
62 tags map[string]string
63 name string
64 logger log.Logger
65 propagate bool
66 requestSampler func(r *http.Request) bool
67 }
68
View as plain text