diff --git a/pkg/stanza/operator/transformer/retain/retain.go b/pkg/stanza/operator/transformer/retain/config.go similarity index 65% rename from pkg/stanza/operator/transformer/retain/retain.go rename to pkg/stanza/operator/transformer/retain/config.go index 4fb6fa86175d..ec31c27a7152 100644 --- a/pkg/stanza/operator/transformer/retain/retain.go +++ b/pkg/stanza/operator/transformer/retain/config.go @@ -4,7 +4,6 @@ package retain // import "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/transformer/retain" import ( - "context" "fmt" "strings" @@ -68,48 +67,3 @@ func (c Config) Build(logger *zap.SugaredLogger) (operator.Operator, error) { } return retainOp, nil } - -// Transformer keeps the given fields and deletes the rest. -type Transformer struct { - helper.TransformerOperator - Fields []entry.Field - AllBodyFields bool - AllAttributeFields bool - AllResourceFields bool -} - -// Process will process an entry with a retain transformation. -func (p *Transformer) Process(ctx context.Context, entry *entry.Entry) error { - return p.ProcessWith(ctx, entry, p.Transform) -} - -// Transform will apply the retain operation to an entry -func (p *Transformer) Transform(e *entry.Entry) error { - newEntry := entry.New() - newEntry.ObservedTimestamp = e.ObservedTimestamp - newEntry.Timestamp = e.Timestamp - - if !p.AllResourceFields { - newEntry.Resource = e.Resource - } - if !p.AllAttributeFields { - newEntry.Attributes = e.Attributes - } - if !p.AllBodyFields { - newEntry.Body = e.Body - } - - for _, field := range p.Fields { - val, ok := e.Get(field) - if !ok { - continue - } - err := newEntry.Set(field, val) - if err != nil { - return err - } - } - - *e = *newEntry - return nil -} diff --git a/pkg/stanza/operator/transformer/retain/transformer.go b/pkg/stanza/operator/transformer/retain/transformer.go new file mode 100644 index 000000000000..14ed45da293d --- /dev/null +++ b/pkg/stanza/operator/transformer/retain/transformer.go @@ -0,0 +1,56 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package retain // import "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/transformer/retain" + +import ( + "context" + + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/entry" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper" +) + +// Transformer keeps the given fields and deletes the rest. +type Transformer struct { + helper.TransformerOperator + Fields []entry.Field + AllBodyFields bool + AllAttributeFields bool + AllResourceFields bool +} + +// Process will process an entry with a retain transformation. +func (t *Transformer) Process(ctx context.Context, entry *entry.Entry) error { + return t.ProcessWith(ctx, entry, t.Transform) +} + +// Transform will apply the retain operation to an entry +func (t *Transformer) Transform(e *entry.Entry) error { + newEntry := entry.New() + newEntry.ObservedTimestamp = e.ObservedTimestamp + newEntry.Timestamp = e.Timestamp + + if !t.AllResourceFields { + newEntry.Resource = e.Resource + } + if !t.AllAttributeFields { + newEntry.Attributes = e.Attributes + } + if !t.AllBodyFields { + newEntry.Body = e.Body + } + + for _, field := range t.Fields { + val, ok := e.Get(field) + if !ok { + continue + } + err := newEntry.Set(field, val) + if err != nil { + return err + } + } + + *e = *newEntry + return nil +} diff --git a/pkg/stanza/operator/transformer/retain/retain_test.go b/pkg/stanza/operator/transformer/retain/transformer_test.go similarity index 100% rename from pkg/stanza/operator/transformer/retain/retain_test.go rename to pkg/stanza/operator/transformer/retain/transformer_test.go