Deprecate exporterprofiles module in favor of xexporter (#11885)

to allow adding more experimental data types.

Updates
https://github.com/open-telemetry/opentelemetry-collector/issues/11778
This commit is contained in:
Dmitrii Anoshin 2024-12-13 13:56:43 -08:00 committed by GitHub
parent 683e86aedb
commit 0d94e09e70
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
39 changed files with 476 additions and 190 deletions

View File

@ -0,0 +1,20 @@
# Use this changelog template to create an entry for release notes.
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: deprecation
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: exporter
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Deprecate exporterprofiles module in favor of xexporter to allow adding more experimental data types.
# One or more tracking issues or pull requests related to the change
issues: [11778]
# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: [api]

1
.github/CODEOWNERS vendored
View File

@ -34,6 +34,7 @@ consumer/xconsumer @open-telemetry/collector-approve
connector/connectorprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu connector/connectorprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu
exporter/exporterhelper/exporterhelperprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu exporter/exporterhelper/exporterhelperprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu
exporter/exporterprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu exporter/exporterprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu
exporter/xexporter @open-telemetry/collector-approvers @mx-psi @dmathieu
processor/processorprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu processor/processorprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu
processor/xprocessor @open-telemetry/collector-approvers @mx-psi @dmathieu processor/xprocessor @open-telemetry/collector-approvers @mx-psi @dmathieu
receiver/receiverprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu receiver/receiverprofiles @open-telemetry/collector-approvers @mx-psi @dmathieu

View File

@ -69,7 +69,7 @@ var replaceModules = []string{
"/connector/connectorprofiles", "/connector/connectorprofiles",
"/exporter", "/exporter",
"/exporter/debugexporter", "/exporter/debugexporter",
"/exporter/exporterprofiles", "/exporter/xexporter",
"/exporter/exportertest", "/exporter/exportertest",
"/exporter/exporterhelper/exporterhelperprofiles", "/exporter/exporterhelper/exporterhelperprofiles",
"/exporter/nopexporter", "/exporter/nopexporter",

View File

@ -70,7 +70,7 @@ replaces:
- go.opentelemetry.io/collector/exporter => ../../exporter - go.opentelemetry.io/collector/exporter => ../../exporter
- go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/debugexporter - go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/debugexporter
- go.opentelemetry.io/collector/exporter/exportertest => ../../exporter/exportertest - go.opentelemetry.io/collector/exporter/exportertest => ../../exporter/exportertest
- go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporter/exporterprofiles - go.opentelemetry.io/collector/exporter/xexporter => ../../exporter/xexporter
- go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../../exporter/exporterhelper/exporterhelperprofiles - go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../../exporter/exporterhelper/exporterhelperprofiles
- go.opentelemetry.io/collector/exporter/nopexporter => ../../exporter/nopexporter - go.opentelemetry.io/collector/exporter/nopexporter => ../../exporter/nopexporter
- go.opentelemetry.io/collector/exporter/otlpexporter => ../../exporter/otlpexporter - go.opentelemetry.io/collector/exporter/otlpexporter => ../../exporter/otlpexporter

View File

@ -101,8 +101,8 @@ require (
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/exporter/exportertest v0.115.0 // indirect go.opentelemetry.io/collector/exporter/exportertest v0.115.0 // indirect
go.opentelemetry.io/collector/exporter/xexporter v0.115.0 // indirect
go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect
go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect
go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect
@ -225,7 +225,7 @@ replace go.opentelemetry.io/collector/exporter/debugexporter => ../../exporter/d
replace go.opentelemetry.io/collector/exporter/exportertest => ../../exporter/exportertest replace go.opentelemetry.io/collector/exporter/exportertest => ../../exporter/exportertest
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporter/exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../../exporter/xexporter
replace go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../../exporter/exporterhelper/exporterhelperprofiles replace go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../../exporter/exporterhelper/exporterhelperprofiles

View File

@ -18,7 +18,7 @@ import (
"go.opentelemetry.io/collector/exporter/debugexporter/internal/otlptext" "go.opentelemetry.io/collector/exporter/debugexporter/internal/otlptext"
"go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exporterhelper"
"go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles" "go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles"
"go.opentelemetry.io/collector/exporter/exporterprofiles" "go.opentelemetry.io/collector/exporter/xexporter"
) )
// The value of "type" key in configuration. // The value of "type" key in configuration.
@ -31,13 +31,13 @@ const (
// NewFactory creates a factory for Debug exporter // NewFactory creates a factory for Debug exporter
func NewFactory() exporter.Factory { func NewFactory() exporter.Factory {
return exporterprofiles.NewFactory( return xexporter.NewFactory(
componentType, componentType,
createDefaultConfig, createDefaultConfig,
exporterprofiles.WithTraces(createTraces, metadata.TracesStability), xexporter.WithTraces(createTraces, metadata.TracesStability),
exporterprofiles.WithMetrics(createMetrics, metadata.MetricsStability), xexporter.WithMetrics(createMetrics, metadata.MetricsStability),
exporterprofiles.WithLogs(createLogs, metadata.LogsStability), xexporter.WithLogs(createLogs, metadata.LogsStability),
exporterprofiles.WithProfiles(createProfiles, metadata.ProfilesStability), xexporter.WithProfiles(createProfiles, metadata.ProfilesStability),
) )
} }
@ -86,7 +86,7 @@ func createLogs(ctx context.Context, set exporter.Settings, config component.Con
) )
} }
func createProfiles(ctx context.Context, set exporter.Settings, config component.Config) (exporterprofiles.Profiles, error) { func createProfiles(ctx context.Context, set exporter.Settings, config component.Config) (xexporter.Profiles, error) {
cfg := config.(*Config) cfg := config.(*Config)
exporterLogger := createLogger(cfg, set.TelemetrySettings.Logger) exporterLogger := createLogger(cfg, set.TelemetrySettings.Logger)
debug := newDebugExporter(exporterLogger, cfg.Verbosity) debug := newDebugExporter(exporterLogger, cfg.Verbosity)

View File

@ -11,8 +11,8 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/xexporter"
) )
func TestCreateDefaultConfig(t *testing.T) { func TestCreateDefaultConfig(t *testing.T) {
@ -53,7 +53,7 @@ func TestCreateFactoryProfiles(t *testing.T) {
factory := NewFactory() factory := NewFactory()
cfg := factory.CreateDefaultConfig() cfg := factory.CreateDefaultConfig()
te, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), exportertest.NewNopSettings(), cfg) te, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), exportertest.NewNopSettings(), cfg)
require.NoError(t, err) require.NoError(t, err)
assert.NotNil(t, te) assert.NotNil(t, te)
} }

View File

