Skip to content

Commit 84ef1d5

Browse files
committed
[chore] Adapt to configoptional changes
1 parent a4ba143 commit 84ef1d5

File tree

3 files changed

+58
-12
lines changed

3 files changed

+58
-12
lines changed

cmd/golden/main.go

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212

1313
"go.opentelemetry.io/collector/component"
1414
"go.opentelemetry.io/collector/component/componenttest"
15+
"go.opentelemetry.io/collector/config/configoptional"
16+
"go.opentelemetry.io/collector/confmap"
1517
"go.opentelemetry.io/collector/receiver"
1618
"go.opentelemetry.io/collector/receiver/otlpreceiver"
1719
noopmetric "go.opentelemetry.io/otel/metric/noop"
@@ -21,6 +23,16 @@ import (
2123
"github.com/open-telemetry/opentelemetry-collector-contrib/cmd/golden/internal"
2224
)
2325

26+
// InsertDefault is a helper function to insert a default value for a configoptional.Optional type.
27+
func InsertDefault[T any](opt *configoptional.Optional[T]) error {
28+
if opt.HasValue() {
29+
return nil
30+
}
31+
32+
empty := confmap.NewFromStringMap(map[string]any{})
33+
return empty.Unmarshal(opt)
34+
}
35+
2436
func main() {
2537
if err := run(os.Args); err != nil {
2638
log.Fatal(err)
@@ -41,14 +53,17 @@ func run(args []string) error {
4153
factory := otlpreceiver.NewFactory()
4254
receiverConfig := factory.CreateDefaultConfig().(*otlpreceiver.Config)
4355
if cfg.OTLPHTTPEndoint != "" {
44-
receiverConfig.HTTP.ServerConfig.Endpoint = cfg.OTLPHTTPEndoint
45-
} else {
46-
receiverConfig.HTTP = nil
56+
if err := InsertDefault(&receiverConfig.HTTP); err != nil {
57+
return err
58+
}
59+
receiverConfig.HTTP.Get().ServerConfig.Endpoint = cfg.OTLPHTTPEndoint
4760
}
61+
4862
if cfg.OTLPEndpoint != "" {
49-
receiverConfig.GRPC.NetAddr.Endpoint = cfg.OTLPEndpoint
50-
} else {
51-
receiverConfig.GRPC = nil
63+
if err := InsertDefault(&receiverConfig.GRPC); err != nil {
64+
return err
65+
}
66+
receiverConfig.GRPC.Get().NetAddr.Endpoint = cfg.OTLPEndpoint
5267
}
5368

5469
logger, err := zap.NewDevelopment()

receiver/jmxreceiver/receiver.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import (
1515

1616
"go.opentelemetry.io/collector/component"
1717
"go.opentelemetry.io/collector/config/confignet"
18+
"go.opentelemetry.io/collector/config/configoptional"
19+
"go.opentelemetry.io/collector/confmap"
1820
"go.opentelemetry.io/collector/consumer"
1921
"go.opentelemetry.io/collector/receiver"
2022
"go.opentelemetry.io/collector/receiver/otlpreceiver"
@@ -138,6 +140,16 @@ func (jmx *jmxMetricReceiver) Shutdown(ctx context.Context) error {
138140
return removeErr
139141
}
140142

143+
// InsertDefault is a helper function to insert a default value for a configoptional.Optional type.
144+
func InsertDefault[T any](opt *configoptional.Optional[T]) error {
145+
if opt.HasValue() {
146+
return nil
147+
}
148+
149+
empty := confmap.NewFromStringMap(map[string]any{})
150+
return empty.Unmarshal(opt)
151+
}
152+
141153
func (jmx *jmxMetricReceiver) buildOTLPReceiver() (receiver.Metrics, error) {
142154
endpoint := jmx.config.OTLPExporterConfig.Endpoint
143155
host, port, err := net.SplitHostPort(endpoint)
@@ -162,8 +174,10 @@ func (jmx *jmxMetricReceiver) buildOTLPReceiver() (receiver.Metrics, error) {
162174

163175
factory := otlpreceiver.NewFactory()
164176
config := factory.CreateDefaultConfig().(*otlpreceiver.Config)
165-
config.GRPC.NetAddr = confignet.AddrConfig{Endpoint: endpoint, Transport: confignet.TransportTypeTCP}
166-
config.HTTP = nil
177+
if err := InsertDefault(&config.GRPC); err != nil {
178+
return nil, err
179+
}
180+
config.GRPC.Get().NetAddr = confignet.AddrConfig{Endpoint: endpoint, Transport: confignet.TransportTypeTCP}
167181

168182
params := receiver.Settings{
169183
ID: component.NewIDWithName(factory.Type(), jmx.params.ID.String()),

testbed/testbed/receivers.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import (
99

1010
"go.opentelemetry.io/collector/component/componenttest"
1111
"go.opentelemetry.io/collector/config/confignet"
12+
"go.opentelemetry.io/collector/config/configoptional"
13+
"go.opentelemetry.io/collector/confmap"
1214
"go.opentelemetry.io/collector/consumer"
1315
"go.opentelemetry.io/collector/receiver"
1416
"go.opentelemetry.io/collector/receiver/otlpreceiver"
@@ -59,16 +61,31 @@ type BaseOTLPDataReceiver struct {
5961
batcher string
6062
}
6163

64+
// InsertDefault is a helper function to insert a default value for a configoptional.Optional type.
65+
func InsertDefault[T any](opt *configoptional.Optional[T]) error {
66+
if opt.HasValue() {
67+
return nil
68+
}
69+
70+
empty := confmap.NewFromStringMap(map[string]any{})
71+
return empty.Unmarshal(opt)
72+
}
73+
6274
func (bor *BaseOTLPDataReceiver) Start(tc consumer.Traces, mc consumer.Metrics, lc consumer.Logs) error {
6375
factory := otlpreceiver.NewFactory()
6476
cfg := factory.CreateDefaultConfig().(*otlpreceiver.Config)
6577
if bor.exporterType == "otlp" {
66-
cfg.GRPC.NetAddr = confignet.AddrConfig{Endpoint: fmt.Sprintf("127.0.0.1:%d", bor.Port), Transport: confignet.TransportTypeTCP}
67-
cfg.HTTP = nil
78+
if err := InsertDefault(&cfg.GRPC); err != nil {
79+
return err
80+
}
81+
cfg.GRPC.Get().NetAddr = confignet.AddrConfig{Endpoint: fmt.Sprintf("127.0.0.1:%d", bor.Port), Transport: confignet.TransportTypeTCP}
6882
} else {
69-
cfg.HTTP.ServerConfig.Endpoint = fmt.Sprintf("127.0.0.1:%d", bor.Port)
70-
cfg.GRPC = nil
83+
if err := InsertDefault(&cfg.HTTP); err != nil {
84+
return err
85+
}
86+
cfg.HTTP.Get().ServerConfig.Endpoint = fmt.Sprintf("127.0.0.1:%d", bor.Port)
7187
}
88+
7289
var err error
7390
set := receivertest.NewNopSettings(factory.Type())
7491
if bor.traceReceiver, err = factory.CreateTraces(context.Background(), set, cfg, tc); err != nil {

0 commit comments

Comments
 (0)