/
githubmirror
/
opentelemetry-collector-contrib
Обзор
Документация
Войти
/
githubmirror
/
opentelemetry-collector-contrib
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
processor/transformprocessor/factory.go
106 строк
3 KB
Bogdan Drutu
Upgrade core to latest (#35598)
04 окт 2024, 11:00
Не верифицирован
04 окт 2024, 11:00
fb37793
Код
Авторство
О чём код?
// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 package transformprocessor // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor" import ( "context" "fmt" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/processor" "go.opentelemetry.io/collector/processor/processorhelper" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/common" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/logs" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/metadata" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/metrics" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/traces" ) var processorCapabilities = consumer.Capabilities{MutatesData: true} func NewFactory() processor.Factory { return processor.NewFactory( metadata.Type, createDefaultConfig, processor.WithLogs(createLogsProcessor, metadata.LogsStability), processor.WithTraces(createTracesProcessor, metadata.TracesStability), processor.WithMetrics(createMetricsProcessor, metadata.MetricsStability), ) } func createDefaultConfig() component.Config { return &Config{ ErrorMode: ottl.PropagateError, TraceStatements: []common.ContextStatements{}, MetricStatements: []common.ContextStatements{}, LogStatements: []common.ContextStatements{}, } } func createLogsProcessor( ctx context.Context, set processor.Settings, cfg component.Config, nextConsumer consumer.Logs, ) (processor.Logs, error) { oCfg := cfg.(*Config) proc, err := logs.NewProcessor(oCfg.LogStatements, oCfg.ErrorMode, oCfg.FlattenData, set.TelemetrySettings) if err != nil { return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err) } return processorhelper.NewLogs( ctx, set, cfg, nextConsumer, proc.ProcessLogs, processorhelper.WithCapabilities(processorCapabilities)) } func createTracesProcessor( ctx context.Context, set processor.Settings, cfg component.Config, nextConsumer consumer.Traces, ) (processor.Traces, error) { oCfg := cfg.(*Config) proc, err := traces.NewProcessor(oCfg.TraceStatements, oCfg.ErrorMode, set.TelemetrySettings) if err != nil { return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err) } return processorhelper.NewTraces( ctx, set, cfg, nextConsumer, proc.ProcessTraces, processorhelper.WithCapabilities(processorCapabilities)) } func createMetricsProcessor( ctx context.Context, set processor.Settings, cfg component.Config, nextConsumer consumer.Metrics, ) (processor.Metrics, error) { oCfg := cfg.(*Config) oCfg.logger = set.Logger proc, err := metrics.NewProcessor(oCfg.MetricStatements, oCfg.ErrorMode, set.TelemetrySettings) if err != nil { return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err) } return processorhelper.NewMetrics( ctx, set, cfg, nextConsumer, proc.ProcessMetrics, processorhelper.WithCapabilities(processorCapabilities)) }