@@ -21,8 +21,10 @@ import (
21
21
"os/signal"
22
22
"syscall"
23
23
24
+ "github.com/pkg/errors"
24
25
"github.com/spf13/cobra"
25
26
"github.com/spf13/viper"
27
+ "github.com/uber/jaeger-lib/metrics"
26
28
"go.uber.org/zap"
27
29
28
30
"github.com/jaegertracing/jaeger/cmd/env"
@@ -35,6 +37,7 @@ import (
35
37
pMetrics "github.com/jaegertracing/jaeger/pkg/metrics"
36
38
"github.com/jaegertracing/jaeger/pkg/version"
37
39
"github.com/jaegertracing/jaeger/plugin/storage"
40
+ "github.com/jaegertracing/jaeger/storage/spanstore"
38
41
)
39
42
40
43
func main () {
@@ -85,43 +88,7 @@ func main() {
85
88
if err != nil {
86
89
logger .Fatal ("Failed to create span writer" , zap .Error (err ))
87
90
}
88
- unmarshaller := app .UnmarshallerFromType (options .Encoding )
89
- spParams := processor.SpanProcessorParams {
90
- Writer : spanWriter ,
91
- Unmarshaller : unmarshaller ,
92
- }
93
- spanProcessor := processor .NewSpanProcessor (spParams )
94
-
95
- consumerConfig := consumer.Configuration {
96
- Brokers : options .Brokers ,
97
- Topic : options .Topic ,
98
- GroupID : options .GroupID ,
99
- }
100
- saramaConsumer , err := consumerConfig .NewConsumer ()
101
- if err != nil {
102
- logger .Fatal ("Failed to create sarama consumer" , zap .Error (err ))
103
- }
104
-
105
- factoryParams := spanconsumer.ProcessorFactoryParams {
106
- Topic : options .Topic ,
107
- Parallelism : options .Parallelism ,
108
- SaramaConsumer : saramaConsumer ,
109
- BaseProcessor : spanProcessor ,
110
- Logger : logger ,
111
- Factory : metricsFactory ,
112
- }
113
- processorFactory , err := spanconsumer .NewProcessorFactory (factoryParams )
114
- if err != nil {
115
- logger .Fatal ("Failed to create processor factory" , zap .Error (err ))
116
- }
117
-
118
- consumerParams := spanconsumer.Params {
119
- InternalConsumer : saramaConsumer ,
120
- ProcessorFactory : * processorFactory ,
121
- Factory : metricsFactory ,
122
- Logger : logger ,
123
- }
124
- kafkaConsumer , err := spanconsumer .New (consumerParams )
91
+ kafkaConsumer , err := newConsumer (options , spanWriter , logger , metricsFactory )
125
92
if err != nil {
126
93
logger .Fatal ("Unable to set up consumer" , zap .Error (err ))
127
94
}
@@ -158,3 +125,44 @@ func main() {
158
125
os .Exit (1 )
159
126
}
160
127
}
128
+
129
+ func newConsumer (options app.Options , spanWriter spanstore.Writer , logger * zap.Logger , metricsFactory metrics.Factory ) (* spanconsumer.Consumer , error ) {
130
+ unmarshaller := app .UnmarshallerFromType (options .Encoding )
131
+ spParams := processor.SpanProcessorParams {
132
+ Writer : spanWriter ,
133
+ Unmarshaller : unmarshaller ,
134
+ }
135
+ spanProcessor := processor .NewSpanProcessor (spParams )
136
+
137
+ consumerConfig := consumer.Configuration {
138
+ Brokers : options .Brokers ,
139
+ Topic : options .Topic ,
140
+ GroupID : options .GroupID ,
141
+ }
142
+ saramaConsumer , err := consumerConfig .NewConsumer ()
143
+ if err != nil {
144
+ return nil , errors .Wrap (err , "Failed to create sarama consumer" )
145
+ }
146
+
147
+ factoryParams := spanconsumer.ProcessorFactoryParams {
148
+ Topic : options .Topic ,
149
+ Parallelism : options .Parallelism ,
150
+ SaramaConsumer : saramaConsumer ,
151
+ BaseProcessor : spanProcessor ,
152
+ Logger : logger ,
153
+ Factory : metricsFactory ,
154
+ }
155
+ processorFactory , err := spanconsumer .NewProcessorFactory (factoryParams )
156
+ if err != nil {
157
+ return nil , errors .Wrap (err , "Failed to create processor factory" )
158
+ }
159
+
160
+ consumerParams := spanconsumer.Params {
161
+ InternalConsumer : saramaConsumer ,
162
+ ProcessorFactory : * processorFactory ,
163
+ Factory : metricsFactory ,
164
+ Logger : logger ,
165
+ }
166
+
167
+ return spanconsumer .New (consumerParams )
168
+ }
0 commit comments