Skip to content

Commit 7ccb80c

Browse files
author
kuba--
committed
Integrate a new jager-client (v2.13.0)
Signed-off-by: kuba-- <kuba@sourced.tech>
1 parent 84dd38b commit 7ccb80c

File tree

5 files changed

+21
-196
lines changed

5 files changed

+21
-196
lines changed

Gopkg.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Gopkg.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
[[constraint]]
3030
name = "github.com/uber/jaeger-client-go"
31-
version = "2.12.0"
31+
version = "2.13.0"
3232

3333
[[constraint]]
3434
name = "gopkg.in/src-d/go-errors.v1"

_example/main.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,17 @@ func main() {
3232
Password: "password1",
3333
}}
3434

35-
if s, err := server.NewDefaultServer(server.Config{
35+
s, err := server.NewDefaultServer(server.Config{
3636
Protocol: "tcp",
3737
Address: "localhost:5123",
3838
Auth: auth,
39-
}, driver); err != nil {
39+
}, driver)
40+
41+
if err != nil {
4042
panic(err)
41-
} else {
42-
s.Start()
4343
}
44+
45+
s.Start()
4446
}
4547

4648
func createTestDatabase() *mem.Database {

server/config.go

Lines changed: 9 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,17 @@
11
package server
22

33
import (
4-
"fmt"
54
"io"
6-
"os"
7-
"strconv"
8-
"strings"
9-
"time"
105

116
opentracing "github.com/opentracing/opentracing-go"
127
jaeger "github.com/uber/jaeger-client-go"
138
jaegercfg "github.com/uber/jaeger-client-go/config"
149
"github.com/uber/jaeger-lib/metrics"
15-
errors "gopkg.in/src-d/go-errors.v1"
1610
"gopkg.in/src-d/go-vitess.v0/mysql"
1711
)
1812

1913
const (
20-
// environment variable names
21-
envServiceName = "JAEGER_SERVICE_NAME"
22-
envDisabled = "JAEGER_DISABLED"
23-
envRPCMetrics = "JAEGER_RPC_METRICS"
24-
envTags = "JAEGER_TAGS"
25-
envSamplerType = "JAEGER_SAMPLER_TYPE"
26-
envSamplerParam = "JAEGER_SAMPLER_PARAM"
27-
envSamplerManagerHostPort = "JAEGER_SAMPLER_MANAGER_HOST_PORT"
28-
envSamplerMaxOperations = "JAEGER_SAMPLER_MAX_OPERATIONS"
29-
envSamplerRefreshInterval = "JAEGER_SAMPLER_REFRESH_INTERVAL"
30-
envReporterMaxQueueSize = "JAEGER_REPORTER_MAX_QUEUE_SIZE"
31-
envReporterFlushInterval = "JAEGER_REPORTER_FLUSH_INTERVAL"
32-
envReporterLogSpans = "JAEGER_REPORTER_LOG_SPANS"
33-
envAgentHost = "JAEGER_AGENT_HOST"
34-
envAgentPort = "JAEGER_AGENT_PORT"
35-
36-
jaegerDefaultUDPSpanServerHost = "localhost"
37-
jaegerDefaultUDPSpanServerPort = 6831
14+
jaegerDefaultServiceName = "go-mysql-server"
3815
)
3916

4017
// Config for the mysql server.
@@ -50,173 +27,17 @@ type Config struct {
5027
// Tracer creates a new tracer for the current configuration. It also returns
5128
// an io.Closer to close the tracer and an error, if any.
5229
func (c Config) Tracer() (opentracing.Tracer, io.Closer, error) {
53-
cfg := &jaegercfg.Configuration{}
54-
55-
serviceName := "go-mysql-server"
56-
if e := os.Getenv(envServiceName); e != "" {
57-
serviceName = e
58-
}
59-
60-
if e := os.Getenv(envRPCMetrics); e != "" {
61-
if value, err := strconv.ParseBool(e); err == nil {
62-
cfg.RPCMetrics = value
63-
} else {
64-
return nil, nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envRPCMetrics, e)
65-
}
66-
}
67-
68-
if e := os.Getenv(envDisabled); e != "" {
69-
if value, err := strconv.ParseBool(e); err == nil {
70-
cfg.Disabled = value
71-
} else {
72-
return nil, nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envDisabled, e)
73-
}
74-
}
75-
76-
if sampler, err := samplerConfigFromEnv(); err == nil {
77-
cfg.Sampler = sampler
78-
} else {
79-
return nil, nil, errors.NewKind("cannot obtain sampler config from env").Wrap(err)
80-
}
81-
82-
if reporter, err := reporterConfigFromEnv(); err == nil {
83-
cfg.Reporter = reporter
84-
} else {
85-
return nil, nil, errors.NewKind("cannot obtain reporter config from env").Wrap(err)
86-
}
87-
88-
var opts = []jaegercfg.Option{
89-
jaegercfg.Metrics(metrics.NullFactory),
90-
jaegercfg.Logger(jaeger.StdLogger),
91-
}
92-
if e := os.Getenv(envTags); e != "" {
93-
tags := parseTags(e)
94-
for _, tag := range tags {
95-
opts = append(opts, jaegercfg.Tag(tag.Key, tag.Value))
96-
}
97-
}
98-
99-
tracer, closer, err := cfg.New(serviceName, opts...)
30+
cfg, err := jaegercfg.FromEnv()
10031
if err != nil {
101-
return nil, nil, errors.NewKind("Could not initialize jaeger tracer").Wrap(err)
102-
}
103-
opentracing.SetGlobalTracer(tracer)
104-
105-
return tracer, closer, err
106-
}
107-
108-
// samplerConfigFromEnv creates a new SamplerConfig based on the environment variables
109-
func samplerConfigFromEnv() (*jaegercfg.SamplerConfig, error) {
110-
sc := &jaegercfg.SamplerConfig{}
111-
112-
if e := os.Getenv(envSamplerType); e != "" {
113-
sc.Type = e
114-
}
115-
116-
if e := os.Getenv(envSamplerParam); e != "" {
117-
if value, err := strconv.ParseFloat(e, 64); err == nil {
118-
sc.Param = value
119-
} else {
120-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envSamplerParam, e)
121-
}
122-
}
123-
124-
if e := os.Getenv(envSamplerManagerHostPort); e != "" {
125-
sc.SamplingServerURL = e
126-
}
127-
128-
if e := os.Getenv(envSamplerMaxOperations); e != "" {
129-
if value, err := strconv.ParseInt(e, 10, 0); err == nil {
130-
sc.MaxOperations = int(value)
131-
} else {
132-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envSamplerMaxOperations, e)
133-
}
32+
return nil, nil, err
13433
}
13534