@ -11,8 +11,8 @@ require (
go.opentelemetry.io/collector/consumer v1.21.0 go.opentelemetry.io/collector/consumer v1.21.0
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exportertest v0.115.0 go.opentelemetry.io/collector/exporter/exportertest v0.115.0
go.opentelemetry.io/collector/exporter/xexporter v0.115.0
go.opentelemetry.io/collector/pdata v1.21.0 go.opentelemetry.io/collector/pdata v1.21.0
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 go.opentelemetry.io/collector/pdata/pprofile v0.115.0
go.opentelemetry.io/collector/pdata/testdata v0.115.0 go.opentelemetry.io/collector/pdata/testdata v0.115.0
@ -102,7 +102,7 @@ replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/co
replace go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xreceiver replace go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xreceiver
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../xexporter
replace go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../exporterhelper/exporterhelperprofiles replace go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../exporterhelper/exporterhelperprofiles

View File

@ -13,8 +13,8 @@ require (
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 go.opentelemetry.io/collector/consumer/consumertest v0.115.0
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exportertest v0.115.0 go.opentelemetry.io/collector/exporter/exportertest v0.115.0
go.opentelemetry.io/collector/exporter/xexporter v0.115.0
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 go.opentelemetry.io/collector/pdata/pprofile v0.115.0
go.opentelemetry.io/collector/pdata/testdata v0.115.0 go.opentelemetry.io/collector/pdata/testdata v0.115.0
go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0 go.opentelemetry.io/collector/pipeline/pipelineprofiles v0.115.0
@ -85,7 +85,7 @@ replace go.opentelemetry.io/collector/extension => ../../../extension
replace go.opentelemetry.io/collector/pdata => ../../../pdata replace go.opentelemetry.io/collector/pdata => ../../../pdata
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../../xexporter
replace go.opentelemetry.io/collector/config/configtelemetry => ../../../config/configtelemetry replace go.opentelemetry.io/collector/config/configtelemetry => ../../../config/configtelemetry

View File

@ -16,8 +16,8 @@ import (
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exporterhelper"
"go.opentelemetry.io/collector/exporter/exporterhelper/internal" "go.opentelemetry.io/collector/exporter/exporterhelper/internal"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exporterqueue" "go.opentelemetry.io/collector/exporter/exporterqueue"
"go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pdata/pprofile" "go.opentelemetry.io/collector/pdata/pprofile"
"go.opentelemetry.io/collector/pipeline/pipelineprofiles" "go.opentelemetry.io/collector/pipeline/pipelineprofiles"
) )
@ -74,14 +74,14 @@ type profileExporter struct {
xconsumer.Profiles xconsumer.Profiles
} }
// NewProfilesExporter creates an exporterprofiles.Profiles that records observability metrics and wraps every request with a Span. // NewProfilesExporter creates an xexporter.Profiles that records observability metrics and wraps every request with a Span.
func NewProfilesExporter( func NewProfilesExporter(
ctx context.Context, ctx context.Context,
set exporter.Settings, set exporter.Settings,
cfg component.Config, cfg component.Config,
pusher xconsumer.ConsumeProfilesFunc, pusher xconsumer.ConsumeProfilesFunc,
options ...exporterhelper.Option, options ...exporterhelper.Option,
) (exporterprofiles.Profiles, error) { ) (xexporter.Profiles, error) {
if cfg == nil { if cfg == nil {
return nil, errNilConfig return nil, errNilConfig
} }
@ -114,7 +114,7 @@ func NewProfilesRequestExporter(
set exporter.Settings, set exporter.Settings,
converter RequestFromProfilesFunc, converter RequestFromProfilesFunc,
options ...exporterhelper.Option, options ...exporterhelper.Option,
) (exporterprofiles.Profiles, error) { ) (xexporter.Profiles, error) {
if set.Logger == nil { if set.Logger == nil {
return nil, errNilLogger return nil, errNilLogger
} }

View File

@ -29,9 +29,9 @@ import (
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exporterhelper"
"go.opentelemetry.io/collector/exporter/exporterhelper/internal" "go.opentelemetry.io/collector/exporter/exporterhelper/internal"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/internal/queue" "go.opentelemetry.io/collector/exporter/internal/queue"
"go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pdata/pprofile" "go.opentelemetry.io/collector/pdata/pprofile"
"go.opentelemetry.io/collector/pdata/testdata" "go.opentelemetry.io/collector/pdata/testdata"
) )
@ -290,7 +290,7 @@ func newPushProfilesData(retError error) xconsumer.ConsumeProfilesFunc {
} }
} }
func generateProfilesTraffic(t *testing.T, tracer trace.Tracer, le exporterprofiles.Profiles, numRequests int, wantError error) { func generateProfilesTraffic(t *testing.T, tracer trace.Tracer, le xexporter.Profiles, numRequests int, wantError error) {
ld := testdata.GenerateProfiles(1) ld := testdata.GenerateProfiles(1)
ctx, span := tracer.Start(context.Background(), fakeProfilesParentSpanName) ctx, span := tracer.Start(context.Background(), fakeProfilesParentSpanName)
defer span.End() defer span.End()
@ -300,7 +300,7 @@ func generateProfilesTraffic(t *testing.T, tracer trace.Tracer, le exporterprofi
} }
// nolint: unparam // nolint: unparam
func checkWrapSpanForProfilesExporter(t *testing.T, sr *tracetest.SpanRecorder, tracer trace.Tracer, le exporterprofiles.Profiles, func checkWrapSpanForProfilesExporter(t *testing.T, sr *tracetest.SpanRecorder, tracer trace.Tracer, le xexporter.Profiles,
wantError error, numSampleRecords int64, wantError error, numSampleRecords int64,
) { ) {
const numRequests = 5 const numRequests = 5

View File

@ -1,109 +1,42 @@
// Copyright The OpenTelemetry Authors // Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// Deprecated: [0.116.0] Use go.opentelemetry.io/collector/exporter/xexporter instead.
package exporterprofiles // import "go.opentelemetry.io/collector/exporter/exporterprofiles" package exporterprofiles // import "go.opentelemetry.io/collector/exporter/exporterprofiles"
import ( import "go.opentelemetry.io/collector/exporter/xexporter"
"context"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/consumer/xconsumer"
"go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/pipeline"
)
// Profiles is an exporter that can consume profiles. // Profiles is an exporter that can consume profiles.
type Profiles interface { // Deprecated: [0.116.0] Use xeporter.Profiles instead.
component.Component type Profiles = xexporter.Profiles
xconsumer.Profiles
}
type Factory interface { // Deprecated: [0.116.0] Use xeporter.Factory instead.
exporter.Factory type Factory = xexporter.Factory
// CreateProfiles creates a Profiles exporter based on this config.
// If the exporter type does not support tracing,
// this function returns the error [pipeline.ErrSignalNotSupported].
CreateProfiles(ctx context.Context, set exporter.Settings, cfg component.Config) (Profiles, error)
// ProfilesStability gets the stability level of the Profiles exporter.
ProfilesStability() component.StabilityLevel
}
// FactoryOption apply changes to ReceiverOptions. // FactoryOption apply changes to ReceiverOptions.
type FactoryOption interface { // Deprecated: [0.116.0] Use xeporter.FactoryOption instead.
// applyOption applies the option. type FactoryOption = xexporter.FactoryOption
applyOption(o *factoryOpts)
}
// factoryOptionFunc is an ReceiverFactoryOption created through a function.
type factoryOptionFunc func(*factoryOpts)
func (f factoryOptionFunc) applyOption(o *factoryOpts) {
f(o)
}
type factoryOpts struct {
opts []exporter.FactoryOption
*factory
}
// CreateProfilesFunc is the equivalent of Factory.CreateProfiles. // CreateProfilesFunc is the equivalent of Factory.CreateProfiles.
type CreateProfilesFunc func(context.Context, exporter.Settings, component.Config) (Profiles, error) // Deprecated: [0.116.0] Use xeporter.CreateProfilesFunc instead.
type CreateProfilesFunc = xexporter.CreateProfilesFunc
// CreateProfiles implements Factory.CreateProfiles.
func (f CreateProfilesFunc) CreateProfiles(ctx context.Context, set exporter.Settings, cfg component.Config) (Profiles, error) {
if f == nil {
return nil, pipeline.ErrSignalNotSupported
}
return f(ctx, set, cfg)
}
// WithTraces overrides the default "error not supported" implementation for CreateTraces and the default "undefined" stability level. // WithTraces overrides the default "error not supported" implementation for CreateTraces and the default "undefined" stability level.
func WithTraces(createTraces exporter.CreateTracesFunc, sl component.StabilityLevel) FactoryOption { // Deprecated: [0.116.0] Use xeporter.WithTraces instead.
return factoryOptionFunc(func(o *factoryOpts) { var WithTraces = xexporter.WithTraces
o.opts = append(o.opts, exporter.WithTraces(createTraces, sl))
})
}
// WithMetrics overrides the default "error not supported" implementation for CreateMetrics and the default "undefined" stability level. // WithMetrics overrides the default "error not supported" implementation for CreateMetrics and the default "undefined" stability level.
func WithMetrics(createMetrics exporter.CreateMetricsFunc, sl component.StabilityLevel) FactoryOption { // Deprecated: [0.116.0] Use xeporter.WithMetrics instead.
return factoryOptionFunc(func(o *factoryOpts) { var WithMetrics = xexporter.WithMetrics
o.opts = append(o.opts, exporter.WithMetrics(createMetrics, sl))
})
}
// WithLogs overrides the default "error not supported" implementation for CreateLogs and the default "undefined" stability level. // WithLogs overrides the default "error not supported" implementation for CreateLogs and the default "undefined" stability level.
func WithLogs(createLogs exporter.CreateLogsFunc, sl component.StabilityLevel) FactoryOption { // Deprecated: [0.116.0] Use xeporter.WithLogs instead.
return factoryOptionFunc(func(o *factoryOpts) { var WithLogs = xexporter.WithLogs
o.opts = append(o.opts, exporter.WithLogs(createLogs, sl))
})
}
// WithProfiles overrides the default "error not supported" implementation for CreateProfilesExporter and the default "undefined" stability level. // WithProfiles overrides the default "error not supported" implementation for CreateProfilesExporter and the default "undefined" stability level.
func WithProfiles(createProfiles CreateProfilesFunc, sl component.StabilityLevel) FactoryOption { // Deprecated: [0.116.0] Use xeporter.WithProfiles instead.
return factoryOptionFunc(func(o *factoryOpts) { var WithProfiles = xexporter.WithProfiles
o.profilesStabilityLevel = sl
o.CreateProfilesFunc = createProfiles
})
}
type factory struct {
exporter.Factory
CreateProfilesFunc
profilesStabilityLevel component.StabilityLevel
}
func (f *factory) ProfilesStability() component.StabilityLevel {
return f.profilesStabilityLevel
}
// NewFactory returns a Factory. // NewFactory returns a Factory.
func NewFactory(cfgType component.Type, createDefaultConfig component.CreateDefaultConfigFunc, options ...FactoryOption) Factory { // Deprecated: [0.116.0] Use xeporter.NewFactory instead.
opts := factoryOpts{factory: &factory{}} var NewFactory = xexporter.NewFactory
for _, opt := range options {
opt.applyOption(&opts)
}
opts.factory.Factory = exporter.NewFactory(cfgType, createDefaultConfig, opts.opts...)
return opts.factory
}

View File

@ -6,9 +6,8 @@ require (
github.com/stretchr/testify v1.10.0 github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component v0.115.0 go.opentelemetry.io/collector/component v0.115.0
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 go.opentelemetry.io/collector/consumer/consumertest v0.115.0
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/pipeline v0.115.0 go.opentelemetry.io/collector/exporter/xexporter v0.115.0
) )
require ( require (
@ -20,8 +19,10 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect
go.opentelemetry.io/collector/consumer v1.21.0 // indirect go.opentelemetry.io/collector/consumer v1.21.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/pdata v1.21.0 // indirect go.opentelemetry.io/collector/pdata v1.21.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect
go.opentelemetry.io/collector/pipeline v0.115.0 // indirect
go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel v1.32.0 // indirect
go.opentelemetry.io/otel/metric v1.32.0 // indirect go.opentelemetry.io/otel/metric v1.32.0 // indirect
go.opentelemetry.io/otel/trace v1.32.0 // indirect go.opentelemetry.io/otel/trace v1.32.0 // indirect
@ -38,6 +39,8 @@ require (
replace go.opentelemetry.io/collector/consumer/xconsumer => ../../consumer/xconsumer replace go.opentelemetry.io/collector/consumer/xconsumer => ../../consumer/xconsumer
replace go.opentelemetry.io/collector/exporter/xexporter => ../xexporter
replace go.opentelemetry.io/collector/extension => ../../extension replace go.opentelemetry.io/collector/extension => ../../extension
replace go.opentelemetry.io/collector/extension/experimental/storage => ../../extension/experimental/storage replace go.opentelemetry.io/collector/extension/experimental/storage => ../../extension/experimental/storage

View File

@ -12,7 +12,7 @@ require (
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 go.opentelemetry.io/collector/consumer/consumererror v0.115.0
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 go.opentelemetry.io/collector/consumer/consumertest v0.115.0
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 go.opentelemetry.io/collector/exporter/xexporter v0.115.0
go.opentelemetry.io/collector/pdata v1.21.0 go.opentelemetry.io/collector/pdata v1.21.0
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 go.opentelemetry.io/collector/pdata/pprofile v0.115.0
go.opentelemetry.io/collector/pipeline v0.115.0 go.opentelemetry.io/collector/pipeline v0.115.0
@ -77,7 +77,7 @@ replace go.opentelemetry.io/collector/pipeline => ../../pipeline
replace go.opentelemetry.io/collector/pdata => ../../pdata replace go.opentelemetry.io/collector/pdata => ../../pdata
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../xexporter
replace go.opentelemetry.io/collector/component => ../../component replace go.opentelemetry.io/collector/component => ../../component

View File

@ -12,7 +12,7 @@ import (
"go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterprofiles" "go.opentelemetry.io/collector/exporter/xexporter"
) )
var nopType = component.MustNewType("nop") var nopType = component.MustNewType("nop")
@ -28,13 +28,13 @@ func NewNopSettings() exporter.Settings {
// NewNopFactory returns an exporter.Factory that constructs nop exporters. // NewNopFactory returns an exporter.Factory that constructs nop exporters.
func NewNopFactory() exporter.Factory { func NewNopFactory() exporter.Factory {
return exporterprofiles.NewFactory( return xexporter.NewFactory(
nopType, nopType,
func() component.Config { return &nopConfig{} }, func() component.Config { return &nopConfig{} },
exporterprofiles.WithTraces(createTraces, component.StabilityLevelStable), xexporter.WithTraces(createTraces, component.StabilityLevelStable),
exporterprofiles.WithMetrics(createMetrics, component.StabilityLevelStable), xexporter.WithMetrics(createMetrics, component.StabilityLevelStable),
exporterprofiles.WithLogs(createLogs, component.StabilityLevelStable), xexporter.WithLogs(createLogs, component.StabilityLevelStable),
exporterprofiles.WithProfiles(createProfiles, component.StabilityLevelAlpha), xexporter.WithProfiles(createProfiles, component.StabilityLevelAlpha),
) )
} }
@ -50,7 +50,7 @@ func createLogs(context.Context, exporter.Settings, component.Config) (exporter.
return nopInstance, nil return nopInstance, nil
} }
func createProfiles(context.Context, exporter.Settings, component.Config) (exporterprofiles.Profiles, error) { func createProfiles(context.Context, exporter.Settings, component.Config) (xexporter.Profiles, error) {
return nopInstance, nil return nopInstance, nil
} }

View File

@ -12,7 +12,7 @@ import (
"go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/exporter/exporterprofiles" "go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/plog"
"go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/pmetric"
"go.opentelemetry.io/collector/pdata/pprofile" "go.opentelemetry.io/collector/pdata/pprofile"
@ -44,7 +44,7 @@ func TestNewNopFactory(t *testing.T) {
assert.NoError(t, logs.ConsumeLogs(context.Background(), plog.NewLogs())) assert.NoError(t, logs.ConsumeLogs(context.Background(), plog.NewLogs()))
assert.NoError(t, logs.Shutdown(context.Background())) assert.NoError(t, logs.Shutdown(context.Background()))
profiles, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), NewNopSettings(), cfg) profiles, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), NewNopSettings(), cfg)
require.NoError(t, err) require.NoError(t, err)
assert.NoError(t, profiles.Start(context.Background(), componenttest.NewNopHost())) assert.NoError(t, profiles.Start(context.Background(), componenttest.NewNopHost()))
assert.NoError(t, profiles.ConsumeProfiles(context.Background(), pprofile.NewProfiles())) assert.NoError(t, profiles.ConsumeProfiles(context.Background(), pprofile.NewProfiles()))

View File

@ -42,7 +42,7 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/xexporter v0.115.0 // indirect
go.opentelemetry.io/collector/extension v0.115.0 // indirect go.opentelemetry.io/collector/extension v0.115.0 // indirect
go.opentelemetry.io/collector/receiver v0.115.0 // indirect go.opentelemetry.io/collector/receiver v0.115.0 // indirect
go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect go.opentelemetry.io/collector/receiver/receivertest v0.115.0 // indirect
@ -90,7 +90,7 @@ replace go.opentelemetry.io/collector/receiver/xreceiver => ../receiver/xreceive
replace go.opentelemetry.io/collector/receiver/receivertest => ../receiver/receivertest replace go.opentelemetry.io/collector/receiver/receivertest => ../receiver/receivertest
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ./exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ./xexporter
replace go.opentelemetry.io/collector/exporter/exportertest => ./exportertest replace go.opentelemetry.io/collector/exporter/exportertest => ./exportertest

View File

@ -34,7 +34,7 @@ require (
go.opentelemetry.io/collector/consumer v1.21.0 // indirect go.opentelemetry.io/collector/consumer v1.21.0 // indirect
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/xexporter v0.115.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect
go.opentelemetry.io/collector/pipeline v0.115.0 // indirect go.opentelemetry.io/collector/pipeline v0.115.0 // indirect
go.opentelemetry.io/collector/receiver v0.115.0 // indirect go.opentelemetry.io/collector/receiver v0.115.0 // indirect
@ -90,7 +90,7 @@ replace go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xrece
replace go.opentelemetry.io/collector/receiver/receivertest => ../../receiver/receivertest replace go.opentelemetry.io/collector/receiver/receivertest => ../../receiver/receivertest
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../xexporter
replace go.opentelemetry.io/collector/pipeline => ../../pipeline replace go.opentelemetry.io/collector/pipeline => ../../pipeline

View File

@ -16,19 +16,19 @@ import (
"go.opentelemetry.io/collector/exporter/exporterbatcher" "go.opentelemetry.io/collector/exporter/exporterbatcher"
"go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exporterhelper"
"go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles" "go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/otlpexporter/internal/metadata" "go.opentelemetry.io/collector/exporter/otlpexporter/internal/metadata"
"go.opentelemetry.io/collector/exporter/xexporter"
) )
// NewFactory creates a factory for OTLP exporter. // NewFactory creates a factory for OTLP exporter.
func NewFactory() exporter.Factory { func NewFactory() exporter.Factory {
return exporterprofiles.NewFactory( return xexporter.NewFactory(
metadata.Type, metadata.Type,
createDefaultConfig, createDefaultConfig,
exporterprofiles.WithTraces(createTraces, metadata.TracesStability), xexporter.WithTraces(createTraces, metadata.TracesStability),
exporterprofiles.WithMetrics(createMetrics, metadata.MetricsStability), xexporter.WithMetrics(createMetrics, metadata.MetricsStability),
exporterprofiles.WithLogs(createLogs, metadata.LogsStability), xexporter.WithLogs(createLogs, metadata.LogsStability),
exporterprofiles.WithProfiles(createProfilesExporter, metadata.ProfilesStability), xexporter.WithProfiles(createProfilesExporter, metadata.ProfilesStability),
) )
} }
@ -112,7 +112,7 @@ func createProfilesExporter(
ctx context.Context, ctx context.Context,
set exporter.Settings, set exporter.Settings,
cfg component.Config, cfg component.Config,
) (exporterprofiles.Profiles, error) { ) (xexporter.Profiles, error) {
oce := newExporter(cfg, set) oce := newExporter(cfg, set)
oCfg := cfg.(*Config) oCfg := cfg.(*Config)
return exporterhelperprofiles.NewProfilesExporter(ctx, set, cfg, return exporterhelperprofiles.NewProfilesExporter(ctx, set, cfg,

View File

@ -19,8 +19,8 @@ import (
"go.opentelemetry.io/collector/config/configretry" "go.opentelemetry.io/collector/config/configretry"
"go.opentelemetry.io/collector/config/configtls" "go.opentelemetry.io/collector/config/configtls"
"go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exporterhelper"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/internal/testutil" "go.opentelemetry.io/collector/internal/testutil"
) )
@ -319,7 +319,7 @@ func TestCreateProfiles(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
factory := NewFactory() factory := NewFactory()
set := exportertest.NewNopSettings() set := exportertest.NewNopSettings()
consumer, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), set, tt.config) consumer, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), set, tt.config)
require.NoError(t, err) require.NoError(t, err)
assert.NotNil(t, consumer) assert.NotNil(t, consumer)
err = consumer.Start(context.Background(), componenttest.NewNopHost()) err = consumer.Start(context.Background(), componenttest.NewNopHost())

View File

@ -18,8 +18,8 @@ require (
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 go.opentelemetry.io/collector/consumer/consumererror v0.115.0
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exportertest v0.115.0 go.opentelemetry.io/collector/exporter/exportertest v0.115.0
go.opentelemetry.io/collector/exporter/xexporter v0.115.0
go.opentelemetry.io/collector/pdata v1.21.0 go.opentelemetry.io/collector/pdata v1.21.0
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 go.opentelemetry.io/collector/pdata/pprofile v0.115.0
go.opentelemetry.io/collector/pdata/testdata v0.115.0 go.opentelemetry.io/collector/pdata/testdata v0.115.0
@ -133,7 +133,7 @@ replace go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xrece
replace go.opentelemetry.io/collector/receiver/receivertest => ../../receiver/receivertest replace go.opentelemetry.io/collector/receiver/receivertest => ../../receiver/receivertest
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../xexporter
replace go.opentelemetry.io/collector/pipeline => ../../pipeline replace go.opentelemetry.io/collector/pipeline => ../../pipeline

View File

@ -30,8 +30,8 @@ import (
"go.opentelemetry.io/collector/config/configopaque" "go.opentelemetry.io/collector/config/configopaque"
"go.opentelemetry.io/collector/config/configtls" "go.opentelemetry.io/collector/config/configtls"
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/plog"
"go.opentelemetry.io/collector/pdata/plog/plogotlp" "go.opentelemetry.io/collector/pdata/plog/plogotlp"
"go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/pmetric"
@ -894,7 +894,7 @@ func TestSendProfiles(t *testing.T) {
logger, observed := observer.New(zap.DebugLevel) logger, observed := observer.New(zap.DebugLevel)
set.TelemetrySettings.Logger = zap.New(logger) set.TelemetrySettings.Logger = zap.New(logger)
exp, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), set, cfg) exp, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), set, cfg)
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, exp) require.NotNil(t, exp)
@ -1006,7 +1006,7 @@ func TestSendProfilesWhenEndpointHasHttpScheme(t *testing.T) {
cfg.ClientConfig.TLSSetting.InsecureSkipVerify = true cfg.ClientConfig.TLSSetting.InsecureSkipVerify = true
} }
set := exportertest.NewNopSettings() set := exportertest.NewNopSettings()
exp, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), set, cfg) exp, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), set, cfg)
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, exp) require.NotNil(t, exp)

