@@ -23,6 +23,7 @@ import (
23
23
24
24
"go.opentelemetry.io/collector/component"
25
25
"go.opentelemetry.io/collector/config/configmodels"
26
+ "go.opentelemetry.io/collector/config/configprotocol"
26
27
"go.opentelemetry.io/collector/receiver/jaegerreceiver"
27
28
"go.opentelemetry.io/collector/receiver/opencensusreceiver"
28
29
"go.opentelemetry.io/collector/receiver/otlpreceiver"
@@ -36,7 +37,7 @@ import (
36
37
// an exporter.
37
38
type DataReceiver interface {
38
39
Start (tc * MockTraceConsumer , mc * MockMetricConsumer ) error
39
- Stop ()
40
+ Stop () error
40
41
41
42
// Generate a config string to place in exporter part of collector config
42
43
// so that it can send data to this receiver.
@@ -59,7 +60,7 @@ func (mb *DataReceiverBase) ReportFatalError(err error) {
59
60
}
60
61
61
62
// GetFactory of the specified kind. Returns the factory for a component type.
62
- func (mb * DataReceiverBase ) GetFactory (kind component.Kind , componentType configmodels.Type ) component.Factory {
63
+ func (mb * DataReceiverBase ) GetFactory (_ component.Kind , _ configmodels.Type ) component.Factory {
63
64
return nil
64
65
}
65
66
@@ -75,7 +76,8 @@ func (mb *DataReceiverBase) GetExporters() map[configmodels.DataType]map[configm
75
76
// OCDataReceiver implements OpenCensus format receiver.
76
77
type OCDataReceiver struct {
77
78
DataReceiverBase
78
- receiver * opencensusreceiver.Receiver
79
+ traceReceiver component.TraceReceiver
80
+ metricsReceiver component.MetricsReceiver
79
81
}
80
82
81
83
// Ensure OCDataReceiver implements DataReceiver.
@@ -90,18 +92,31 @@ func NewOCDataReceiver(port int) *OCDataReceiver {
90
92
}
91
93
92
94
func (or * OCDataReceiver ) Start (tc * MockTraceConsumer , mc * MockMetricConsumer ) error {
93
- addr := fmt .Sprintf ("localhost:%d" , or .Port )
95
+ factory := opencensusreceiver.Factory {}
96
+ cfg := factory .CreateDefaultConfig ().(* opencensusreceiver.Config )
97
+ cfg .SetName (or .ProtocolName ())
98
+ cfg .Endpoint = fmt .Sprintf ("localhost:%d" , or .Port )
94
99
var err error
95
- or .receiver , err = opencensusreceiver .New ("opencensus" , "tcp" , addr , tc , mc )
96
- if err != nil {
100
+ if or .traceReceiver , err = factory .CreateTraceReceiver (context .Background (), zap .NewNop (), cfg , tc ); err != nil {
97
101
return err
98
102
}
99
-
100
- return or .receiver .Start (context .Background (), or )
103
+ if or .metricsReceiver , err = factory .CreateMetricsReceiver (zap .NewNop (), cfg , mc ); err != nil {
104
+ return err
105
+ }
106
+ if err = or .traceReceiver .Start (context .Background (), or ); err != nil {
107
+ return err
108
+ }
109
+ return or .metricsReceiver .Start (context .Background (), or )
101
110
}
102
111
103
- func (or * OCDataReceiver ) Stop () {
104
- or .receiver .Shutdown (context .Background ())
112
+ func (or * OCDataReceiver ) Stop () error {
113
+ if err := or .traceReceiver .Shutdown (context .Background ()); err != nil {
114
+ return err
115
+ }
116
+ if err := or .metricsReceiver .Shutdown (context .Background ()); err != nil {
117
+ return err
118
+ }
119
+ return nil
105
120
}
106
121
107
122
func (or * OCDataReceiver ) GenConfigYAMLStr () string {
@@ -128,26 +143,25 @@ func NewJaegerDataReceiver(port int) *JaegerDataReceiver {
128
143
return & JaegerDataReceiver {DataReceiverBase : DataReceiverBase {Port : port }}
129
144
}
130
145
131
- func (jr * JaegerDataReceiver ) Start (tc * MockTraceConsumer , mc * MockMetricConsumer ) error {
132
- jaegerCfg := jaegerreceiver.Configuration {
133
- CollectorGRPCPort : jr .Port ,
146
+ func (jr * JaegerDataReceiver ) Start (tc * MockTraceConsumer , _ * MockMetricConsumer ) error {
147
+ factory := jaegerreceiver.Factory {}
148
+ cfg := factory .CreateDefaultConfig ().(* jaegerreceiver.Config )
149
+ cfg .SetName (jr .ProtocolName ())
150
+ cfg .Protocols ["grpc" ] = & configprotocol.ProtocolServerSettings {
151
+ Endpoint : fmt .Sprintf ("localhost:%d" , jr .Port ),
134
152
}
135
153
var err error
136
154
params := component.ReceiverCreateParams {Logger : zap .NewNop ()}
137
- jr .receiver , err = jaegerreceiver . New ( "jaeger" , & jaegerCfg , tc , params )
155
+ jr .receiver , err = factory . CreateTraceReceiver ( context . Background (), params , cfg , tc )
138
156
if err != nil {
139
157
return err
140
158
}
141
159
142
160
return jr .receiver .Start (context .Background (), jr )
143
161
}
144
162
145
- func (jr * JaegerDataReceiver ) Stop () {
146
- if jr .receiver != nil {
147
- if err := jr .receiver .Shutdown (context .Background ()); err != nil {
148
- log .Printf ("Cannot stop Jaeger receiver: %s" , err .Error ())
149
- }
150
- }
163
+ func (jr * JaegerDataReceiver ) Stop () error {
164
+ return jr .receiver .Shutdown (context .Background ())
151
165
}
152
166
153
167
func (jr * JaegerDataReceiver ) GenConfigYAMLStr () string {
@@ -165,7 +179,8 @@ func (jr *JaegerDataReceiver) ProtocolName() string {
165
179
// OTLPDataReceiver implements OTLP format receiver.
166
180
type OTLPDataReceiver struct {
167
181
DataReceiverBase
168
- receiver * otlpreceiver.Receiver
182
+ traceReceiver component.TraceReceiver
183
+ metricsReceiver component.MetricsReceiver
169
184
}
170
185
171
186
// Ensure OTLPDataReceiver implements DataReceiver.
@@ -180,18 +195,32 @@ func NewOTLPDataReceiver(port int) *OTLPDataReceiver {
180
195
}
181
196
182
197
func (or * OTLPDataReceiver ) Start (tc * MockTraceConsumer , mc * MockMetricConsumer ) error {
183
- addr := fmt .Sprintf ("localhost:%d" , or .Port )
198
+ factory := otlpreceiver.Factory {}
199
+ cfg := factory .CreateDefaultConfig ().(* otlpreceiver.Config )
200
+ cfg .SetName (or .ProtocolName ())
201
+ cfg .Endpoint = fmt .Sprintf ("localhost:%d" , or .Port )
184
202
var err error
185
- or . receiver , err = otlpreceiver . New ( "otlp" , "tcp" , addr , tc , mc )
186
- if err != nil {
203
+ params := component. ReceiverCreateParams { Logger : zap . NewNop ()}
204
+ if or . traceReceiver , err = factory . CreateTraceReceiver ( context . Background (), params , cfg , tc ); err != nil {
187
205
return err
188
206
}
189
-
190
- return or .receiver .Start (context .Background (), or )
207
+ if or .metricsReceiver , err = factory .CreateMetricsReceiver (context .Background (), params , cfg , mc ); err != nil {
208
+ return err
209
+ }
210
+ if err = or .traceReceiver .Start (context .Background (), or ); err != nil {
211
+ return err
212
+ }
213
+ return or .metricsReceiver .Start (context .Background (), or )
191
214
}
192
215
193
- func (or * OTLPDataReceiver ) Stop () {
194
- or .receiver .Shutdown (context .Background ())
216
+ func (or * OTLPDataReceiver ) Stop () error {
217
+ if err := or .traceReceiver .Shutdown (context .Background ()); err != nil {
218
+ return err
219
+ }
220
+ if err := or .metricsReceiver .Shutdown (context .Background ()); err != nil {
221
+ return err
222
+ }
223
+ return nil
195
224
}
196
225
197
226
func (or * OTLPDataReceiver ) GenConfigYAMLStr () string {
@@ -209,7 +238,7 @@ func (or *OTLPDataReceiver) ProtocolName() string {
209
238
// ZipkinDataReceiver implements Zipkin format receiver.
210
239
type ZipkinDataReceiver struct {
211
240
DataReceiverBase
212
- receiver * zipkinreceiver. ZipkinReceiver
241
+ receiver component. TraceReceiver
213
242
}
214
243
215
244
const DefaultZipkinAddressPort = 9411
@@ -218,13 +247,13 @@ func NewZipkinDataReceiver(port int) *ZipkinDataReceiver {
218
247
return & ZipkinDataReceiver {DataReceiverBase : DataReceiverBase {Port : port }}
219
248
}
220
249
221
- func (zr * ZipkinDataReceiver ) Start (tc * MockTraceConsumer , mc * MockMetricConsumer ) error {
222
- var err error
250
+ func (zr * ZipkinDataReceiver ) Start (tc * MockTraceConsumer , _ * MockMetricConsumer ) error {
223
251
factory := zipkinreceiver.Factory {}
224
252
cfg := factory .CreateDefaultConfig ().(* zipkinreceiver.Config )
225
- cfg .NameVal = "zipkin"
253
+ cfg .SetName ( zr . ProtocolName ())
226
254
cfg .Endpoint = fmt .Sprintf ("localhost:%d" , zr .Port )
227
- zr .receiver , err = zipkinreceiver .New (cfg , tc )
255
+ var err error
256
+ zr .receiver , err = factory .CreateTraceReceiver (context .Background (), zap .NewNop (), cfg , tc )
228
257
229
258
if err != nil {
230
259
return err
@@ -233,12 +262,8 @@ func (zr *ZipkinDataReceiver) Start(tc *MockTraceConsumer, mc *MockMetricConsume
233
262
return zr .receiver .Start (context .Background (), zr )
234
263
}
235
264
236
- func (zr * ZipkinDataReceiver ) Stop () {
237
- if zr .receiver != nil {
238
- if err := zr .receiver .Shutdown (context .Background ()); err != nil {
239
- log .Printf ("Cannot stop Zipkin receiver: %s" , err .Error ())
240
- }
241
- }
265
+ func (zr * ZipkinDataReceiver ) Stop () error {
266
+ return zr .receiver .Shutdown (context .Background ())
242
267
}
243
268
244
269
func (zr * ZipkinDataReceiver ) GenConfigYAMLStr () string {
0 commit comments