Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions component/componenttest/nop_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package componenttest
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand All @@ -28,8 +29,9 @@ import (
// NewNopExporterCreateSettings returns a new nop settings for Create*Exporter functions.
func NewNopExporterCreateSettings() component.ExporterCreateSettings {
return component.ExporterCreateSettings{
Logger: zap.NewNop(),
BuildInfo: component.DefaultBuildInfo(),
Logger: zap.NewNop(),
TracerProvider: trace.NewNoopTracerProvider(),
BuildInfo: component.DefaultBuildInfo(),
}
}

Expand Down
6 changes: 4 additions & 2 deletions component/componenttest/nop_extension.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package componenttest
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand All @@ -27,8 +28,9 @@ import (
// NewNopExtensionCreateSettings returns a new nop settings for Create*Extension functions.
func NewNopExtensionCreateSettings() component.ExtensionCreateSettings {
return component.ExtensionCreateSettings{
Logger: zap.NewNop(),
BuildInfo: component.DefaultBuildInfo(),
Logger: zap.NewNop(),
TracerProvider: trace.NewNoopTracerProvider(),
BuildInfo: component.DefaultBuildInfo(),
}
}

Expand Down
6 changes: 4 additions & 2 deletions component/componenttest/nop_processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package componenttest
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand All @@ -29,8 +30,9 @@ import (
// NewNopProcessorCreateSettings returns a new nop settings for Create*Processor functions.
func NewNopProcessorCreateSettings() component.ProcessorCreateSettings {
return component.ProcessorCreateSettings{
Logger: zap.NewNop(),
BuildInfo: component.DefaultBuildInfo(),
Logger: zap.NewNop(),
TracerProvider: trace.NewNoopTracerProvider(),
BuildInfo: component.DefaultBuildInfo(),
}
}

Expand Down
6 changes: 4 additions & 2 deletions component/componenttest/nop_receiver.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package componenttest
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand All @@ -28,8 +29,9 @@ import (
// NewNopReceiverCreateSettings returns a new nop settings for Create*Receiver functions.
func NewNopReceiverCreateSettings() component.ReceiverCreateSettings {
return component.ReceiverCreateSettings{
Logger: zap.NewNop(),
BuildInfo: component.DefaultBuildInfo(),
Logger: zap.NewNop(),
TracerProvider: trace.NewNoopTracerProvider(),
BuildInfo: component.DefaultBuildInfo(),
}
}

Expand Down
4 changes: 4 additions & 0 deletions component/exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package component
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/config"
Expand Down Expand Up @@ -52,6 +53,9 @@ type ExporterCreateSettings struct {
// component to be used later as well.
Logger *zap.Logger

// TracerProvider that the factory can pass to other instrumented third-party libraries.
TracerProvider trace.TracerProvider

// BuildInfo can be used by components for informational purposes
BuildInfo BuildInfo
}
Expand Down
4 changes: 4 additions & 0 deletions component/extension.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package component
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/config"
Expand Down Expand Up @@ -52,6 +53,9 @@ type ExtensionCreateSettings struct {
// component to be used later as well.
Logger *zap.Logger

// TracerProvider that the factory can pass to other instrumented third-party libraries.
TracerProvider trace.TracerProvider

// BuildInfo can be used by components for informational purposes
BuildInfo BuildInfo
}
Expand Down
4 changes: 4 additions & 0 deletions component/processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package component
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component/componenterror"
Expand Down Expand Up @@ -54,6 +55,9 @@ type ProcessorCreateSettings struct {
// component to be used later as well.
Logger *zap.Logger

// TracerProvider that the factory can pass to other instrumented third-party libraries.
TracerProvider trace.TracerProvider

// BuildInfo can be used by components for informational purposes
BuildInfo BuildInfo
}
Expand Down
4 changes: 4 additions & 0 deletions component/receiver.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package component
import (
"context"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/config"
Expand Down Expand Up @@ -61,6 +62,9 @@ type ReceiverCreateSettings struct {
// component to be used later as well.
Logger *zap.Logger

// TracerProvider that the factory can pass to other instrumented third-party libraries.
TracerProvider trace.TracerProvider

// BuildInfo can be used by components for informational purposes.
BuildInfo BuildInfo
}
Expand Down
13 changes: 8 additions & 5 deletions service/internal/builder/exporters_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"context"
"fmt"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand Down Expand Up @@ -143,6 +144,7 @@ type exportersRequiredDataTypes map[config.Exporter]dataTypeRequirements
// BuildExporters builds Exporters from config.
func BuildExporters(
logger *zap.Logger,
tracerProvider trace.TracerProvider,
buildInfo component.BuildInfo,
config *config.Config,
factories map[config.Type]component.ExporterFactory,
Expand All @@ -155,17 +157,18 @@ func BuildExporters(

exporters := make(Exporters)
// BuildExporters exporters based on configuration and required input data types.
for _, cfg := range config.Exporters {
for _, expCfg := range config.Exporters {
set := component.ExporterCreateSettings{
Logger: logger.With(zap.Stringer(zapNameKey, cfg.ID())),
BuildInfo: buildInfo,
Logger: logger.With(zap.Stringer(zapNameKey, expCfg.ID())),
TracerProvider: tracerProvider,
BuildInfo: buildInfo,
}
exp, err := buildExporter(context.Background(), factories, set, cfg, exporterInputDataTypes)
exp, err := buildExporter(context.Background(), factories, set, expCfg, exporterInputDataTypes)
if err != nil {
return nil, err
}

exporters[cfg] = exp
exporters[expCfg] = exp
}

return exporters, nil
Expand Down
11 changes: 6 additions & 5 deletions service/internal/builder/exporters_builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand Down Expand Up @@ -60,7 +61,7 @@ func TestBuildExporters(t *testing.T) {
},
}

exporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
exporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)

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

Expand Down Expand Up @@ -127,7 +128,7 @@ func TestBuildExporters_BuildLogs(t *testing.T) {
},
}

exporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
exporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)

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

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

exporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
exporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
assert.Error(t, err)
assert.Zero(t, len(exporters))
})
Expand Down
7 changes: 5 additions & 2 deletions service/internal/builder/extensions_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"context"
"fmt"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand Down Expand Up @@ -113,6 +114,7 @@ func (exts Extensions) ToMap() map[config.ComponentID]component.Extension {
// BuildExtensions builds Extensions from config.
func BuildExtensions(
logger *zap.Logger,
tracerProvider trace.TracerProvider,
buildInfo component.BuildInfo,
config *config.Config,
factories map[config.Type]component.ExtensionFactory,
Expand All @@ -126,8 +128,9 @@ func BuildExtensions(
}

set := component.ExtensionCreateSettings{
Logger: logger.With(zap.Stringer(zapNameKey, extCfg.ID())),
BuildInfo: buildInfo,
Logger: logger.With(zap.Stringer(zapNameKey, extCfg.ID())),
TracerProvider: tracerProvider,
BuildInfo: buildInfo,
}
ext, err := buildExtension(context.Background(), factories, set, extCfg)
if err != nil {
Expand Down
3 changes: 2 additions & 1 deletion service/internal/builder/extensions_builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"testing"

"github.com/stretchr/testify/assert"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand Down Expand Up @@ -115,7 +116,7 @@ func TestService_setupExtensions(t *testing.T) {

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
ext, err := BuildExtensions(zap.NewNop(), component.DefaultBuildInfo(), tt.config, tt.factories.Extensions)
ext, err := BuildExtensions(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), tt.config, tt.factories.Extensions)

assert.Error(t, err)
assert.Equal(t, tt.wantErrMsg, err.Error())
Expand Down
20 changes: 12 additions & 8 deletions service/internal/builder/pipelines_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"context"
"fmt"

"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand Down Expand Up @@ -81,23 +82,25 @@ func (bps BuiltPipelines) ShutdownProcessors(ctx context.Context) error {

// pipelinesBuilder builds Pipelines from config.
type pipelinesBuilder struct {
logger *zap.Logger
buildInfo component.BuildInfo
config *config.Config
exporters Exporters
factories map[config.Type]component.ProcessorFactory
logger *zap.Logger
tracerProvider trace.TracerProvider
buildInfo component.BuildInfo
config *config.Config
exporters Exporters
factories map[config.Type]component.ProcessorFactory
}

// BuildPipelines builds pipeline processors from config. Requires exporters to be already
// built via BuildExporters.
func BuildPipelines(
logger *zap.Logger,
tracerProvider trace.TracerProvider,
buildInfo component.BuildInfo,
config *config.Config,
exporters Exporters,
factories map[config.Type]component.ProcessorFactory,
) (BuiltPipelines, error) {
pb := &pipelinesBuilder{logger, buildInfo, config, exporters, factories}
pb := &pipelinesBuilder{logger, tracerProvider, buildInfo, config, exporters, factories}

pipelineProcessors := make(BuiltPipelines)
for _, pipeline := range pb.config.Service.Pipelines {
Expand Down Expand Up @@ -151,8 +154,9 @@ func (pb *pipelinesBuilder) buildPipeline(ctx context.Context, pipelineCfg *conf
// which we will build in the next loop iteration).
var err error
set := component.ProcessorCreateSettings{
Logger: pb.logger.With(zap.String(zapKindKey, zapKindProcessor), zap.Stringer(zapNameKey, procCfg.ID())),
BuildInfo: pb.buildInfo,
Logger: pb.logger.With(zap.String(zapKindKey, zapKindProcessor), zap.Stringer(zapNameKey, procCfg.ID())),
TracerProvider: pb.tracerProvider,
BuildInfo: pb.buildInfo,
}

switch pipelineCfg.InputType {
Expand Down
13 changes: 7 additions & 6 deletions service/internal/builder/pipelines_builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"go.opentelemetry.io/collector/component"
Expand Down Expand Up @@ -112,15 +113,15 @@ func TestBuildPipelines_BuildVarious(t *testing.T) {
cfg := createExampleConfig(dataType)

// BuildProcessors the pipeline
allExporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
allExporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
if test.shouldFail {
assert.Error(t, err)
return
}

require.NoError(t, err)
require.EqualValues(t, 1, len(allExporters))
pipelineProcessors, err := BuildPipelines(zap.NewNop(), component.DefaultBuildInfo(), cfg, allExporters, factories.Processors)
pipelineProcessors, err := BuildPipelines(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, allExporters, factories.Processors)

assert.NoError(t, err)
require.NotNil(t, pipelineProcessors)
Expand Down Expand Up @@ -184,9 +185,9 @@ func testPipeline(t *testing.T, pipelineName string, exporterIDs []config.Compon
require.Nil(t, err)

// BuildProcessors the pipeline
allExporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
allExporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
assert.NoError(t, err)
pipelineProcessors, err := BuildPipelines(zap.NewNop(), component.DefaultBuildInfo(), cfg, allExporters, factories.Processors)
pipelineProcessors, err := BuildPipelines(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, allExporters, factories.Processors)

assert.NoError(t, err)
require.NotNil(t, pipelineProcessors)
Expand Down Expand Up @@ -258,10 +259,10 @@ func TestBuildPipelines_NotSupportedDataType(t *testing.T) {
cfg, err := configtest.LoadConfigAndValidate(path.Join("testdata", test.configFile), factories)
require.Nil(t, err)

allExporters, err := BuildExporters(zap.NewNop(), component.DefaultBuildInfo(), cfg, factories.Exporters)
allExporters, err := BuildExporters(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, factories.Exporters)
assert.NoError(t, err)

pipelineProcessors, err := BuildPipelines(zap.NewNop(), component.DefaultBuildInfo(), cfg, allExporters, factories.Processors)
pipelineProcessors, err := BuildPipelines(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, allExporters, factories.Processors)
assert.Error(t, err)
assert.Zero(t, len(pipelineProcessors))
})
Expand Down
Loading