View File

@ -18,19 +18,19 @@ import (
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exporterhelper"
"go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles" "go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/otlphttpexporter/internal/metadata" "go.opentelemetry.io/collector/exporter/otlphttpexporter/internal/metadata"
"go.opentelemetry.io/collector/exporter/xexporter"
) )
// NewFactory creates a factory for OTLP exporter. // NewFactory creates a factory for OTLP exporter.
func NewFactory() exporter.Factory { func NewFactory() exporter.Factory {
return exporterprofiles.NewFactory( return xexporter.NewFactory(
metadata.Type, metadata.Type,
createDefaultConfig, createDefaultConfig,
exporterprofiles.WithTraces(createTraces, metadata.TracesStability), xexporter.WithTraces(createTraces, metadata.TracesStability),
exporterprofiles.WithMetrics(createMetrics, metadata.MetricsStability), xexporter.WithMetrics(createMetrics, metadata.MetricsStability),
exporterprofiles.WithLogs(createLogs, metadata.LogsStability), xexporter.WithLogs(createLogs, metadata.LogsStability),
exporterprofiles.WithProfiles(createProfiles, metadata.ProfilesStability), xexporter.WithProfiles(createProfiles, metadata.ProfilesStability),
) )
} }
@ -154,7 +154,7 @@ func createProfiles(
ctx context.Context, ctx context.Context,
set exporter.Settings, set exporter.Settings,
cfg component.Config, cfg component.Config,
) (exporterprofiles.Profiles, error) { ) (xexporter.Profiles, error) {
oce, err := newExporter(cfg, set) oce, err := newExporter(cfg, set)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -17,8 +17,8 @@ import (
"go.opentelemetry.io/collector/config/confighttp" "go.opentelemetry.io/collector/config/confighttp"
"go.opentelemetry.io/collector/config/configopaque" "go.opentelemetry.io/collector/config/configopaque"
"go.opentelemetry.io/collector/config/configtls" "go.opentelemetry.io/collector/config/configtls"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/internal/testutil" "go.opentelemetry.io/collector/internal/testutil"
) )
@ -205,7 +205,7 @@ func TestCreateProfiles(t *testing.T) {
cfg.ClientConfig.Endpoint = "http://" + testutil.GetAvailableLocalAddress(t) cfg.ClientConfig.Endpoint = "http://" + testutil.GetAvailableLocalAddress(t)
set := exportertest.NewNopSettings() set := exportertest.NewNopSettings()
oexp, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), set, cfg) oexp, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), set, cfg)
require.NoError(t, err) require.NoError(t, err)
require.NotNil(t, oexp) require.NotNil(t, oexp)
} }