136-
if e := os.Getenv(envSamplerRefreshInterval); e != "" {
137-
if value, err := time.ParseDuration(e); err == nil {
138-
sc.SamplingRefreshInterval = value
139-
} else {
140-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envSamplerRefreshInterval, e)
141-
}
35+
if cfg.ServiceName == "" {
36+
cfg.ServiceName = jaegerDefaultServiceName
14237
}
14338

144-
return sc, nil
145-
}
146-
147-
// reporterConfigFromEnv creates a new ReporterConfig based on the environment variables
148-
func reporterConfigFromEnv() (*jaegercfg.ReporterConfig, error) {
149-
rc := &jaegercfg.ReporterConfig{}
150-
151-
if e := os.Getenv(envReporterMaxQueueSize); e != "" {
152-
if value, err := strconv.ParseInt(e, 10, 0); err == nil {
153-
rc.QueueSize = int(value)
154-
} else {
155-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envReporterMaxQueueSize, e)
156-
}
157-
}
158-
159-
if e := os.Getenv(envReporterFlushInterval); e != "" {
160-
if value, err := time.ParseDuration(e); err == nil {
161-
rc.BufferFlushInterval = value
162-
} else {
163-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envReporterFlushInterval, e)
164-
}
165-
}
166-
167-
if e := os.Getenv(envReporterLogSpans); e != "" {
168-
if value, err := strconv.ParseBool(e); err == nil {
169-
rc.LogSpans = value
170-
} else {
171-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envReporterLogSpans, e)
172-
}
173-
}
174-
175-
host := jaegerDefaultUDPSpanServerHost
176-
if e := os.Getenv(envAgentHost); e != "" {
177-
host = e
178-
}
179-
180-
port := jaegerDefaultUDPSpanServerPort
181-
if e := os.Getenv(envAgentPort); e != "" {
182-
if value, err := strconv.ParseInt(e, 10, 0); err == nil {
183-
port = int(value)
184-
} else {
185-
return nil, errors.NewKind("cannot parse env var %s=%s").Wrap(err, envAgentPort, e)
186-
}
187-
}
188-
189-
// the side effect of this is that we are building the default value, even if none of the env vars
190-
// were not explicitly passed
191-
rc.LocalAgentHostPort = fmt.Sprintf("%s:%d", host, port)
192-
193-
return rc, nil
194-
}
195-
196-
// parseTags parses the given string into a collection of Tags.
197-
// Spec for this value:
198-
// - comma separated list of key=value
199-
// - value can be specified using the notation ${envVar:defaultValue}, where `envVar`
200-
// is an environment variable and `defaultValue` is the value to use in case the env var is not set
201-
func parseTags(sTags string) []opentracing.Tag {
202-
pairs := strings.Split(sTags, ",")
203-
tags := make([]opentracing.Tag, 0)
204-
for _, p := range pairs {
205-
kv := strings.SplitN(p, "=", 2)
206-
k, v := strings.TrimSpace(kv[0]), strings.TrimSpace(kv[1])
207-
208-
if strings.HasPrefix(v, "${") && strings.HasSuffix(v, "}") {
209-
ed := strings.SplitN(v[2:len(v)-1], ":", 2)
210-
e, d := ed[0], ed[1]
211-
v = os.Getenv(e)
212-
if v == "" && d != "" {
213-
v = d
214-
}
215-
}
216-
217-
tag := opentracing.Tag{Key: k, Value: v}
218-
tags = append(tags, tag)
219-
}
220-
221-
return tags
39+
return cfg.NewTracer(
40+
jaegercfg.Logger(jaeger.StdLogger),
41+
jaegercfg.Metrics(metrics.NullFactory),
42+
)
22243
}

server/server.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package server
33
import (
44
"io"
55

6+
opentracing "github.com/opentracing/opentracing-go"
67
"gopkg.in/src-d/go-mysql-server.v0"
78

89
"gopkg.in/src-d/go-vitess.v0/mysql"
@@ -26,6 +27,7 @@ func NewServer(cfg Config, e *sqle.Engine, sb SessionBuilder) (*Server, error) {
2627
if err != nil {
2728
return nil, err
2829
}
30+
opentracing.SetGlobalTracer(tracer)
2931

3032
handler := NewHandler(e, NewSessionManager(sb, tracer))
3133
l, err := mysql.NewListener(cfg.Protocol, cfg.Address, cfg.Auth, handler)

0 commit comments

Comments
 (0)