@@ -9,26 +9,31 @@ import (
99
1010 "go.opentelemetry.io/collector/component"
1111 "go.opentelemetry.io/collector/consumer"
12+ "go.opentelemetry.io/collector/consumer/xconsumer"
1213 "go.opentelemetry.io/collector/processor"
1314 "go.opentelemetry.io/collector/processor/processorhelper"
15+ "go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper"
16+ "go.opentelemetry.io/collector/processor/xprocessor"
1417
1518 "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl"
1619 "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/common"
1720 "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/logs"
1821 "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/metadata"
1922 "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/metrics"
23+ "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/profiles"
2024 "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/traces"
2125)
2226
2327var processorCapabilities = consumer.Capabilities {MutatesData : true }
2428
2529func NewFactory () processor.Factory {
26- return processor .NewFactory (
30+ return xprocessor .NewFactory (
2731 metadata .Type ,
2832 createDefaultConfig ,
29- processor .WithLogs (createLogsProcessor , metadata .LogsStability ),
30- processor .WithTraces (createTracesProcessor , metadata .TracesStability ),
31- processor .WithMetrics (createMetricsProcessor , metadata .MetricsStability ),
33+ xprocessor .WithLogs (createLogsProcessor , metadata .LogsStability ),
34+ xprocessor .WithTraces (createTracesProcessor , metadata .TracesStability ),
35+ xprocessor .WithMetrics (createMetricsProcessor , metadata .MetricsStability ),
36+ xprocessor .WithProfiles (createProfilesProcessor , metadata .ProfilesStability ),
3237 )
3338}
3439
@@ -104,3 +109,25 @@ func createMetricsProcessor(
104109 proc .ProcessMetrics ,
105110 processorhelper .WithCapabilities (processorCapabilities ))
106111}
112+
113+ func createProfilesProcessor (
114+ ctx context.Context ,
115+ set processor.Settings ,
116+ cfg component.Config ,
117+ nextConsumer xconsumer.Profiles ,
118+ ) (xprocessor.Profiles , error ) {
119+ oCfg := cfg .(* Config )
120+ oCfg .logger = set .Logger
121+
122+ proc , err := profiles .NewProcessor (oCfg .MetricStatements , oCfg .ErrorMode , set .TelemetrySettings )
123+ if err != nil {
124+ return nil , fmt .Errorf ("invalid config for \" transform\" processor %w" , err )
125+ }
126+ return xprocessorhelper .NewProfiles (
127+ ctx ,
128+ set ,
129+ cfg ,
130+ nextConsumer ,
131+ proc .ProcessProfiles ,
132+ xprocessorhelper .WithCapabilities (processorCapabilities ))
133+ }
0 commit comments