/
githubmirror
/
opentelemetry-collector-contrib
Обзор
Документация
Войти
/
githubmirror
/
opentelemetry-collector-contrib
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
processor/transformprocessor/config.go
96 строк
4 KB
Tyler Helmuth
[pkg/ottl] set `processor.transform.ConvertBetweenSumAndGaugeMetricContext` as stable (#36216)
06 ноя 2024, 17:34
Не верифицирован
06 ноя 2024, 17:34
770befb
Код
Авторство
О чём код?
// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 package transformprocessor // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor" import ( "errors" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/featuregate" "go.uber.org/multierr" "go.uber.org/zap" "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/metrics" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/traces" ) var ( flatLogsFeatureGate = featuregate.GlobalRegistry().MustRegister("transform.flatten.logs", featuregate.StageAlpha, featuregate.WithRegisterDescription("Flatten log data prior to transformation so every record has a unique copy of the resource and scope. Regroups logs based on resource and scope after transformations."), featuregate.WithRegisterFromVersion("v0.103.0"), featuregate.WithRegisterReferenceURL("https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/32080#issuecomment-2120764953"), ) errFlatLogsGateDisabled = errors.New("'flatten_data' requires the 'transform.flatten.logs' feature gate to be enabled") ) // Config defines the configuration for the processor. type Config struct { // ErrorMode determines how the processor reacts to errors that occur while processing a statement. // Valid values are `ignore` and `propagate`. // `ignore` means the processor ignores errors returned by statements and continues on to the next statement. This is the recommended mode. // `propagate` means the processor returns the error up the pipeline. This will result in the payload being dropped from the collector. // The default value is `propagate`. ErrorMode ottl.ErrorMode `mapstructure:"error_mode"` TraceStatements []common.ContextStatements `mapstructure:"trace_statements"` MetricStatements []common.ContextStatements `mapstructure:"metric_statements"` LogStatements []common.ContextStatements `mapstructure:"log_statements"` FlattenData bool `mapstructure:"flatten_data"` logger *zap.Logger } var _ component.Config = (*Config)(nil) func (c *Config) Validate() error { var errors error if len(c.TraceStatements) > 0 { pc, err := common.NewTraceParserCollection(component.TelemetrySettings{Logger: zap.NewNop()}, common.WithSpanParser(traces.SpanFunctions()), common.WithSpanEventParser(traces.SpanEventFunctions())) if err != nil { return err } for _, cs := range c.TraceStatements { _, err = pc.ParseContextStatements(cs) if err != nil { errors = multierr.Append(errors, err) } } } if len(c.MetricStatements) > 0 { pc, err := common.NewMetricParserCollection(component.TelemetrySettings{Logger: zap.NewNop()}, common.WithMetricParser(metrics.MetricFunctions()), common.WithDataPointParser(metrics.DataPointFunctions())) if err != nil { return err } for _, cs := range c.MetricStatements { _, err := pc.ParseContextStatements(cs) if err != nil { errors = multierr.Append(errors, err) } } } if len(c.LogStatements) > 0 { pc, err := common.NewLogParserCollection(component.TelemetrySettings{Logger: zap.NewNop()}, common.WithLogParser(logs.LogFunctions())) if err != nil { return err } for _, cs := range c.LogStatements { _, err = pc.ParseContextStatements(cs) if err != nil { errors = multierr.Append(errors, err) } } } if c.FlattenData && !flatLogsFeatureGate.IsEnabled() { errors = multierr.Append(errors, errFlatLogsGateDisabled) } return errors }