From 372a9752e1fd77cbf9f41d593053f5d45b3600ec Mon Sep 17 00:00:00 2001 From: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com> Date: Thu, 4 Aug 2022 15:20:32 -0600 Subject: [PATCH 1/2] Remove functions from config --- processor/transformprocessor/config.go | 12 ++++++------ processor/transformprocessor/config_test.go | 11 ----------- processor/transformprocessor/factory.go | 12 +++--------- processor/transformprocessor/factory_test.go | 11 ----------- .../transformprocessor/internal/common/functions.go | 2 +- .../transformprocessor/internal/logs/functions.go | 4 ++-- .../internal/logs/functions_test.go | 2 +- .../internal/logs/processor_test.go | 2 +- .../func_convert_summary_count_val_to_sum_test.go | 2 +- .../transformprocessor/internal/metrics/functions.go | 4 ++-- .../internal/metrics/functions_test.go | 4 ++-- .../internal/metrics/processor_test.go | 2 +- .../transformprocessor/internal/traces/functions.go | 4 ++-- .../internal/traces/functions_test.go | 2 +- .../internal/traces/processor_test.go | 6 +++--- 15 files changed, 26 insertions(+), 54 deletions(-) diff --git a/processor/transformprocessor/config.go b/processor/transformprocessor/config.go index 4fc4932a661e..0ec4e318914b 100644 --- a/processor/transformprocessor/config.go +++ b/processor/transformprocessor/config.go @@ -15,6 +15,9 @@ package transformprocessor // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor" import ( + "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" "go.opentelemetry.io/collector/config" "go.uber.org/multierr" @@ -26,9 +29,6 @@ import ( type SignalConfig struct { Queries []string `mapstructure:"queries"` - - // The functions that have been registered in the extension for processing. - functions map[string]interface{} `mapstructure:"-"` } type Config struct { @@ -43,15 +43,15 @@ var _ config.Processor = (*Config)(nil) func (c *Config) Validate() error { var errors error - _, err := tql.ParseQueries(c.Traces.Queries, c.Traces.functions, tqltraces.ParsePath, tqltraces.ParseEnum) + _, err := tql.ParseQueries(c.Traces.Queries, traces.Functions(), tqltraces.ParsePath, tqltraces.ParseEnum) if err != nil { errors = multierr.Append(errors, err) } - _, err = tql.ParseQueries(c.Metrics.Queries, c.Metrics.functions, tqlmetrics.ParsePath, tqlmetrics.ParseEnum) + _, err = tql.ParseQueries(c.Metrics.Queries, metrics.Functions(), tqlmetrics.ParsePath, tqlmetrics.ParseEnum) if err != nil { errors = multierr.Append(errors, err) } - _, err = tql.ParseQueries(c.Logs.Queries, c.Logs.functions, tqllogs.ParsePath, tqllogs.ParseEnum) + _, err = tql.ParseQueries(c.Logs.Queries, logs.Functions(), tqllogs.ParsePath, tqllogs.ParseEnum) if err != nil { errors = multierr.Append(errors, err) } diff --git a/processor/transformprocessor/config_test.go b/processor/transformprocessor/config_test.go index 635fbb50abd4..e9911f3af4c7 100644 --- a/processor/transformprocessor/config_test.go +++ b/processor/transformprocessor/config_test.go @@ -23,11 +23,6 @@ import ( "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/service/servicetest" - - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/metrics" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/traces" - - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/logs" ) func TestLoadingConfig(t *testing.T) { @@ -48,24 +43,18 @@ func TestLoadingConfig(t *testing.T) { `set(name, "bear") where attributes["http.path"] == "/animal"`, `keep_keys(attributes, "http.method", "http.path")`, }, - - functions: traces.DefaultFunctions(), }, Metrics: SignalConfig{ Queries: []string{ `set(metric.name, "bear") where attributes["http.path"] == "/animal"`, `keep_keys(attributes, "http.method", "http.path")`, }, - - functions: metrics.DefaultFunctions(), }, Logs: SignalConfig{ Queries: []string{ `set(body, "bear") where attributes["http.path"] == "/animal"`, `keep_keys(attributes, "http.method", "http.path")`, }, - - functions: logs.DefaultFunctions(), }, }) } diff --git a/processor/transformprocessor/factory.go b/processor/transformprocessor/factory.go index 20dfb70e68a8..cd5cc24c17b8 100644 --- a/processor/transformprocessor/factory.go +++ b/processor/transformprocessor/factory.go @@ -50,18 +50,12 @@ func createDefaultConfig() config.Processor { ProcessorSettings: config.NewProcessorSettings(config.NewComponentID(typeStr)), Logs: SignalConfig{ Queries: []string{}, - - functions: logs.DefaultFunctions(), }, Traces: SignalConfig{ Queries: []string{}, - - functions: traces.DefaultFunctions(), }, Metrics: SignalConfig{ Queries: []string{}, - - functions: metrics.DefaultFunctions(), }, } } @@ -74,7 +68,7 @@ func createLogsProcessor( ) (component.LogsProcessor, error) { oCfg := cfg.(*Config) - proc, err := logs.NewProcessor(oCfg.Logs.Queries, oCfg.Logs.functions, settings) + proc, err := logs.NewProcessor(oCfg.Logs.Queries, logs.Functions(), settings) if err != nil { return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err) } @@ -93,7 +87,7 @@ func createTracesProcessor( ) (component.TracesProcessor, error) { oCfg := cfg.(*Config) - proc, err := traces.NewProcessor(oCfg.Traces.Queries, oCfg.Traces.functions, settings) + proc, err := traces.NewProcessor(oCfg.Traces.Queries, traces.Functions(), settings) if err != nil { return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err) } @@ -112,7 +106,7 @@ func createMetricsProcessor( ) (component.MetricsProcessor, error) { oCfg := cfg.(*Config) - proc, err := metrics.NewProcessor(oCfg.Metrics.Queries, oCfg.Metrics.functions, settings) + proc, err := metrics.NewProcessor(oCfg.Metrics.Queries, metrics.Functions(), settings) if err != nil { return nil, fmt.Errorf("invalid config for \"transform\" processor %w", err) } diff --git a/processor/transformprocessor/factory_test.go b/processor/transformprocessor/factory_test.go index b1958926ff9a..466105efd987 100644 --- a/processor/transformprocessor/factory_test.go +++ b/processor/transformprocessor/factory_test.go @@ -26,11 +26,6 @@ import ( "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/ptrace" - - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/metrics" - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/traces" - - "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/logs" ) func TestFactory_Type(t *testing.T) { @@ -45,18 +40,12 @@ func TestFactory_CreateDefaultConfig(t *testing.T) { ProcessorSettings: config.NewProcessorSettings(config.NewComponentID(typeStr)), Traces: SignalConfig{ Queries: []string{}, - - functions: traces.DefaultFunctions(), }, Metrics: SignalConfig{ Queries: []string{}, - - functions: metrics.DefaultFunctions(), }, Logs: SignalConfig{ Queries: []string{}, - - functions: logs.DefaultFunctions(), }, }) assert.NoError(t, configtest.CheckConfigStruct(cfg)) diff --git a/processor/transformprocessor/internal/common/functions.go b/processor/transformprocessor/internal/common/functions.go index 51caaebb0e61..8df5278c827f 100644 --- a/processor/transformprocessor/internal/common/functions.go +++ b/processor/transformprocessor/internal/common/functions.go @@ -35,6 +35,6 @@ var registry = map[string]interface{}{ "delete_matching_keys": tqlotel.DeleteMatchingKeys, } -func DefaultFunctions() map[string]interface{} { +func Functions() map[string]interface{} { return registry } diff --git a/processor/transformprocessor/internal/logs/functions.go b/processor/transformprocessor/internal/logs/functions.go index 0d5d7555e78c..777e16bdc706 100644 --- a/processor/transformprocessor/internal/logs/functions.go +++ b/processor/transformprocessor/internal/logs/functions.go @@ -18,7 +18,7 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/common" ) -func DefaultFunctions() map[string]interface{} { +func Functions() map[string]interface{} { // No logs-only functions yet. - return common.DefaultFunctions() + return common.Functions() } diff --git a/processor/transformprocessor/internal/logs/functions_test.go b/processor/transformprocessor/internal/logs/functions_test.go index 8750ab9fdffd..4a31cb33ff3e 100644 --- a/processor/transformprocessor/internal/logs/functions_test.go +++ b/processor/transformprocessor/internal/logs/functions_test.go @@ -23,5 +23,5 @@ import ( ) func Test_DefaultFunctions(t *testing.T) { - assert.Equal(t, common.DefaultFunctions(), DefaultFunctions()) + assert.Equal(t, common.Functions(), Functions()) } diff --git a/processor/transformprocessor/internal/logs/processor_test.go b/processor/transformprocessor/internal/logs/processor_test.go index 492b394adc92..d617d8862573 100644 --- a/processor/transformprocessor/internal/logs/processor_test.go +++ b/processor/transformprocessor/internal/logs/processor_test.go @@ -144,7 +144,7 @@ func TestProcess(t *testing.T) { for _, tt := range tests { t.Run(tt.query, func(t *testing.T) { td := constructLogs() - processor, err := NewProcessor([]string{tt.query}, DefaultFunctions(), component.ProcessorCreateSettings{}) + processor, err := NewProcessor([]string{tt.query}, Functions(), component.ProcessorCreateSettings{}) assert.NoError(t, err) _, err = processor.ProcessLogs(context.Background(), td) diff --git a/processor/transformprocessor/internal/metrics/func_convert_summary_count_val_to_sum_test.go b/processor/transformprocessor/internal/metrics/func_convert_summary_count_val_to_sum_test.go index 403bc79cf0c8..aae8032054f9 100644 --- a/processor/transformprocessor/internal/metrics/func_convert_summary_count_val_to_sum_test.go +++ b/processor/transformprocessor/internal/metrics/func_convert_summary_count_val_to_sum_test.go @@ -78,7 +78,7 @@ func summaryTest(tests []summaryTestCase, t *testing.T) { actualMetrics := pmetric.NewMetricSlice() tt.input.CopyTo(actualMetrics.AppendEmpty()) - evaluate, err := tql.NewFunctionCall(tt.inv, DefaultFunctions(), tqlmetrics.ParsePath, tqlmetrics.ParseEnum) + evaluate, err := tql.NewFunctionCall(tt.inv, Functions(), tqlmetrics.ParsePath, tqlmetrics.ParseEnum) assert.NoError(t, err) evaluate(tqlmetrics.MetricTransformContext{ InstrumentationScope: pcommon.NewInstrumentationScope(), diff --git a/processor/transformprocessor/internal/metrics/functions.go b/processor/transformprocessor/internal/metrics/functions.go index 73e8fc69ef70..59a85f81d85c 100644 --- a/processor/transformprocessor/internal/metrics/functions.go +++ b/processor/transformprocessor/internal/metrics/functions.go @@ -28,11 +28,11 @@ var registry = map[string]interface{}{ func init() { // Init metrics registry with default functions common to all signals - for k, v := range common.DefaultFunctions() { + for k, v := range common.Functions() { registry[k] = v } } -func DefaultFunctions() map[string]interface{} { +func Functions() map[string]interface{} { return registry } diff --git a/processor/transformprocessor/internal/metrics/functions_test.go b/processor/transformprocessor/internal/metrics/functions_test.go index 65bf08dea8dd..710c398e64ad 100644 --- a/processor/transformprocessor/internal/metrics/functions_test.go +++ b/processor/transformprocessor/internal/metrics/functions_test.go @@ -23,13 +23,13 @@ import ( ) func Test_DefaultFunctions(t *testing.T) { - expectedFunctions := common.DefaultFunctions() + expectedFunctions := common.Functions() expectedFunctions["convert_sum_to_gauge"] = convertSumToGauge expectedFunctions["convert_gauge_to_sum"] = convertGaugeToSum expectedFunctions["convert_summary_sum_val_to_sum"] = convertSummarySumValToSum expectedFunctions["convert_summary_count_val_to_sum"] = convertSummaryCountValToSum - actual := DefaultFunctions() + actual := Functions() assert.NotNil(t, actual) assert.Equal(t, len(expectedFunctions), len(actual)) diff --git a/processor/transformprocessor/internal/metrics/processor_test.go b/processor/transformprocessor/internal/metrics/processor_test.go index 69f62cac5493..b58fd342f263 100644 --- a/processor/transformprocessor/internal/metrics/processor_test.go +++ b/processor/transformprocessor/internal/metrics/processor_test.go @@ -271,7 +271,7 @@ func TestProcess(t *testing.T) { for _, tt := range tests { t.Run(tt.query[0], func(t *testing.T) { td := constructMetrics() - processor, err := NewProcessor(tt.query, DefaultFunctions(), component.ProcessorCreateSettings{}) + processor, err := NewProcessor(tt.query, Functions(), component.ProcessorCreateSettings{}) assert.NoError(t, err) _, err = processor.ProcessMetrics(context.Background(), td) diff --git a/processor/transformprocessor/internal/traces/functions.go b/processor/transformprocessor/internal/traces/functions.go index b438e82e6fcd..eaa7849439cd 100644 --- a/processor/transformprocessor/internal/traces/functions.go +++ b/processor/transformprocessor/internal/traces/functions.go @@ -18,7 +18,7 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor/internal/common" ) -func DefaultFunctions() map[string]interface{} { +func Functions() map[string]interface{} { // No trace-only functions yet. - return common.DefaultFunctions() + return common.Functions() } diff --git a/processor/transformprocessor/internal/traces/functions_test.go b/processor/transformprocessor/internal/traces/functions_test.go index 100d78bbb0e5..9ccdf64dde16 100644 --- a/processor/transformprocessor/internal/traces/functions_test.go +++ b/processor/transformprocessor/internal/traces/functions_test.go @@ -23,5 +23,5 @@ import ( ) func Test_DefaultFunctions(t *testing.T) { - assert.Equal(t, common.DefaultFunctions(), DefaultFunctions()) + assert.Equal(t, common.Functions(), Functions()) } diff --git a/processor/transformprocessor/internal/traces/processor_test.go b/processor/transformprocessor/internal/traces/processor_test.go index 15e037db7829..4a090df0ea31 100644 --- a/processor/transformprocessor/internal/traces/processor_test.go +++ b/processor/transformprocessor/internal/traces/processor_test.go @@ -170,7 +170,7 @@ func TestProcess(t *testing.T) { for _, tt := range tests { t.Run(tt.query, func(t *testing.T) { td := constructTraces() - processor, err := NewProcessor([]string{tt.query}, DefaultFunctions(), component.ProcessorCreateSettings{}) + processor, err := NewProcessor([]string{tt.query}, Functions(), component.ProcessorCreateSettings{}) assert.NoError(t, err) _, err = processor.ProcessTraces(context.Background(), td) @@ -220,7 +220,7 @@ func BenchmarkTwoSpans(b *testing.B) { for _, tt := range tests { b.Run(tt.name, func(b *testing.B) { - processor, err := NewProcessor(tt.queries, DefaultFunctions(), component.ProcessorCreateSettings{}) + processor, err := NewProcessor(tt.queries, Functions(), component.ProcessorCreateSettings{}) assert.NoError(b, err) b.ResetTimer() for n := 0; n < b.N; n++ { @@ -262,7 +262,7 @@ func BenchmarkHundredSpans(b *testing.B) { } for _, tt := range tests { b.Run(tt.name, func(b *testing.B) { - processor, err := NewProcessor(tt.queries, DefaultFunctions(), component.ProcessorCreateSettings{}) + processor, err := NewProcessor(tt.queries, Functions(), component.ProcessorCreateSettings{}) assert.NoError(b, err) b.ResetTimer() for n := 0; n < b.N; n++ { From 9bea7d3ecfbdcbbb8b92ba6d41d6195ef6eee218 Mon Sep 17 00:00:00 2001 From: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com> Date: Thu, 4 Aug 2022 15:58:48 -0600 Subject: [PATCH 2/2] run make fmt --- processor/transformprocessor/config.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/processor/transformprocessor/config.go b/processor/transformprocessor/config.go index 0ec4e318914b..f30c63e37690 100644 --- a/processor/transformprocessor/config.go +++ b/processor/transformprocessor/config.go @@ -15,11 +15,12 @@ package transformprocessor // import "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor" import ( + "go.opentelemetry.io/collector/config" + "go.uber.org/multierr" + "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" - "go.opentelemetry.io/collector/config" - "go.uber.org/multierr" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/telemetryquerylanguage/contexts/tqllogs" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/telemetryquerylanguage/contexts/tqlmetrics"