Pass a TracerProvider via construct settings to all the components (#3592)
Followup PR will use the passed tracer to construct obsreport. Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
e5f98760de
commit
baf89f11bf
|
@ -17,6 +17,7 @@ package componenttest
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ package componenttest
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ package componenttest
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ package componenttest
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ package component
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/config"
|
||||
|
@ -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
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ package component
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/config"
|
||||
|
@ -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
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ package component
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component/componenterror"
|
||||
|
@ -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
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ package component
|
|||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/config"
|
||||
|
@ -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
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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))
|
||||
})
|
||||
|
|
|
@ -18,6 +18,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
|
@ -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())
|
||||
|
|
|
@ -18,6 +18,7 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
|
@ -112,7 +113,7 @@ 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
|
||||
|
@ -120,7 +121,7 @@ func TestBuildPipelines_BuildVarious(t *testing.T) {
|
|||
|
||||
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)
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
})
|
||||
|
|
|
@ -19,6 +19,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -89,6 +90,7 @@ type receiversBuilder struct {
|
|||
// BuildReceivers builds Receivers from config.
|
||||
func BuildReceivers(
|
||||
logger *zap.Logger,
|
||||
tracerProvider trace.TracerProvider,
|
||||
buildInfo component.BuildInfo,
|
||||
config *config.Config,
|
||||
builtPipelines BuiltPipelines,
|
||||
|
@ -97,12 +99,13 @@ func BuildReceivers(
|
|||
rb := &receiversBuilder{logger.With(zap.String(zapKindKey, zapKindReceiver)), buildInfo, config, builtPipelines, factories}
|
||||
|
||||
receivers := make(Receivers)
|
||||
for _, cfg := range rb.config.Receivers {
|
||||
for _, recvCfg := range rb.config.Receivers {
|
||||
set := component.ReceiverCreateSettings{
|
||||
Logger: rb.logger.With(zap.Stringer(zapNameKey, cfg.ID())),
|
||||
BuildInfo: buildInfo,
|
||||
Logger: rb.logger.With(zap.Stringer(zapNameKey, recvCfg.ID())),
|
||||
TracerProvider: tracerProvider,
|
||||
BuildInfo: buildInfo,
|
||||
}
|
||||
rcv, err := rb.buildReceiver(context.Background(), set, cfg)
|
||||
rcv, err := rb.buildReceiver(context.Background(), set, recvCfg)
|
||||
if err != nil {
|
||||
if err == errUnusedReceiver {
|
||||
set.Logger.Info("Ignoring receiver as it is not used by any pipeline")
|
||||
|
@ -110,7 +113,7 @@ func BuildReceivers(
|
|||
}
|
||||
return nil, err
|
||||
}
|
||||
receivers[cfg] = rcv
|
||||
receivers[recvCfg] = rcv
|
||||
}
|
||||
|
||||
return receivers, nil
|
||||
|
|
|
@ -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"
|
||||
|
@ -100,11 +101,11 @@ func testReceivers(
|
|||
require.NoError(t, err)
|
||||
|
||||
// Build 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)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NotNil(t, receivers)
|
||||
|
@ -201,16 +202,16 @@ func TestBuildReceivers_BuildCustom(t *testing.T) {
|
|||
cfg := createExampleConfig(dataType)
|
||||
|
||||
// Build 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
|
||||
}
|
||||
|
||||
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)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
|
||||
assert.NoError(t, err)
|
||||
require.NotNil(t, receivers)
|
||||
|
@ -302,11 +303,11 @@ func TestBuildReceivers_Unused(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
|
||||
// Build 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)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, receivers)
|
||||
|
||||
|
@ -338,13 +339,13 @@ func TestBuildReceivers_NotSupportedDataType(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
require.NotNil(t, cfg)
|
||||
|
||||
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)
|
||||
|
||||
receivers, err := BuildReceivers(zap.NewNop(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
receivers, err := BuildReceivers(zap.NewNop(), trace.NewNoopTracerProvider(), component.DefaultBuildInfo(), cfg, pipelineProcessors, factories.Receivers)
|
||||
assert.Error(t, err)
|
||||
assert.Zero(t, len(receivers))
|
||||
})
|
||||
|
|
|
@ -18,6 +18,8 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
|
||||
"go.opentelemetry.io/otel"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
|
@ -32,6 +34,7 @@ type service struct {
|
|||
buildInfo component.BuildInfo
|
||||
config *config.Config
|
||||
logger *zap.Logger
|
||||
tracerProvider trace.TracerProvider
|
||||
asyncErrorChannel chan error
|
||||
|
||||
builtExporters builder.Exporters
|
||||
|
@ -42,10 +45,12 @@ type service struct {
|
|||
|
||||
func newService(set *svcSettings) (*service, error) {
|
||||
srv := &service{
|
||||
factories: set.Factories,
|
||||
buildInfo: set.BuildInfo,
|
||||
config: set.Config,
|
||||
logger: set.Logger,
|
||||
factories: set.Factories,
|
||||
buildInfo: set.BuildInfo,
|
||||
config: set.Config,
|
||||
logger: set.Logger,
|
||||
// TODO: Configure the right tracer provider.
|
||||
tracerProvider: otel.GetTracerProvider(),
|
||||
asyncErrorChannel: set.AsyncErrorChannel,
|
||||
}
|
||||
|
||||
|
@ -126,7 +131,7 @@ func (srv *service) GetExporters() map[config.DataType]map[config.ComponentID]co
|
|||
|
||||
func (srv *service) buildExtensions() error {
|
||||
var err error
|
||||
srv.builtExtensions, err = builder.BuildExtensions(srv.logger, srv.buildInfo, srv.config, srv.factories.Extensions)
|
||||
srv.builtExtensions, err = builder.BuildExtensions(srv.logger, srv.tracerProvider, srv.buildInfo, srv.config, srv.factories.Extensions)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot build builtExtensions: %w", err)
|
||||
}
|
||||
|
@ -157,20 +162,20 @@ func (srv *service) buildPipelines() error {
|
|||
|
||||
// First create exporters.
|
||||
var err error
|
||||
srv.builtExporters, err = builder.BuildExporters(srv.logger, srv.buildInfo, srv.config, srv.factories.Exporters)
|
||||
srv.builtExporters, err = builder.BuildExporters(srv.logger, srv.tracerProvider, srv.buildInfo, srv.config, srv.factories.Exporters)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot build builtExporters: %w", err)
|
||||
}
|
||||
|
||||
// Create pipelines and their processors and plug exporters to the
|
||||
// end of the pipelines.
|
||||
srv.builtPipelines, err = builder.BuildPipelines(srv.logger, srv.buildInfo, srv.config, srv.builtExporters, srv.factories.Processors)
|
||||
srv.builtPipelines, err = builder.BuildPipelines(srv.logger, srv.tracerProvider, srv.buildInfo, srv.config, srv.builtExporters, srv.factories.Processors)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot build pipelines: %w", err)
|
||||
}
|
||||
|
||||
// Create receivers and plug them into the start of the pipelines.
|
||||
srv.builtReceivers, err = builder.BuildReceivers(srv.logger, srv.buildInfo, srv.config, srv.builtPipelines, srv.factories.Receivers)
|
||||
srv.builtReceivers, err = builder.BuildReceivers(srv.logger, srv.tracerProvider, srv.buildInfo, srv.config, srv.builtPipelines, srv.factories.Receivers)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot build receivers: %w", err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue