Skip to content

Commit 2497d96

Browse files
[chore][extension/encoding] add test cases covering encoding extension (#28683)
**Description:** This PR does the following: - Test cases for all the known encoding extensions - Add extensions to builder and update components.go - Run `make crosslink` I believe we can use this extension for `pulsarreceiver` for now and see how it performs in production. I will raise a follow-up PR after this one. **Link to tracking Issue:** #28686 --------- Co-authored-by: Antoine Toulme <[email protected]>
1 parent 5946d3c commit 2497d96

File tree

16 files changed

+317
-52
lines changed

16 files changed

+317
-52
lines changed

cmd/otelcontribcol/builder-config.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ extensions:
3131
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage
3232
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.91.0
3333
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/dbstorage
34+
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension v0.91.0
35+
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension
36+
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jaegerencodingextension v0.91.0
37+
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jaegerencodingextension
38+
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jsonlogencodingextension v0.91.0
39+
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jsonlogencodingextension
40+
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/textencodingextension v0.91.0
41+
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/textencodingextension
42+
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/zipkinencodingextension v0.91.0
43+
import: github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/zipkinencodingextension
3444

3545
exporters:
3646
- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.91.0
@@ -428,6 +438,12 @@ replaces:
428438
- github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/azure => ../../pkg/translator/azure
429439
- github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/skywalking => ../../pkg/translator/skywalking
430440
- github.com/open-telemetry/opentelemetry-collector-contrib/internal/collectd => ../../internal/collectd
441+
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding => ../../extension/encoding
442+
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension => ../../extension/encoding/otlpencodingextension
443+
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/zipkinencodingextension => ../../extension/encoding/zipkinencodingextension
444+
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jsonlogencodingextension => ../../extension/encoding/jsonlogencodingextension
445+
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/textencodingextension => ../../extension/encoding/textencodingextension
446+
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jaegerencodingextension => ../../extension/encoding/jaegerencodingextension
431447
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/remotetapextension => ../../extension/remotetapextension
432448
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/opampextension => ../../extension/opampextension
433449
- github.com/open-telemetry/opentelemetry-collector-contrib/testbed/mockdatasenders/mockdatadogagentexporter => ../../testbed/mockdatasenders/mockdatadogagentexporter

cmd/otelcontribcol/components.go

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

cmd/otelcontribcol/extensions_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,21 @@ func TestDefaultExtensions(t *testing.T) {
215215
return extFactories["jaegerremotesampling"].CreateDefaultConfig().(*jaegerremotesampling.Config)
216216
},
217217
},
218+
{
219+
extension: "otlp_encoding",
220+
},
221+
{
222+
extension: "text_encoding",
223+
},
224+
{
225+
extension: "jaeger_encoding",
226+
},
227+
{
228+
extension: "json_log_encoding",
229+
},
230+
{
231+
extension: "zipkin_encoding",
232+
},
218233
{
219234
extension: "remotetap",
220235
getConfigFn: func() component.Config {

cmd/otelcontribcol/go.mod

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,11 @@ require (
5959
github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy v0.91.0
6060
github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.91.0
6161
github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.91.0
62+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jaegerencodingextension v0.91.0
63+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jsonlogencodingextension v0.91.0
64+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension v0.91.0
65+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/textencodingextension v0.91.0
66+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/zipkinencodingextension v0.91.0
6267
github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.91.0
6368
github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.91.0
6469
github.com/open-telemetry/opentelemetry-collector-contrib/extension/httpforwarder v0.91.0
@@ -524,6 +529,7 @@ require (
524529
github.com/nginxinc/nginx-prometheus-exporter v0.8.1-0.20201110005315-f5a5f8086c19 // indirect
525530
github.com/oklog/ulid/v2 v2.1.0 // indirect
526531
github.com/open-telemetry/opamp-go v0.10.0 // indirect
532+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding v0.91.0 // indirect
527533
github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.91.0 // indirect
528534
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.91.0 // indirect
529535
github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.91.0 // indirect
@@ -1163,6 +1169,18 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator
11631169

11641170
replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/collectd => ../../internal/collectd
11651171

1172+
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding => ../../extension/encoding
1173+
1174+
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/otlpencodingextension => ../../extension/encoding/otlpencodingextension
1175+
1176+
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/zipkinencodingextension => ../../extension/encoding/zipkinencodingextension
1177+
1178+
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jsonlogencodingextension => ../../extension/encoding/jsonlogencodingextension
1179+
1180+
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/textencodingextension => ../../extension/encoding/textencodingextension
1181+
1182+
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/encoding/jaegerencodingextension => ../../extension/encoding/jaegerencodingextension
1183+
11661184
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/remotetapextension => ../../extension/remotetapextension
11671185

11681186
replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/opampextension => ../../extension/opampextension

extension/encoding/go.mod

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ require (
88
)
99

1010
require (
11+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
1112
github.com/gogo/protobuf v1.3.2 // indirect
1213
github.com/golang/protobuf v1.5.3 // indirect
1314
github.com/hashicorp/go-version v1.6.0 // indirect
@@ -20,6 +21,7 @@ require (
2021
github.com/mitchellh/reflectwalk v1.0.2 // indirect
2122
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
2223
github.com/modern-go/reflect2 v1.0.2 // indirect
24+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
2325
go.opentelemetry.io/collector/component v0.91.0 // indirect
2426
go.opentelemetry.io/collector/config/configtelemetry v0.91.0 // indirect
2527
go.opentelemetry.io/collector/confmap v0.91.0 // indirect
@@ -30,9 +32,9 @@ require (
3032
go.uber.org/multierr v1.11.0 // indirect
3133
go.uber.org/zap v1.26.0 // indirect
3234
golang.org/x/net v0.18.0 // indirect
33-
golang.org/x/sys v0.14.0 // indirect
35+
golang.org/x/sys v0.15.0 // indirect
3436
golang.org/x/text v0.14.0 // indirect
35-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
37+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect
3638
google.golang.org/grpc v1.59.0 // indirect
3739
google.golang.org/protobuf v1.31.0 // indirect
3840
)

extension/encoding/go.sum

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

extension/encoding/jaegerencodingextension/extension_test.go

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,48 @@ import (
99

1010
"github.com/stretchr/testify/require"
1111
"go.opentelemetry.io/collector/component/componenttest"
12+
"go.opentelemetry.io/collector/extension"
13+
"go.opentelemetry.io/collector/extension/extensiontest"
1214
)
1315

1416
func TestExtension_Start(t *testing.T) {
15-
j := &jaegerExtension{
16-
config: createDefaultConfig().(*Config),
17+
tests := []struct {
18+
name string
19+
getExtension func() (extension.Extension, error)
20+
expectedErr string
21+
}{
22+
{
23+
name: "jaegerProtobuf",
24+
getExtension: func() (extension.Extension, error) {
25+
factory := NewFactory()
26+
return factory.CreateExtension(context.Background(), extensiontest.NewNopCreateSettings(), factory.CreateDefaultConfig())
27+
},
28+
},
29+
{
30+
name: "jaeger_invalid",
31+
getExtension: func() (extension.Extension, error) {
32+
factory := NewFactory()
33+
cfg := factory.CreateDefaultConfig()
34+
cfg.(*Config).Protocol = "xyz"
35+
return factory.CreateExtension(context.Background(), extensiontest.NewNopCreateSettings(), cfg)
36+
},
37+
expectedErr: "unsupported protocol: \"xyz\"",
38+
},
39+
}
40+
for _, test := range tests {
41+
t.Run(test.name, func(t *testing.T) {
42+
ext, err := test.getExtension()
43+
if test.expectedErr != "" && err != nil {
44+
require.ErrorContains(t, err, test.expectedErr)
45+
} else {
46+
require.NoError(t, err)
47+
}
48+
err = ext.Start(context.Background(), componenttest.NewNopHost())
49+
if test.expectedErr != "" && err != nil {
50+
require.ErrorContains(t, err, test.expectedErr)
51+
} else {
52+
require.NoError(t, err)
53+
}
54+
})
1755
}
18-
err := j.Start(context.Background(), componenttest.NewNopHost())
19-
require.NoError(t, err)
2056
}

extension/encoding/jsonlogencodingextension/go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
)
1313

1414
require (
15-
github.com/davecgh/go-spew v1.1.1 // indirect
15+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
1616
github.com/gogo/protobuf v1.3.2 // indirect
1717
github.com/golang/protobuf v1.5.3 // indirect
1818
github.com/hashicorp/go-version v1.6.0 // indirect
@@ -24,7 +24,7 @@ require (
2424
github.com/mitchellh/reflectwalk v1.0.2 // indirect
2525
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
2626
github.com/modern-go/reflect2 v1.0.2 // indirect
27-
github.com/pmezard/go-difflib v1.0.0 // indirect
27+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
2828
go.opentelemetry.io/collector/config/configtelemetry v0.91.0 // indirect
2929
go.opentelemetry.io/collector/confmap v0.91.0 // indirect
3030
go.opentelemetry.io/collector/featuregate v1.0.0 // indirect
@@ -34,9 +34,9 @@ require (
3434
go.uber.org/multierr v1.11.0 // indirect
3535
go.uber.org/zap v1.26.0 // indirect
3636
golang.org/x/net v0.18.0 // indirect
37-
golang.org/x/sys v0.14.0 // indirect
37+
golang.org/x/sys v0.15.0 // indirect
3838
golang.org/x/text v0.14.0 // indirect
39-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
39+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect
4040
google.golang.org/grpc v1.59.0 // indirect
4141
google.golang.org/protobuf v1.31.0 // indirect
4242
gopkg.in/yaml.v3 v3.0.1 // indirect

0 commit comments

Comments
 (0)