Skip to content

Commit 3e854f2

Browse files
committed
Pass a Tracer via construct settings to all the components
Followup PR will use the passed tracer to construct obsreport. Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
1 parent cc41009 commit 3e854f2

17 files changed

+96
-46
lines changed

component/componenttest/nop_exporter.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package componenttest
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/component"
@@ -29,6 +30,7 @@ import (
2930
func NewNopExporterCreateSettings() component.ExporterCreateSettings {
3031
return component.ExporterCreateSettings{
3132
Logger: zap.NewNop(),
33+
Tracer: trace.NewNoopTracerProvider().Tracer(""),
3234
BuildInfo: component.DefaultBuildInfo(),
3335
}
3436
}

component/componenttest/nop_extension.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package componenttest
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/component"
@@ -28,6 +29,7 @@ import (
2829
func NewNopExtensionCreateSettings() component.ExtensionCreateSettings {
2930
return component.ExtensionCreateSettings{
3031
Logger: zap.NewNop(),
32+
Tracer: trace.NewNoopTracerProvider().Tracer(""),
3133
BuildInfo: component.DefaultBuildInfo(),
3234
}
3335
}

component/componenttest/nop_processor.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package componenttest
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/component"
@@ -30,6 +31,7 @@ import (
3031
func NewNopProcessorCreateSettings() component.ProcessorCreateSettings {
3132
return component.ProcessorCreateSettings{
3233
Logger: zap.NewNop(),
34+
Tracer: trace.NewNoopTracerProvider().Tracer(""),
3335
BuildInfo: component.DefaultBuildInfo(),
3436
}
3537
}

component/componenttest/nop_receiver.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package componenttest
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/component"
@@ -29,6 +30,7 @@ import (
2930
func NewNopReceiverCreateSettings() component.ReceiverCreateSettings {
3031
return component.ReceiverCreateSettings{
3132
Logger: zap.NewNop(),
33+
Tracer: trace.NewNoopTracerProvider().Tracer(""),
3234
BuildInfo: component.DefaultBuildInfo(),
3335
}
3436
}

component/exporter.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package component
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/config"
@@ -52,6 +53,10 @@ type ExporterCreateSettings struct {
5253
// component to be used later as well.
5354
Logger *zap.Logger
5455

56+
// Tracer that the factory can use during creation and can pass to the created
57+
// component to be used later as well.
58+
Tracer trace.Tracer
59+
5560
// BuildInfo can be used by components for informational purposes
5661
BuildInfo BuildInfo
5762
}

component/extension.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package component
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/config"
@@ -52,6 +53,10 @@ type ExtensionCreateSettings struct {
5253
// component to be used later as well.
5354
Logger *zap.Logger
5455

56+
// Tracer that the factory can use during creation and can pass to the created
57+
// component to be used later as well.
58+
Tracer trace.Tracer
59+
5560
// BuildInfo can be used by components for informational purposes
5661
BuildInfo BuildInfo
5762
}

component/processor.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package component
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/component/componenterror"
@@ -54,6 +55,10 @@ type ProcessorCreateSettings struct {
5455
// component to be used later as well.
5556
Logger *zap.Logger
5657

58+
// Tracer that the factory can use during creation and can pass to the created
59+
// component to be used later as well.
60+
Tracer trace.Tracer
61+
5762
// BuildInfo can be used by components for informational purposes
5863
BuildInfo BuildInfo
5964
}

component/receiver.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package component
1717
import (
1818
"context"
1919

20+
"go.opentelemetry.io/otel/trace"
2021
"go.uber.org/zap"
2122

2223
"go.opentelemetry.io/collector/config"
@@ -61,6 +62,10 @@ type ReceiverCreateSettings struct {
6162
// component to be used later as well.
6263
Logger *zap.Logger
6364

65+
// Tracer that the factory can use during creation and can pass to the created
66+
// component to be used later as well.
67+
Tracer trace.Tracer
68+
6469
// BuildInfo can be used by components for informational purposes.
6570
BuildInfo BuildInfo
6671
}

service/internal/builder/exporters_builder.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"context"
1919
"fmt"
2020

21+
"go.opentelemetry.io/otel/trace"
2122
"go.uber.org/zap"
2223

2324
"go.opentelemetry.io/collector/component"
@@ -143,6 +144,7 @@ type exportersRequiredDataTypes map[config.Exporter]dataTypeRequirements
143144
// BuildExporters builds Exporters from config.
144145
func BuildExporters(
145146
logger *zap.Logger,
147+
tracerProvider trace.TracerProvider,
146148
buildInfo component.BuildInfo,
147149
config *config.Config,
148150
factories map[config.Type]component.ExporterFactory,
@@ -155,17 +157,18 @@ func BuildExporters(
155157

156158
exporters := make(Exporters)
157159
// BuildExporters exporters based on configuration and required input data types.
158-
for _, cfg := range config.Exporters {
160+
for _, expCfg := range config.Exporters {
159161
set := component.ExporterCreateSettings{
160-
Logger: logger.With(zap.Stringer(zapNameKey, cfg.ID())),
162+
Logger: logger.With(zap.Stringer(zapNameKey, expCfg.ID())),
163+
Tracer: tracerProvider.Tracer(fmt.Sprintf("%s/%v", zapKindLogExporter, expCfg.ID())),
161164
BuildInfo: buildInfo,
162165
}
163-
exp, err := buildExporter(context.Background(), factories, set, cfg, exporterInputDataTypes)
166+
exp, err := buildExporter(context.Background(), factories, set, expCfg, exporterInputDataTypes)
164167
if err != nil {
165168
return nil, err
166169
}
167170

168-
exporters[cfg] = exp
171+
exporters[expCfg] = exp
169172
}
170173

171174
return exporters, nil

service/internal/builder/exporters_builder_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121

2222
"github.com/stretchr/testify/assert"
2323
"github.com/stretchr/testify/require"
24+
"go.opentelemetry.io/otel/trace"
2425
"go.uber.org/zap"
2526

2627
"go.opentelemetry.io/collector/component"
@@ -60,7 +61,7 @@ func TestBuildExporters(t *testing.T) {
6061
},
6162
}
6263

63-
exporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
64+
exporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
6465

6566
assert.NoError(t, err)
6667
require.NotNil(t, exporters)
@@ -89,7 +90,7 @@ func TestBuildExporters(t *testing.T) {
8990
// This should result in creating an exporter that has none of consumption
9091
// functions set.
9192
delete(cfg.Service.Pipelines, "trace")
92-
exporters, err = BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
93+
exporters, err = BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
9394
assert.NotNil(t, exporters)
9495
assert.NoError(t, err)
9596

@@ -127,7 +128,7 @@ func TestBuildExporters_BuildLogs(t *testing.T) {
127128
},
128129
}
129130

130-
exporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
131+
exporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
131132

132133
assert.NoError(t, err)
133134
require.NotNil(t, exporters)
@@ -152,7 +153,7 @@ func TestBuildExporters_BuildLogs(t *testing.T) {
152153
// This should result in creating an exporter that has none of consumption
153154
// functions set.
154155
delete(cfg.Service.Pipelines, "logs")
155-
exporters, err = BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
156+
exporters, err = BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
156157
assert.NotNil(t, exporters)
157158
assert.Nil(t, err)
158159

@@ -238,7 +239,7 @@ func TestBuildExporters_NotSupportedDataType(t *testing.T) {
238239
cfg, err := configtest.LoadConfigAndValidate(path.Join("testdata", test.configFile), factories)
239240
require.Nil(t, err)
240241

241-
exporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
242+
exporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
242243
assert.Error(t, err)
243244
assert.Zero(t, len(exporters))
244245
})

0 commit comments

Comments
 (0)