View File

@ -17,8 +17,8 @@ require (
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 go.opentelemetry.io/collector/consumer/consumererror v0.115.0
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exportertest v0.115.0 go.opentelemetry.io/collector/exporter/exportertest v0.115.0
go.opentelemetry.io/collector/exporter/xexporter v0.115.0
go.opentelemetry.io/collector/pdata v1.21.0 go.opentelemetry.io/collector/pdata v1.21.0
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 go.opentelemetry.io/collector/pdata/pprofile v0.115.0
go.uber.org/goleak v1.3.0 go.uber.org/goleak v1.3.0
@ -139,7 +139,7 @@ replace go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofil
replace go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../exporterhelper/exporterhelperprofiles replace go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles => ../exporterhelper/exporterhelperprofiles
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../xexporter
replace go.opentelemetry.io/collector/pipeline => ../../pipeline replace go.opentelemetry.io/collector/pipeline => ../../pipeline

View File

@ -0,0 +1 @@
include ../../Makefile.Common

View File

@ -0,0 +1,109 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package xexporter // import "go.opentelemetry.io/collector/exporter/xexporter"
import (
"context"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/consumer/xconsumer"
"go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/pipeline"
)
// Profiles is an exporter that can consume profiles.
type Profiles interface {
component.Component
xconsumer.Profiles
}
type Factory interface {
exporter.Factory
// CreateProfiles creates a Profiles exporter based on this config.
// If the exporter type does not support tracing,
// this function returns the error [pipeline.ErrSignalNotSupported].
CreateProfiles(ctx context.Context, set exporter.Settings, cfg component.Config) (Profiles, error)
// ProfilesStability gets the stability level of the Profiles exporter.
ProfilesStability() component.StabilityLevel
}
// FactoryOption apply changes to ReceiverOptions.
type FactoryOption interface {
// applyOption applies the option.
applyOption(o *factoryOpts)
}
// factoryOptionFunc is an ReceiverFactoryOption created through a function.
type factoryOptionFunc func(*factoryOpts)
func (f factoryOptionFunc) applyOption(o *factoryOpts) {
f(o)
}
type factoryOpts struct {
opts []exporter.FactoryOption
*factory
}
// CreateProfilesFunc is the equivalent of Factory.CreateProfiles.
type CreateProfilesFunc func(context.Context, exporter.Settings, component.Config) (Profiles, error)
// CreateProfiles implements Factory.CreateProfiles.
func (f CreateProfilesFunc) CreateProfiles(ctx context.Context, set exporter.Settings, cfg component.Config) (Profiles, error) {
if f == nil {
return nil, pipeline.ErrSignalNotSupported
}
return f(ctx, set, cfg)
}
// WithTraces overrides the default "error not supported" implementation for CreateTraces and the default "undefined" stability level.
func WithTraces(createTraces exporter.CreateTracesFunc, sl component.StabilityLevel) FactoryOption {
return factoryOptionFunc(func(o *factoryOpts) {
o.opts = append(o.opts, exporter.WithTraces(createTraces, sl))
})
}
// WithMetrics overrides the default "error not supported" implementation for CreateMetrics and the default "undefined" stability level.
func WithMetrics(createMetrics exporter.CreateMetricsFunc, sl component.StabilityLevel) FactoryOption {
return factoryOptionFunc(func(o *factoryOpts) {
o.opts = append(o.opts, exporter.WithMetrics(createMetrics, sl))
})
}
// WithLogs overrides the default "error not supported" implementation for CreateLogs and the default "undefined" stability level.
func WithLogs(createLogs exporter.CreateLogsFunc, sl component.StabilityLevel) FactoryOption {
return factoryOptionFunc(func(o *factoryOpts) {
o.opts = append(o.opts, exporter.WithLogs(createLogs, sl))
})
}
// WithProfiles overrides the default "error not supported" implementation for CreateProfilesExporter and the default "undefined" stability level.
func WithProfiles(createProfiles CreateProfilesFunc, sl component.StabilityLevel) FactoryOption {
return factoryOptionFunc(func(o *factoryOpts) {
o.profilesStabilityLevel = sl
o.CreateProfilesFunc = createProfiles
})
}
type factory struct {
exporter.Factory
CreateProfilesFunc
profilesStabilityLevel component.StabilityLevel
}
func (f *factory) ProfilesStability() component.StabilityLevel {
return f.profilesStabilityLevel
}
// NewFactory returns a Factory.
func NewFactory(cfgType component.Type, createDefaultConfig component.CreateDefaultConfigFunc, options ...FactoryOption) Factory {
opts := factoryOpts{factory: &factory{}}
for _, opt := range options {
opt.applyOption(&opts)
}
opts.factory.Factory = exporter.NewFactory(cfgType, createDefaultConfig, opts.opts...)
return opts.factory
}

View File

@ -0,0 +1,46 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package xexporter
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/exporter"
)
func TestNewFactoryWithProfiles(t *testing.T) {
testType := component.MustNewType("test")
defaultCfg := struct{}{}
factory := NewFactory(
testType,
func() component.Config { return &defaultCfg },
WithProfiles(createProfiles, component.StabilityLevelDevelopment),
)
assert.EqualValues(t, testType, factory.Type())
assert.EqualValues(t, &defaultCfg, factory.CreateDefaultConfig())
assert.Equal(t, component.StabilityLevelDevelopment, factory.ProfilesStability())
_, err := factory.CreateProfiles(context.Background(), exporter.Settings{}, &defaultCfg)
assert.NoError(t, err)
}
var nopInstance = &nop{
Consumer: consumertest.NewNop(),
}
// nop stores consumed profiles for testing purposes.
type nop struct {
component.StartFunc
component.ShutdownFunc
consumertest.Consumer
}
func createProfiles(context.Context, exporter.Settings, component.Config) (Profiles, error) {
return nopInstance, nil
}

