From a768a62d0a7390d3b75997457c4df12bcd5c9695 Mon Sep 17 00:00:00 2001 From: Antoine Toulme Date: Thu, 14 Sep 2023 00:02:13 -0700 Subject: [PATCH] update stanza api --- .../receiver/scriptedinputsreceiver/config.go | 26 ++++++++++--------- .../scriptedinputsreceiver/config_test.go | 7 ++--- .../scriptedinputsreceiver/operator.go | 3 ++- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/internal/receiver/scriptedinputsreceiver/config.go b/internal/receiver/scriptedinputsreceiver/config.go index f0ea29a3af..2c72aeee33 100644 --- a/internal/receiver/scriptedinputsreceiver/config.go +++ b/internal/receiver/scriptedinputsreceiver/config.go @@ -22,8 +22,10 @@ import ( "sort" "time" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/decode" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/split" "go.uber.org/zap" ) @@ -43,12 +45,12 @@ var availableScripts = func() []string { }() type Config struct { - Multiline helper.MultilineConfig `mapstructure:"multiline,omitempty"` - ScriptName string `mapstructure:"script_name,omitempty"` - Encoding helper.EncodingConfig `mapstructure:",squash,omitempty"` - Source string `mapstructure:"source"` - SourceType string `mapstructure:"sourcetype"` - CollectionInterval string `mapstructure:"collection_interval"` + Multiline split.Config `mapstructure:"multiline,omitempty"` + ScriptName string `mapstructure:"script_name,omitempty"` + Encoding string `mapstructure:"encoding,omitempty"` + Source string `mapstructure:"source"` + SourceType string `mapstructure:"sourcetype"` + CollectionInterval string `mapstructure:"collection_interval"` helper.InputConfig `mapstructure:",squash"` MaxLogSize helper.ByteSize `mapstructure:"max_log_size,omitempty"` interval time.Duration @@ -57,9 +59,9 @@ type Config struct { func createDefaultConfig() *Config { return &Config{ + Encoding: "utf-8", InputConfig: helper.NewInputConfig(typeStr, typeStr), - Multiline: helper.NewMultilineConfig(), - Encoding: helper.NewEncodingConfig(), + Multiline: split.Config{}, CollectionInterval: defaultCollectionInterval, MaxLogSize: defaultMaxLogSize, } @@ -99,7 +101,7 @@ func (c *Config) Build(logger *zap.SugaredLogger) (operator.Operator, error) { return nil, err } - enc, err := helper.LookupEncoding(c.Encoding.Encoding) + enc, err := decode.LookupEncoding(c.Encoding) if err != nil { return nil, err } @@ -107,9 +109,9 @@ func (c *Config) Build(logger *zap.SugaredLogger) (operator.Operator, error) { // Build multiline var splitFunc bufio.SplitFunc if c.Multiline.LineStartPattern == "" && c.Multiline.LineEndPattern == "" { - splitFunc = helper.SplitNone(int(c.MaxLogSize)) + splitFunc = split.NoSplitFunc(int(c.MaxLogSize)) } else { - splitFunc, err = c.Multiline.Build(enc, true, false, false, nil, int(c.MaxLogSize)) + splitFunc, err = c.Multiline.Func(enc, true, int(c.MaxLogSize), nil) if err != nil { return nil, err } @@ -125,7 +127,7 @@ func (c *Config) Build(logger *zap.SugaredLogger) (operator.Operator, error) { cfg: c, InputOperator: inputOperator, logger: logger, - decoder: helper.NewDecoder(enc), + decoder: decode.New(enc), splitFunc: splitFunc, scriptContent: scriptContent, }, nil diff --git a/internal/receiver/scriptedinputsreceiver/config_test.go b/internal/receiver/scriptedinputsreceiver/config_test.go index dfc358ba33..5c17416afe 100644 --- a/internal/receiver/scriptedinputsreceiver/config_test.go +++ b/internal/receiver/scriptedinputsreceiver/config_test.go @@ -21,6 +21,7 @@ import ( "testing" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/split" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/component" @@ -64,12 +65,12 @@ func TestValidConfig(t *testing.T) { OperatorType: "scripted_inputs", }, OutputIDs: []string(nil)}, }, - Multiline: helper.MultilineConfig{ + Multiline: split.Config{ LineStartPattern: "", LineEndPattern: "", }, ScriptName: "cpu", - Encoding: helper.EncodingConfig{Encoding: "utf-8"}, + Encoding: "utf-8", Source: "", SourceType: "", CollectionInterval: "60s", @@ -123,7 +124,7 @@ func TestCreateWithNonEmptyMultiline(t *testing.T) { config.ScriptName = "aasd" config.OperatorType = "test-operator" - config.Multiline = helper.MultilineConfig{ + config.Multiline = split.Config{ LineStartPattern: "a", LineEndPattern: "", } diff --git a/internal/receiver/scriptedinputsreceiver/operator.go b/internal/receiver/scriptedinputsreceiver/operator.go index 2fe22978f9..ffcf7f949d 100644 --- a/internal/receiver/scriptedinputsreceiver/operator.go +++ b/internal/receiver/scriptedinputsreceiver/operator.go @@ -21,6 +21,7 @@ import ( "sync" "time" + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/decode" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper" "go.uber.org/zap" @@ -43,7 +44,7 @@ type stdoutOperator struct { logger *zap.SugaredLogger cancelAll context.CancelFunc splitFunc bufio.SplitFunc - decoder *helper.Decoder + decoder *decode.Decoder scriptContent string helper.InputOperator wg sync.WaitGroup