Skip to content

Commit fb10d4c

Browse files
eundoosongblack-adder
authored andcommitted
Support tracer env based initialization in hotrod (#1115)
1 parent 732ef79 commit fb10d4c

File tree

12 files changed

+38
-58
lines changed

12 files changed

+38
-58
lines changed

examples/hotrod/README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,11 @@ go run ./main.go all
4949
docker run \
5050
--rm \
5151
--link jaeger \
52+
--env JAEGER_AGENT_HOST=jaeger \
53+
--env JAEGER_AGENT_PORT=6831 \
5254
-p8080-8083:8080-8083 \
53-
jaegertracing/example-hotrod:1.6 \
54-
all \
55-
--jaeger-agent.host-port=jaeger:6831
55+
jaegertracing/example-hotrod:latest \
56+
all
5657
```
5758

5859
Then open http://127.0.0.1:8080

examples/hotrod/cmd/customer.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,9 @@ var customerCmd = &cobra.Command{
3636
logger := log.NewFactory(zapLogger)
3737
server := customer.NewServer(
3838
net.JoinHostPort("0.0.0.0", strconv.Itoa(customerPort)),
39-
tracing.Init("customer", metricsFactory.Namespace("customer", nil), logger, jAgentHostPort),
39+
tracing.Init("customer", metricsFactory, logger),
4040
metricsFactory,
4141
logger,
42-
jAgentHostPort,
4342
)
4443
return logError(zapLogger, server.Run())
4544
},

examples/hotrod/cmd/driver.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,9 @@ var driverCmd = &cobra.Command{
3636
logger := log.NewFactory(zapLogger)
3737
server := driver.NewServer(
3838
net.JoinHostPort("0.0.0.0", strconv.Itoa(driverPort)),
39-
tracing.Init("driver", metricsFactory.Namespace("driver", nil), logger, jAgentHostPort),
39+
tracing.Init("driver", metricsFactory, logger),
4040
metricsFactory,
4141
logger,
42-
jAgentHostPort,
4342
)
4443
return logError(zapLogger, server.Run())
4544
},

examples/hotrod/cmd/frontend.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ var frontendCmd = &cobra.Command{
4242
logger := log.NewFactory(zapLogger)
4343
server := frontend.NewServer(
4444
options,
45-
tracing.Init("frontend", metricsFactory.Namespace("frontend", nil), logger, jAgentHostPort),
45+
tracing.Init("frontend", metricsFactory, logger),
4646
logger,
4747
)
4848
return logError(zapLogger, server.Run())

examples/hotrod/cmd/root.go

-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131

3232
var (
3333
metricsBackend string
34-
jAgentHostPort string
3534
logger *zap.Logger
3635
metricsFactory metrics.Factory
3736

@@ -63,7 +62,6 @@ func Execute() {
6362

6463
func init() {
6564
RootCmd.PersistentFlags().StringVarP(&metricsBackend, "metrics", "m", "expvar", "Metrics backend (expvar|prometheus)")
66-
RootCmd.PersistentFlags().StringVarP(&jAgentHostPort, "jaeger-agent.host-port", "a", "0.0.0.0:6831", "String representing jaeger-agent UDP host:port, or jaeger-collector HTTP endpoint address, e.g. http://localhost:14268/api/traces.")
6765
RootCmd.PersistentFlags().DurationVarP(&fixDBConnDelay, "fix-db-query-delay", "D", 300*time.Millisecond, "Average lagency of MySQL DB query")
6866
RootCmd.PersistentFlags().BoolVarP(&fixDBConnDisableMutex, "fix-disable-db-conn-mutex", "M", false, "Disables the mutex guarding db connection")
6967
RootCmd.PersistentFlags().IntVarP(&fixRouteWorkerPoolSize, "fix-route-worker-pool-size", "W", 3, "Default worker pool size")

examples/hotrod/cmd/route.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ var routeCmd = &cobra.Command{
3636
logger := log.NewFactory(zapLogger)
3737
server := route.NewServer(
3838
net.JoinHostPort("0.0.0.0", strconv.Itoa(routePort)),
39-
tracing.Init("route", metricsFactory.Namespace("route", nil), logger, jAgentHostPort),
39+
tracing.Init("route", metricsFactory, logger),
4040
logger,
4141
)
4242
return logError(zapLogger, server.Run())

examples/hotrod/pkg/tracing/init.go

+11-29
Original file line numberDiff line numberDiff line change
@@ -16,51 +16,33 @@ package tracing
1616

1717
import (
1818
"fmt"
19-
"strings"
2019
"time"
2120

2221
"github.com/opentracing/opentracing-go"
23-
"github.com/uber/jaeger-client-go"
2422
"github.com/uber/jaeger-client-go/config"
2523
"github.com/uber/jaeger-client-go/rpcmetrics"
26-
"github.com/uber/jaeger-client-go/transport"
2724
"github.com/uber/jaeger-lib/metrics"
2825
"go.uber.org/zap"
2926

3027
"github.com/jaegertracing/jaeger/examples/hotrod/pkg/log"
3128
)
3229

3330
// Init creates a new instance of Jaeger tracer.
34-
func Init(serviceName string, metricsFactory metrics.Factory, logger log.Factory, backendHostPort string) opentracing.Tracer {
35-
cfg := config.Configuration{
36-
Sampler: &config.SamplerConfig{
37-
Type: "const",
38-
Param: 1,
39-
},
31+
func Init(serviceName string, metricsFactory metrics.Factory, logger log.Factory) opentracing.Tracer {
32+
cfg, err := config.FromEnv()
33+
if err != nil {
34+
logger.Bg().Fatal("cannot parse Jaeger env vars", zap.Error(err))
4035
}
36+
cfg.ServiceName = serviceName
37+
cfg.Sampler.Type = "const"
38+
cfg.Sampler.Param = 1
39+
4140
// TODO(ys) a quick hack to ensure random generators get different seeds, which are based on current time.
4241
time.Sleep(100 * time.Millisecond)
4342
jaegerLogger := jaegerLoggerAdapter{logger.Bg()}
44-
var sender jaeger.Transport
45-
if strings.HasPrefix(backendHostPort, "http://") {
46-
sender = transport.NewHTTPTransport(
47-
backendHostPort,
48-
transport.HTTPBatchSize(1),
49-
)
50-
} else {
51-
if s, err := jaeger.NewUDPTransport(backendHostPort, 0); err != nil {
52-
logger.Bg().Fatal("cannot initialize UDP sender", zap.Error(err))
53-
} else {
54-
sender = s
55-
}
56-
}
57-
tracer, _, err := cfg.New(
58-
serviceName,
59-
config.Reporter(jaeger.NewRemoteReporter(
60-
sender,
61-
jaeger.ReporterOptions.BufferFlushInterval(1*time.Second),
62-
jaeger.ReporterOptions.Logger(jaegerLogger),
63-
)),
43+
44+
metricsFactory = metricsFactory.Namespace(serviceName, nil)
45+
tracer, _, err := cfg.NewTracer(
6446
config.Logger(jaegerLogger),
6547
config.Metrics(metricsFactory),
6648
config.Observer(rpcmetrics.NewObserver(metricsFactory, rpcmetrics.DefaultNameNormalizer)),

examples/hotrod/services/customer/server.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ type Server struct {
3636
}
3737

3838
// NewServer creates a new customer.Server
39-
func NewServer(hostPort string, tracer opentracing.Tracer, metricsFactory metrics.Factory, logger log.Factory, jAgentHostPort string) *Server {
39+
func NewServer(hostPort string, tracer opentracing.Tracer, metricsFactory metrics.Factory, logger log.Factory) *Server {
4040
return &Server{
4141
hostPort: hostPort,
4242
tracer: tracer,
4343
logger: logger,
4444
database: newDatabase(
45-
tracing.Init("mysql", metricsFactory.Namespace("mysql", nil), logger, jAgentHostPort),
45+
tracing.Init("mysql", metricsFactory, logger),
4646
logger.With(zap.String("component", "mysql")),
4747
),
4848
}

examples/hotrod/services/driver/redis.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ type Redis struct {
3939
errorSimulator
4040
}
4141

42-
func newRedis(metricsFactory metrics.Factory, logger log.Factory, jAgentHostPort string) *Redis {
42+
func newRedis(metricsFactory metrics.Factory, logger log.Factory) *Redis {
4343
return &Redis{
44-
tracer: tracing.Init("redis", metricsFactory.Namespace("redis", nil), logger, jAgentHostPort),
44+
tracer: tracing.Init("redis", metricsFactory, logger),
4545
logger: logger,
4646
}
4747
}

examples/hotrod/services/driver/server.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type Server struct {
3636
}
3737

3838
// NewServer creates a new driver.Server
39-
func NewServer(hostPort string, tracer opentracing.Tracer, metricsFactory metrics.Factory, logger log.Factory, jAgentHostPort string) *Server {
39+
func NewServer(hostPort string, tracer opentracing.Tracer, metricsFactory metrics.Factory, logger log.Factory) *Server {
4040
channelOpts := &tchannel.ChannelOptions{
4141
Tracer: tracer,
4242
}
@@ -52,7 +52,7 @@ func NewServer(hostPort string, tracer opentracing.Tracer, metricsFactory metric
5252
logger: logger,
5353
ch: ch,
5454
server: server,
55-
redis: newRedis(metricsFactory, logger, jAgentHostPort),
55+
redis: newRedis(metricsFactory, logger),
5656
}
5757
}
5858

glide.lock

+10-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import:
1313
- package: go.uber.org/zap
1414
version: ^1
1515
- package: github.com/uber/jaeger-client-go
16-
version: ^2.11.0
16+
version: ^2.15.0
1717
subpackages:
1818
- transport
1919
- package: github.com/uber/jaeger-lib
@@ -58,9 +58,9 @@ import:
5858
subpackages:
5959
- fs
6060
- package: github.com/Shopify/sarama
61-
version: ^1.16.0
61+
version: 1.16.0
6262
- package: github.com/bsm/sarama-cluster
63-
version: ^2.1.13
63+
version: 2.1.13
6464
- package: github.com/gogo/googleapis
6565
version: b23578765ee54ff6bceff57f397d833bf4ca6869
6666
- package: github.com/gogo/protobuf

0 commit comments

Comments
 (0)