Skip to content

Commit

Permalink
[chore] [pkg/stanza] Pass telemetry settings by value (#32672)
Browse files Browse the repository at this point in the history
**Description:** <Describe what has changed.>
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
Telemetry settings in general are passed by value in the project. This
commit aligns the stanza Builder interface with this convention. This
will also ensures that Logger can be overwritten without changing the
original object.
Follow up of
#32662.
cc-ing @djaglowski who pointed that out.

**Link to tracking Issue:** <Issue number if applicable>

**Testing:** <Describe what testing was performed and which tests were
added.> Same as
#32662

**Documentation:** <Describe the documentation added.>

Signed-off-by: ChrsMark <[email protected]>
  • Loading branch information
ChrsMark authored Apr 25, 2024
1 parent d291a32 commit dc68260
Show file tree
Hide file tree
Showing 108 changed files with 212 additions and 212 deletions.
2 changes: 1 addition & 1 deletion pkg/stanza/adapter/benchmark_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ type BenchOpConfig struct {
}

// Build will build a noop operator.
func (c BenchOpConfig) Build(set *component.TelemetrySettings) (operator.Operator, error) {
func (c BenchOpConfig) Build(set component.TelemetrySettings) (operator.Operator, error) {
inputOperator, err := c.InputConfig.Build(set)
if err != nil {
return nil, err
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/adapter/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func createLogsReceiver(logReceiverType LogReceiverType) rcvr.CreateLogsFunc {
pipe, err := pipeline.Config{
Operators: operators,
DefaultOutput: emitter,
}.Build(&params.TelemetrySettings)
}.Build(params.TelemetrySettings)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/adapter/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func createNoopReceiver(nextConsumer consumer.Logs) (*receiver, error) {
Builder: noop.NewConfig(),
},
},
}.Build(&set)
}.Build(set)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/adapter/mocks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func NewUnstartableConfig() operator.Config {
}

// Build will build an unstartable operator
func (c *UnstartableConfig) Build(set *component.TelemetrySettings) (operator.Operator, error) {
func (c *UnstartableConfig) Build(set component.TelemetrySettings) (operator.Operator, error) {
o, _ := c.OutputConfig.Build(set)
return &UnstartableOperator{OutputOperator: o}, nil
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/stanza/adapter/receiver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ func BenchmarkReadLine(b *testing.B) {
pipe, err := pipeline.Config{
Operators: operatorCfgs,
DefaultOutput: emitter,
}.Build(&set)
}.Build(set)
require.NoError(b, err)

// Populate the file that will be consumed
Expand Down Expand Up @@ -210,7 +210,7 @@ func BenchmarkParseAndMap(b *testing.B) {
pipe, err := pipeline.Config{
Operators: operatorCfgs,
DefaultOutput: emitter,
}.Build(&set)
}.Build(set)
require.NoError(b, err)

// Populate the file that will be consumed
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/fileconsumer/benchmark_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ func BenchmarkFileInput(b *testing.B) {
return nil
}
set := componenttest.NewNopTelemetrySettings()
op, err := cfg.Build(&set, callback)
op, err := cfg.Build(set, callback)
require.NoError(b, err)

b.ResetTimer()
Expand Down
4 changes: 2 additions & 2 deletions pkg/stanza/fileconsumer/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,11 @@ type HeaderConfig struct {
}

// Deprecated [v0.97.0] Use Build and WithSplitFunc option instead
func (c Config) BuildWithSplitFunc(set *component.TelemetrySettings, emit emit.Callback, splitFunc bufio.SplitFunc) (*Manager, error) {
func (c Config) BuildWithSplitFunc(set component.TelemetrySettings, emit emit.Callback, splitFunc bufio.SplitFunc) (*Manager, error) {
return c.Build(set, emit, WithSplitFunc(splitFunc))
}

func (c Config) Build(set *component.TelemetrySettings, emit emit.Callback, opts ...Option) (*Manager, error) {
func (c Config) Build(set component.TelemetrySettings, emit emit.Callback, opts ...Option) (*Manager, error) {
if err := c.validate(); err != nil {
return nil, err
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/stanza/fileconsumer/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -630,7 +630,7 @@ func TestBuild(t *testing.T) {
tc.modifyBaseConfig(cfg)

set := componenttest.NewNopTelemetrySettings()
input, err := cfg.Build(&set, emittest.Nop)
input, err := cfg.Build(set, emittest.Nop)
tc.errorRequirement(t, err)
if err != nil {
return
Expand Down Expand Up @@ -710,7 +710,7 @@ func TestBuildWithSplitFunc(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
input, err := cfg.BuildWithSplitFunc(&set, emittest.Nop, splitNone)
input, err := cfg.BuildWithSplitFunc(set, emittest.Nop, splitNone)
tc.errorRequirement(t, err)
if err != nil {
return
Expand Down Expand Up @@ -798,7 +798,7 @@ func TestBuildWithHeader(t *testing.T) {
tc.modifyBaseConfig(cfg)

set := componenttest.NewNopTelemetrySettings()
input, err := cfg.Build(&set, emittest.Nop)
input, err := cfg.Build(set, emittest.Nop)
tc.errorRequirement(t, err)
if err != nil {
return
Expand Down Expand Up @@ -851,6 +851,6 @@ func newMockOperatorConfig(cfg *Config) *mockOperatorConfig {

// This function is impelmented for compatibility with operatortest
// but is not meant to be used directly
func (h *mockOperatorConfig) Build(_ *component.TelemetrySettings) (operator.Operator, error) {
func (h *mockOperatorConfig) Build(_ component.TelemetrySettings) (operator.Operator, error) {
panic("not impelemented")
}
2 changes: 1 addition & 1 deletion pkg/stanza/fileconsumer/internal/header/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func NewConfig(matchRegex string, metadataOperators []operator.Config, enc encod
p, err := pipeline.Config{
Operators: metadataOperators,
DefaultOutput: newPipelineOutput(nopLogger),
}.Build(&component.TelemetrySettings{Logger: nopLogger.Desugar()})
}.Build(component.TelemetrySettings{Logger: nopLogger.Desugar()})

if err != nil {
return nil, fmt.Errorf("failed to build pipelines: %w", err)
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/fileconsumer/internal/header/reader.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func NewReader(logger *zap.SugaredLogger, cfg Config) (*Reader, error) {
r.pipeline, err = pipeline.Config{
Operators: cfg.metadataOperators,
DefaultOutput: r.output,
}.Build(&component.TelemetrySettings{Logger: logger.Desugar()})
}.Build(component.TelemetrySettings{Logger: logger.Desugar()})
if err != nil {
return nil, fmt.Errorf("failed to build pipeline: %w", err)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/fileconsumer/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func testManager(t *testing.T, cfg *Config, opts ...Option) (*Manager, *emittest

func testManagerWithSink(t *testing.T, cfg *Config, sink *emittest.Sink, opts ...Option) *Manager {
set := componenttest.NewNopTelemetrySettings()
input, err := cfg.Build(&set, sink.Callback, opts...)
input, err := cfg.Build(set, sink.Callback, opts...)
require.NoError(t, err)
t.Cleanup(func() { input.tracker.ClosePreviousFiles() })
return input
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func NewConfig(b Builder) Config {
type Builder interface {
ID() string
Type() string
Build(*component.TelemetrySettings) (Operator, error)
Build(component.TelemetrySettings) (Operator, error)
SetID(string)
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type FakeBuilder struct {
Array []string `json:"array" yaml:"array"`
}

func (f *FakeBuilder) Build(_ *component.TelemetrySettings) (Operator, error) {
func (f *FakeBuilder) Build(_ component.TelemetrySettings) (Operator, error) {
return nil, nil
}
func (f *FakeBuilder) ID() string { return "operator" }
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/helper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ func newHelpersConfig() *helpersConfig {

// This function is impelmented for compatibility with operatortest
// but is not meant to be used directly
func (h *helpersConfig) Build(_ *component.TelemetrySettings) (operator.Operator, error) {
func (h *helpersConfig) Build(_ component.TelemetrySettings) (operator.Operator, error) {
panic("not impelemented")
}
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/input.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ type InputConfig struct {
}

// Build will build a base producer.
func (c InputConfig) Build(set *component.TelemetrySettings) (InputOperator, error) {
func (c InputConfig) Build(set component.TelemetrySettings) (InputOperator, error) {
writerOperator, err := c.WriterConfig.Build(set)
if err != nil {
return InputOperator{}, errors.WithDetails(err, "operator_id", c.ID())
Expand Down
6 changes: 3 additions & 3 deletions pkg/stanza/operator/helper/input_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func TestInputConfigMissingBase(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "missing required `type` field.")
}
Expand All @@ -38,7 +38,7 @@ func TestInputConfigMissingOutput(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.NoError(t, err)
}

Expand All @@ -54,7 +54,7 @@ func TestInputConfigValid(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.NoError(t, err)
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (c BasicConfig) Type() string {
}

// Build will build a basic operator.
func (c BasicConfig) Build(set *component.TelemetrySettings) (BasicOperator, error) {
func (c BasicConfig) Build(set component.TelemetrySettings) (BasicOperator, error) {
if c.OperatorType == "" {
return BasicOperator{}, errors.NewError(
"missing required `type` field.",
Expand Down
8 changes: 4 additions & 4 deletions pkg/stanza/operator/helper/operator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func TestBasicConfigBuildWithoutID(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.NoError(t, err)
}

Expand All @@ -45,7 +45,7 @@ func TestBasicConfigBuildWithoutType(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "missing required `type` field.")
}
Expand All @@ -58,7 +58,7 @@ func TestBasicConfigBuildMissingLogger(t *testing.T) {

set := componenttest.NewNopTelemetrySettings()
set.Logger = nil
_, err := config.Build(&set)
_, err := config.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "operator build context is missing a logger.")
}
Expand All @@ -70,7 +70,7 @@ func TestBasicConfigBuildValid(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
operator, err := config.Build(&set)
operator, err := config.Build(set)
require.NoError(t, err)
require.Equal(t, "test-id", operator.OperatorID)
require.Equal(t, "test-type", operator.OperatorType)
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/output.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type OutputConfig struct {
}

// Build will build an output operator.
func (c OutputConfig) Build(set *component.TelemetrySettings) (OutputOperator, error) {
func (c OutputConfig) Build(set component.TelemetrySettings) (OutputOperator, error) {
basicOperator, err := c.BasicConfig.Build(set)
if err != nil {
return OutputOperator{}, err
Expand Down
4 changes: 2 additions & 2 deletions pkg/stanza/operator/helper/output_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
func TestOutputConfigMissingBase(t *testing.T) {
config := OutputConfig{}
set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "missing required `type` field.")
}
Expand All @@ -29,7 +29,7 @@ func TestOutputConfigBuildValid(t *testing.T) {
},
}
set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.NoError(t, err)
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ type ParserConfig struct {
}

// Build will build a parser operator.
func (c ParserConfig) Build(set *component.TelemetrySettings) (ParserOperator, error) {
func (c ParserConfig) Build(set component.TelemetrySettings) (ParserOperator, error) {
transformerOperator, err := c.TransformerConfig.Build(set)
if err != nil {
return ParserOperator{}, err
Expand Down
10 changes: 5 additions & 5 deletions pkg/stanza/operator/helper/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (
func TestParserConfigMissingBase(t *testing.T) {
config := ParserConfig{}
set := componenttest.NewNopTelemetrySettings()
_, err := config.Build(&set)
_, err := config.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "missing required `type` field.")
}
Expand All @@ -38,7 +38,7 @@ func TestParserConfigInvalidTimeParser(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
_, err := cfg.Build(&set)
_, err := cfg.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "missing required configuration parameter `layout`")
}
Expand All @@ -51,7 +51,7 @@ func TestParserConfigBodyCollision(t *testing.T) {
cfg.BodyField = &b

set := componenttest.NewNopTelemetrySettings()
_, err := cfg.Build(&set)
_, err := cfg.Build(set)
require.Error(t, err)
require.Contains(t, err.Error(), "`parse_to: body` not allowed when `body` is configured")
}
Expand Down Expand Up @@ -92,7 +92,7 @@ func TestParserConfigBuildValid(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
op, err := cfg.Build(&set)
op, err := cfg.Build(set)
require.NoError(t, err)

require.NotNil(t, op.TimeParser)
Expand Down Expand Up @@ -633,7 +633,7 @@ func TestParserFields(t *testing.T) {
tc.cfgMod(&cfg)

set := componenttest.NewNopTelemetrySettings()
parser, err := cfg.Build(&set)
parser, err := cfg.Build(set)
require.NoError(t, err)

e := tc.input()
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/severity_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ type SeverityConfig struct {
}

// Build builds a SeverityParser from a SeverityConfig
func (c *SeverityConfig) Build(_ *component.TelemetrySettings) (SeverityParser, error) {
func (c *SeverityConfig) Build(_ component.TelemetrySettings) (SeverityParser, error) {
operatorMapping := getBuiltinMapping(c.Preset)

for severity, unknown := range c.Mapping {
Expand Down
4 changes: 2 additions & 2 deletions pkg/stanza/operator/helper/severity_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,7 @@ func (tc severityTestCase) run(parseFrom entry.Field) func(*testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
severityParser, err := cfg.Build(&set)
severityParser, err := cfg.Build(set)
if tc.buildErr {
require.Error(t, err, "expected error when configuring operator")
return
Expand Down Expand Up @@ -566,7 +566,7 @@ func TestBuildCustomMapping(t *testing.T) {
}

set := componenttest.NewNopTelemetrySettings()
severityParser, err := cfg.Build(&set)
severityParser, err := cfg.Build(set)
require.NoError(t, err)

for k, v := range expected {
Expand Down
2 changes: 1 addition & 1 deletion pkg/stanza/operator/helper/transformer.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ type TransformerConfig struct {
}

// Build will build a transformer operator.
func (c TransformerConfig) Build(set *component.TelemetrySettings) (TransformerOperator, error) {
func (c TransformerConfig) Build(set component.TelemetrySettings) (TransformerOperator, error) {
writerOperator, err := c.WriterConfig.Build(set)
if err != nil {
return TransformerOperator{}, errors.WithDetails(err, "operator_id", c.ID())
Expand Down
Loading

0 comments on commit dc68260

Please sign in to comment.