81
exporter/xexporter/go.mod Normal file
View File

@ -0,0 +1,81 @@
module go.opentelemetry.io/collector/exporter/xexporter
go 1.22.0
require (
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component v0.115.0
go.opentelemetry.io/collector/consumer/consumertest v0.115.0
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234
go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/pipeline v0.115.0
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect
go.opentelemetry.io/collector/consumer v1.21.0 // indirect
go.opentelemetry.io/collector/pdata v1.21.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect
go.opentelemetry.io/otel v1.32.0 // indirect
go.opentelemetry.io/otel/metric v1.32.0 // indirect
go.opentelemetry.io/otel/trace v1.32.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/net v0.29.0 // indirect
golang.org/x/sys v0.27.0 // indirect
golang.org/x/text v0.18.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/grpc v1.68.1 // indirect
google.golang.org/protobuf v1.35.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace go.opentelemetry.io/collector/consumer/xconsumer => ../../consumer/xconsumer
replace go.opentelemetry.io/collector/extension => ../../extension
replace go.opentelemetry.io/collector/extension/experimental/storage => ../../extension/experimental/storage
replace go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
replace go.opentelemetry.io/collector/config/configtelemetry => ../../config/configtelemetry
replace go.opentelemetry.io/collector/config/configretry => ../../config/configretry
replace go.opentelemetry.io/collector/pdata/testdata => ../../pdata/testdata
replace go.opentelemetry.io/collector/component => ../../component
replace go.opentelemetry.io/collector/component/componenttest => ../../component/componenttest
replace go.opentelemetry.io/collector/pdata => ../../pdata
replace go.opentelemetry.io/collector/receiver => ../../receiver
replace go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest
replace go.opentelemetry.io/collector/consumer => ../../consumer
replace go.opentelemetry.io/collector/exporter => ../
replace go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xreceiver
replace go.opentelemetry.io/collector/pipeline => ../../pipeline
replace go.opentelemetry.io/collector/exporter/exportertest => ../exportertest
replace go.opentelemetry.io/collector/consumer/consumererror => ../../consumer/consumererror
replace go.opentelemetry.io/collector/receiver/receivertest => ../../receiver/receivertest
replace go.opentelemetry.io/collector/extension/extensiontest => ../../extension/extensiontest
replace go.opentelemetry.io/collector/scraper => ../../scraper
replace go.opentelemetry.io/collector/featuregate => ../../featuregate

91
exporter/xexporter/go.sum generated Normal file
View File

@ -0,0 +1,91 @@
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U=
go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg=
go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M=
go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8=
go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM=
go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0=
google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw=
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View File

@ -87,7 +87,7 @@ require (
go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumererror/consumererrorprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/exporterhelper/exporterhelperprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/xexporter v0.115.0 // indirect
go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect go.opentelemetry.io/collector/extension/auth v0.115.0 // indirect
go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect go.opentelemetry.io/collector/extension/experimental/storage v0.115.0 // indirect
go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect
@ -220,7 +220,7 @@ replace go.opentelemetry.io/collector/processor/xprocessor => ../../processor/xp
replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporter/exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../../exporter/xexporter
replace go.opentelemetry.io/collector/pipeline => ../../pipeline replace go.opentelemetry.io/collector/pipeline => ../../pipeline

View File

@ -75,7 +75,7 @@ require (
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/xexporter v0.115.0 // indirect
go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect
go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect
go.opentelemetry.io/collector/pdata v1.21.0 // indirect go.opentelemetry.io/collector/pdata v1.21.0 // indirect
@ -187,7 +187,7 @@ replace go.opentelemetry.io/collector/processor/xprocessor => ../processor/xproc
replace go.opentelemetry.io/collector/connector/connectorprofiles => ../connector/connectorprofiles replace go.opentelemetry.io/collector/connector/connectorprofiles => ../connector/connectorprofiles
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporter/exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../exporter/xexporter
replace go.opentelemetry.io/collector/pipeline => ../pipeline replace go.opentelemetry.io/collector/pipeline => ../pipeline

View File

@ -72,7 +72,7 @@ require (
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect go.opentelemetry.io/collector/consumer/consumertest v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 // indirect
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0 // indirect go.opentelemetry.io/collector/exporter/xexporter v0.115.0 // indirect
go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 // indirect
go.opentelemetry.io/collector/featuregate v1.21.0 // indirect go.opentelemetry.io/collector/featuregate v1.21.0 // indirect
go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect go.opentelemetry.io/collector/internal/fanoutconsumer v0.115.0 // indirect
@ -182,7 +182,7 @@ replace go.opentelemetry.io/collector/processor/xprocessor => ../../processor/xp
replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles replace go.opentelemetry.io/collector/connector/connectorprofiles => ../../connector/connectorprofiles
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../../exporter/exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../../exporter/xexporter
replace go.opentelemetry.io/collector/pipeline => ../../pipeline replace go.opentelemetry.io/collector/pipeline => ../../pipeline

View File

@ -23,8 +23,8 @@ require (
go.opentelemetry.io/collector/consumer/consumertest v0.115.0 go.opentelemetry.io/collector/consumer/consumertest v0.115.0
go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234 go.opentelemetry.io/collector/consumer/xconsumer v0.115.1-0.20241213185000-4593ba7de234
go.opentelemetry.io/collector/exporter v0.115.0 go.opentelemetry.io/collector/exporter v0.115.0
go.opentelemetry.io/collector/exporter/exporterprofiles v0.115.0
go.opentelemetry.io/collector/exporter/exportertest v0.115.0 go.opentelemetry.io/collector/exporter/exportertest v0.115.0
go.opentelemetry.io/collector/exporter/xexporter v0.115.0
go.opentelemetry.io/collector/extension v0.115.0 go.opentelemetry.io/collector/extension v0.115.0
go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0 go.opentelemetry.io/collector/extension/extensioncapabilities v0.115.0
go.opentelemetry.io/collector/extension/extensiontest v0.115.0 go.opentelemetry.io/collector/extension/extensiontest v0.115.0
@ -199,7 +199,7 @@ replace go.opentelemetry.io/collector/receiver/receivertest => ../receiver/recei
replace go.opentelemetry.io/collector/processor/xprocessor => ../processor/xprocessor replace go.opentelemetry.io/collector/processor/xprocessor => ../processor/xprocessor
replace go.opentelemetry.io/collector/exporter/exporterprofiles => ../exporter/exporterprofiles replace go.opentelemetry.io/collector/exporter/xexporter => ../exporter/xexporter
replace go.opentelemetry.io/collector/pipeline/pipelineprofiles => ../pipeline/pipelineprofiles replace go.opentelemetry.io/collector/pipeline/pipelineprofiles => ../pipeline/pipelineprofiles

View File

@ -9,8 +9,8 @@ import (
"go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pipeline" "go.opentelemetry.io/collector/pipeline"
) )
@ -74,7 +74,7 @@ func (b *ExporterBuilder) CreateLogs(ctx context.Context, set exporter.Settings)
} }
// CreateProfiles creates a Profiles exporter based on the settings and config. // CreateProfiles creates a Profiles exporter based on the settings and config.
func (b *ExporterBuilder) CreateProfiles(ctx context.Context, set exporter.Settings) (exporterprofiles.Profiles, error) { func (b *ExporterBuilder) CreateProfiles(ctx context.Context, set exporter.Settings) (xexporter.Profiles, error) {
cfg, existsCfg := b.cfgs[set.ID] cfg, existsCfg := b.cfgs[set.ID]
if !existsCfg { if !existsCfg {
return nil, fmt.Errorf("exporter %q is not configured", set.ID) return nil, fmt.Errorf("exporter %q is not configured", set.ID)
@ -85,7 +85,7 @@ func (b *ExporterBuilder) CreateProfiles(ctx context.Context, set exporter.Setti
return nil, fmt.Errorf("exporter factory not available for: %q", set.ID) return nil, fmt.Errorf("exporter factory not available for: %q", set.ID)
} }
f, ok := expFact.(exporterprofiles.Factory) f, ok := expFact.(xexporter.Factory)
if !ok { if !ok {
return nil, pipeline.ErrSignalNotSupported return nil, pipeline.ErrSignalNotSupported
} }

View File

@ -14,21 +14,21 @@ import (
"go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterprofiles"
"go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/exporter/exportertest"
"go.opentelemetry.io/collector/exporter/xexporter"
) )
func TestExporterBuilder(t *testing.T) { func TestExporterBuilder(t *testing.T) {
defaultCfg := struct{}{} defaultCfg := struct{}{}
factories, err := exporter.MakeFactoryMap([]exporter.Factory{ factories, err := exporter.MakeFactoryMap([]exporter.Factory{
exporter.NewFactory(component.MustNewType("err"), nil), exporter.NewFactory(component.MustNewType("err"), nil),
exporterprofiles.NewFactory( xexporter.NewFactory(
component.MustNewType("all"), component.MustNewType("all"),
func() component.Config { return &defaultCfg }, func() component.Config { return &defaultCfg },
exporterprofiles.WithTraces(createExporterTraces, component.StabilityLevelDevelopment), xexporter.WithTraces(createExporterTraces, component.StabilityLevelDevelopment),
exporterprofiles.WithMetrics(createExporterMetrics, component.StabilityLevelAlpha), xexporter.WithMetrics(createExporterMetrics, component.StabilityLevelAlpha),
exporterprofiles.WithLogs(createExporterLogs, component.StabilityLevelDeprecated), xexporter.WithLogs(createExporterLogs, component.StabilityLevelDeprecated),
exporterprofiles.WithProfiles(createExporterProfiles, component.StabilityLevelDevelopment), xexporter.WithProfiles(createxexporter, component.StabilityLevelDevelopment),
), ),
}...) }...)
require.NoError(t, err) require.NoError(t, err)
@ -105,13 +105,13 @@ func TestExporterBuilder(t *testing.T) {
func TestExporterBuilderMissingConfig(t *testing.T) { func TestExporterBuilderMissingConfig(t *testing.T) {
defaultCfg := struct{}{} defaultCfg := struct{}{}
factories, err := exporter.MakeFactoryMap([]exporter.Factory{ factories, err := exporter.MakeFactoryMap([]exporter.Factory{
exporterprofiles.NewFactory( xexporter.NewFactory(
component.MustNewType("all"), component.MustNewType("all"),
func() component.Config { return &defaultCfg }, func() component.Config { return &defaultCfg },
exporterprofiles.WithTraces(createExporterTraces, component.StabilityLevelDevelopment), xexporter.WithTraces(createExporterTraces, component.StabilityLevelDevelopment),
exporterprofiles.WithMetrics(createExporterMetrics, component.StabilityLevelAlpha), xexporter.WithMetrics(createExporterMetrics, component.StabilityLevelAlpha),
exporterprofiles.WithLogs(createExporterLogs, component.StabilityLevelDeprecated), xexporter.WithLogs(createExporterLogs, component.StabilityLevelDeprecated),
exporterprofiles.WithProfiles(createExporterProfiles, component.StabilityLevelDevelopment), xexporter.WithProfiles(createxexporter, component.StabilityLevelDevelopment),
), ),
}...) }...)
@ -176,7 +176,7 @@ func TestNewNopExporterConfigsAndFactories(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
assert.IsType(t, logs, bLogs) assert.IsType(t, logs, bLogs)
profiles, err := factory.(exporterprofiles.Factory).CreateProfiles(context.Background(), set, cfg) profiles, err := factory.(xexporter.Factory).CreateProfiles(context.Background(), set, cfg)
require.NoError(t, err) require.NoError(t, err)
bProfiles, err := builder.CreateProfiles(context.Background(), set) bProfiles, err := builder.CreateProfiles(context.Background(), set)
require.NoError(t, err) require.NoError(t, err)
@ -206,7 +206,7 @@ func createExporterLogs(context.Context, exporter.Settings, component.Config) (e
return nopExporterInstance, nil return nopExporterInstance, nil
} }
func createExporterProfiles(context.Context, exporter.Settings, component.Config) (exporterprofiles.Profiles, error) { func createxexporter(context.Context, exporter.Settings, component.Config) (xexporter.Profiles, error) {
return nopExporterInstance, nil return nopExporterInstance, nil
} }

View File

@ -15,7 +15,7 @@ import (
"go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/consumer/xconsumer" "go.opentelemetry.io/collector/consumer/xconsumer"
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterprofiles" "go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pipeline" "go.opentelemetry.io/collector/pipeline"
"go.opentelemetry.io/collector/pipeline/pipelineprofiles" "go.opentelemetry.io/collector/pipeline/pipelineprofiles"
"go.opentelemetry.io/collector/processor" "go.opentelemetry.io/collector/processor"
@ -231,18 +231,18 @@ func newErrProcessorFactory() processor.Factory {
} }
func newErrExporterFactory() exporter.Factory { func newErrExporterFactory() exporter.Factory {
return exporterprofiles.NewFactory(component.MustNewType("err"), return xexporter.NewFactory(component.MustNewType("err"),
func() component.Config { return &struct{}{} }, func() component.Config { return &struct{}{} },
exporterprofiles.WithTraces(func(context.Context, exporter.Settings, component.Config) (exporter.Traces, error) { xexporter.WithTraces(func(context.Context, exporter.Settings, component.Config) (exporter.Traces, error) {
return &errComponent{}, nil return &errComponent{}, nil
}, component.StabilityLevelUndefined), }, component.StabilityLevelUndefined),
exporterprofiles.WithLogs(func(context.Context, exporter.Settings, component.Config) (exporter.Logs, error) { xexporter.WithLogs(func(context.Context, exporter.Settings, component.Config) (exporter.Logs, error) {
return &errComponent{}, nil return &errComponent{}, nil
}, component.StabilityLevelUndefined), }, component.StabilityLevelUndefined),
exporterprofiles.WithMetrics(func(context.Context, exporter.Settings, component.Config) (exporter.Metrics, error) { xexporter.WithMetrics(func(context.Context, exporter.Settings, component.Config) (exporter.Metrics, error) {
return &errComponent{}, nil return &errComponent{}, nil
}, component.StabilityLevelUndefined), }, component.StabilityLevelUndefined),
exporterprofiles.WithProfiles(func(context.Context, exporter.Settings, component.Config) (exporterprofiles.Profiles, error) { xexporter.WithProfiles(func(context.Context, exporter.Settings, component.Config) (xexporter.Profiles, error) {
return &errComponent{}, nil return &errComponent{}, nil
}, component.StabilityLevelUndefined), }, component.StabilityLevelUndefined),
) )

View File

@ -9,7 +9,7 @@ import (
"go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer"
"go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterprofiles" "go.opentelemetry.io/collector/exporter/xexporter"
"go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/plog"
"go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/pmetric"
"go.opentelemetry.io/collector/pdata/pprofile" "go.opentelemetry.io/collector/pdata/pprofile"
@ -21,13 +21,13 @@ var testType = component.MustNewType("exampleexporter")
const stability = component.StabilityLevelDevelopment const stability = component.StabilityLevelDevelopment
// ExampleExporterFactory is factory for ExampleExporter. // ExampleExporterFactory is factory for ExampleExporter.
var ExampleExporterFactory = exporterprofiles.NewFactory( var ExampleExporterFactory = xexporter.NewFactory(
testType, testType,
createExporterDefaultConfig, createExporterDefaultConfig,
exporterprofiles.WithTraces(createTracesExporter, stability), xexporter.WithTraces(createTracesExporter, stability),
exporterprofiles.WithMetrics(createMetricsExporter, stability), xexporter.WithMetrics(createMetricsExporter, stability),
exporterprofiles.WithLogs(createLogsExporter, stability), xexporter.WithLogs(createLogsExporter, stability),
exporterprofiles.WithProfiles(createProfilesExporter, stability), xexporter.WithProfiles(createProfilesExporter, stability),
) )
func createExporterDefaultConfig() component.Config { func createExporterDefaultConfig() component.Config {
@ -46,7 +46,7 @@ func createLogsExporter(context.Context, exporter.Settings, component.Config) (e
return &ExampleExporter{}, nil return &ExampleExporter{}, nil
} }
func createProfilesExporter(context.Context, exporter.Settings, component.Config) (exporterprofiles.Profiles, error) { func createProfilesExporter(context.Context, exporter.Settings, component.Config) (xexporter.Profiles, error) {
return &ExampleExporter{}, nil return &ExampleExporter{}, nil
} }

View File

@ -55,6 +55,7 @@ module-sets:
- go.opentelemetry.io/collector/exporter/nopexporter - go.opentelemetry.io/collector/exporter/nopexporter
- go.opentelemetry.io/collector/exporter/otlpexporter - go.opentelemetry.io/collector/exporter/otlpexporter
- go.opentelemetry.io/collector/exporter/otlphttpexporter - go.opentelemetry.io/collector/exporter/otlphttpexporter
- go.opentelemetry.io/collector/exporter/xexporter
- go.opentelemetry.io/collector/extension - go.opentelemetry.io/collector/extension
- go.opentelemetry.io/collector/extension/auth - go.opentelemetry.io/collector/extension/auth
- go.opentelemetry.io/collector/extension/auth/authtest - go.opentelemetry.io/collector/extension/auth/authtest