diff --git a/functional_tests/configuration_switching/configuration_switching_test.go b/functional_tests/configuration_switching/configuration_switching_test.go index 0a92d0684..b9d37df1d 100644 --- a/functional_tests/configuration_switching/configuration_switching_test.go +++ b/functional_tests/configuration_switching/configuration_switching_test.go @@ -15,11 +15,8 @@ import ( "text/template" "time" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver" - "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" - "go.opentelemetry.io/collector/receiver/receivertest" "gopkg.in/yaml.v3" "github.com/stretchr/testify/assert" @@ -37,12 +34,8 @@ import ( ) const ( - hecReceiverPort = 8090 - hecMetricsReceiverPort = 8091 - apiPort = 8881 - hecLogsObjectsReceiverPort = 8092 - testDir = "testdata" - valuesDir = "values" + testDir = "testdata" + valuesDir = "values" ) var globalSinks *sinks @@ -57,14 +50,10 @@ type sinks struct { func setupOnce(t *testing.T) *sinks { setupRun.Do(func() { - // create an API server - internal.CreateApiServer(t, apiPort) - // set ingest pipelines - logs, metrics := setupHEC(t) globalSinks = &sinks{ - logsConsumer: logs, - hecMetricsConsumer: metrics, - logsObjectsConsumer: setupHECLogsObjects(t), + logsConsumer: internal.SetupHECLogsSink(t), + hecMetricsConsumer: internal.SetupHECMetricsSink(t), + logsObjectsConsumer: internal.SetupHECObjectsSink(t), } if os.Getenv("TEARDOWN_BEFORE_SETUP") == "true" { teardown(t) @@ -92,8 +81,8 @@ func deployChartsAndApps(t *testing.T, valuesFileName string, repl map[string]in require.Fail(t, "Host endpoint not found") } replacements := map[string]interface{}{ - "LogHecEndpoint": fmt.Sprintf("http://%s:%d", hostEp, hecReceiverPort), - "MetricHecEndpoint": fmt.Sprintf("http://%s:%d/services/collector", hostEp, hecMetricsReceiverPort), + "LogHecEndpoint": fmt.Sprintf("http://%s:%d", hostEp, internal.HECLogsReceiverPort), + "MetricHecEndpoint": fmt.Sprintf("http://%s:%d/services/collector", hostEp, internal.HECMetricsReceiverPort), } for k, v := range repl { replacements[k] = v @@ -315,7 +304,7 @@ func testClusterReceiverEnabledOrDisabled(t *testing.T) { if len(hostEp) == 0 { require.Fail(t, "Host endpoint not found") } - logsObjectsHecEndpoint := fmt.Sprintf("http://%s:%d/services/collector", hostEp, hecLogsObjectsReceiverPort) + logsObjectsHecEndpoint := fmt.Sprintf("http://%s:%d/services/collector", hostEp, internal.HECObjectsReceiverPort) t.Run("check cluster receiver enabled", func(t *testing.T) { replacements := map[string]interface{}{ @@ -358,7 +347,7 @@ func testVerifyLogsAndMetricsAttributes(t *testing.T) { t.Run("verify cluster receiver attributes", func(t *testing.T) { valuesFileName := "values_cluster_receiver_only.yaml.tmpl" logsObjectsConsumer := setupOnce(t).logsObjectsConsumer - logsObjectsHecEndpoint := fmt.Sprintf("http://%s:%d/services/collector", hostEp, hecLogsObjectsReceiverPort) + logsObjectsHecEndpoint := fmt.Sprintf("http://%s:%d/services/collector", hostEp, internal.HECObjectsReceiverPort) replacements := map[string]interface{}{ "ClusterReceiverEnabled": true, @@ -381,7 +370,7 @@ func testVerifyLogsAndMetricsAttributes(t *testing.T) { t.Run("verify cluster receiver metrics attributes", func(t *testing.T) { valuesFileName := "values_cluster_receiver_only.yaml.tmpl" hecMetricsConsumer := setupOnce(t).hecMetricsConsumer - logsObjectsHecEndpoint := fmt.Sprintf("http://%s:%d/services/collector", hostEp, hecLogsObjectsReceiverPort) + logsObjectsHecEndpoint := fmt.Sprintf("http://%s:%d/services/collector", hostEp, internal.HECObjectsReceiverPort) replacements := map[string]interface{}{ "ClusterReceiverEnabled": true, @@ -626,51 +615,3 @@ func uninstallDeployment(t *testing.T) { t.Logf("Uninstalled release: %v", uninstallResponse) waitForAllPodsToBeRemoved(t, "default") } - -func setupHEC(t *testing.T) (*consumertest.LogsSink, *consumertest.MetricsSink) { - // the splunkhecreceiver does poorly at receiving logs and metrics. Use separate ports for now. - f := splunkhecreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", hecReceiverPort) - - mCfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - mCfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", hecMetricsReceiverPort) - - lc := new(consumertest.LogsSink) - mc := new(consumertest.MetricsSink) - rcvr, err := f.CreateLogs(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, lc) - mrcvr, err := f.CreateMetrics(context.Background(), receivertest.NewNopSettings(f.Type()), mCfg, mc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating logs receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - require.NoError(t, mrcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating metrics receiver") - t.Cleanup(func() { - assert.NoError(t, mrcvr.Shutdown(context.Background())) - }) - - return lc, mc -} - -func setupHECLogsObjects(t *testing.T) *consumertest.LogsSink { - f := splunkhecreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", hecLogsObjectsReceiverPort) - - lc := new(consumertest.LogsSink) - rcvr, err := f.CreateLogs(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, lc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating logs receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - return lc -} diff --git a/functional_tests/functional/functional_test.go b/functional_tests/functional/functional_test.go index c6e6131e5..81e368521 100644 --- a/functional_tests/functional/functional_test.go +++ b/functional_tests/functional/functional_test.go @@ -19,17 +19,13 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest/pmetrictest" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest/ptracetest" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/ptrace" - "go.opentelemetry.io/collector/receiver/otlpreceiver" - "go.opentelemetry.io/collector/receiver/receivertest" "gopkg.in/yaml.v3" "helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/kube" @@ -53,14 +49,8 @@ import ( ) const ( - hecReceiverPort = 8090 - hecMetricsReceiverPort = 8091 - hecLogsObjectsReceiverPort = 8092 signalFxReceiverPort = 9443 signalFxReceiverK8sClusterReceiverPort = 19443 - otlpReceiverPort = 4317 - otlpHTTPReceiverPort = 4318 - apiPort = 8881 kindTestKubeEnv = "kind" eksTestKubeEnv = "eks" autopilotTestKubeEnv = "gke/autopilot" @@ -93,17 +83,15 @@ type sinks struct { func setupOnce(t *testing.T) *sinks { setupRun.Do(func() { // create an API server - internal.CreateApiServer(t, apiPort) - // set ingest pipelines - logs, metrics := setupHEC(t) + internal.SetupSignalFxApiServer(t) globalSinks = &sinks{ - logsConsumer: logs, - hecMetricsConsumer: metrics, - logsObjectsConsumer: setupHECLogsObjects(t), + logsConsumer: internal.SetupHECLogsSink(t), + hecMetricsConsumer: internal.SetupHECMetricsSink(t), + logsObjectsConsumer: internal.SetupHECObjectsSink(t), agentMetricsConsumer: internal.SetupSignalfxReceiver(t, signalFxReceiverPort), k8sclusterReceiverMetricsConsumer: internal.SetupSignalfxReceiver(t, signalFxReceiverK8sClusterReceiverPort), - tracesConsumer: setupTraces(t), + tracesConsumer: internal.SetupOTLPTracesSink(t), } if os.Getenv("TEARDOWN_BEFORE_SETUP") == "true" { teardown(t) @@ -225,11 +213,11 @@ func deployChartsAndApps(t *testing.T) { }{ fmt.Sprintf("http://%s:%d", hostEp, signalFxReceiverK8sClusterReceiverPort), fmt.Sprintf("http://%s:%d", hostEp, signalFxReceiverPort), - fmt.Sprintf("http://%s:%d", hostEp, hecReceiverPort), - fmt.Sprintf("http://%s:%d/services/collector", hostEp, hecMetricsReceiverPort), - fmt.Sprintf("%s:%d", hostEp, otlpReceiverPort), - fmt.Sprintf("http://%s:%d", hostEp, apiPort), - fmt.Sprintf("http://%s:%d/services/collector", hostEp, hecLogsObjectsReceiverPort), + fmt.Sprintf("http://%s:%d", hostEp, internal.HECLogsReceiverPort), + fmt.Sprintf("http://%s:%d/services/collector", hostEp, internal.HECMetricsReceiverPort), + fmt.Sprintf("%s:%d", hostEp, internal.OTLPGRPCReceiverPort), + fmt.Sprintf("http://%s:%d", hostEp, internal.SignalFxAPIPort), + fmt.Sprintf("http://%s:%d/services/collector", hostEp, internal.HECObjectsReceiverPort), kubeTestEnv, } tmpl, err := template.New("").Parse(string(valuesBytes)) @@ -1449,73 +1437,6 @@ func waitForAllNamespacesToBeCreated(t *testing.T, client *kubernetes.Clientset) }, 5*time.Minute, 10*time.Second) } -func setupTraces(t *testing.T) *consumertest.TracesSink { - tc := new(consumertest.TracesSink) - f := otlpreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*otlpreceiver.Config) - cfg.Protocols.GRPC.NetAddr.Endpoint = fmt.Sprintf("0.0.0.0:%d", otlpReceiverPort) - cfg.Protocols.HTTP.Endpoint = fmt.Sprintf("0.0.0.0:%d", otlpHTTPReceiverPort) - - rcvr, err := f.CreateTraces(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, tc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating traces receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - return tc -} - -func setupHEC(t *testing.T) (*consumertest.LogsSink, *consumertest.MetricsSink) { - // the splunkhecreceiver does poorly at receiving logs and metrics. Use separate ports for now. - f := splunkhecreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", hecReceiverPort) - - mCfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - mCfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", hecMetricsReceiverPort) - - lc := new(consumertest.LogsSink) - mc := new(consumertest.MetricsSink) - rcvr, err := f.CreateLogs(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, lc) - mrcvr, err := f.CreateMetrics(context.Background(), receivertest.NewNopSettings(f.Type()), mCfg, mc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating logs receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - require.NoError(t, mrcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating metrics receiver") - t.Cleanup(func() { - assert.NoError(t, mrcvr.Shutdown(context.Background())) - }) - - return lc, mc -} - -func setupHECLogsObjects(t *testing.T) *consumertest.LogsSink { - f := splunkhecreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", hecLogsObjectsReceiverPort) - - lc := new(consumertest.LogsSink) - rcvr, err := f.CreateLogs(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, lc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating logs receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - return lc -} - func checkMetricsAreEmitted(t *testing.T, mc *consumertest.MetricsSink, metricNames []string, matchFn func(string, pcommon.Map) bool) { metricsToFind := map[string]bool{} for _, name := range metricNames { diff --git a/functional_tests/histogram/histogram_test.go b/functional_tests/histogram/histogram_test.go index 533813c1c..2463028bc 100644 --- a/functional_tests/histogram/histogram_test.go +++ b/functional_tests/histogram/histogram_test.go @@ -5,7 +5,6 @@ package histogram import ( "bytes" - "context" "fmt" "os" "path/filepath" @@ -17,13 +16,10 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest/pmetrictest" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/signalfxreceiver" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/pdata/pmetric" - "go.opentelemetry.io/collector/receiver/receivertest" "gopkg.in/yaml.v3" "helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/kube" @@ -43,7 +39,7 @@ var histogramMetricsConsumer *consumertest.MetricsSink func setupOnce(t *testing.T) *consumertest.MetricsSink { setupRun.Do(func() { - histogramMetricsConsumer = setupOtlpReceiver(t, otlpReceiverPort) + histogramMetricsConsumer = internal.SetupSignalfxReceiver(t, otlpReceiverPort) if os.Getenv("TEARDOWN_BEFORE_SETUP") == "true" { teardown(t) @@ -59,24 +55,6 @@ func setupOnce(t *testing.T) *consumertest.MetricsSink { return histogramMetricsConsumer } -func setupOtlpReceiver(t *testing.T, port int) *consumertest.MetricsSink { - mc := new(consumertest.MetricsSink) - f := signalfxreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*signalfxreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", port) - - rcvr, err := f.CreateMetrics(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, mc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating metrics receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - return mc -} - func deployChartsAndApps(t *testing.T) { testKubeConfig, setKubeConfig := os.LookupEnv("KUBECONFIG") require.True(t, setKubeConfig, "the environment variable KUBECONFIG must be set") diff --git a/functional_tests/internal/api_server.go b/functional_tests/internal/api_server.go index d87fb2f6a..2fce22845 100644 --- a/functional_tests/internal/api_server.go +++ b/functional_tests/internal/api_server.go @@ -13,7 +13,9 @@ import ( "github.com/stretchr/testify/require" ) -func CreateApiServer(t *testing.T, port int) { +const SignalFxAPIPort = 8881 + +func SetupSignalFxApiServer(t *testing.T) { mux := http.NewServeMux() mux.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { writer.WriteHeader(200) @@ -21,7 +23,7 @@ func CreateApiServer(t *testing.T, port int) { _, cancelCtx := context.WithCancel(context.Background()) s := &http.Server{ - Addr: fmt.Sprintf("0.0.0.0:%d", port), + Addr: fmt.Sprintf("0.0.0.0:%d", SignalFxAPIPort), Handler: mux, } diff --git a/functional_tests/internal/common.go b/functional_tests/internal/common.go index 0c7a70760..2bab40bc9 100644 --- a/functional_tests/internal/common.go +++ b/functional_tests/internal/common.go @@ -5,7 +5,6 @@ package internal import ( "context" - "fmt" "os" "path/filepath" "runtime" @@ -13,13 +12,10 @@ import ( "time" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/signalfxreceiver" - "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/ptrace" - "go.opentelemetry.io/collector/receiver/receivertest" "helm.sh/helm/v3/pkg/chart" "helm.sh/helm/v3/pkg/chart/loader" v1 "k8s.io/api/core/v1" @@ -28,7 +24,6 @@ import ( "github.com/docker/docker/api/types" docker "github.com/docker/docker/client" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -118,24 +113,6 @@ func WriteNewExpectedLogsResult(t *testing.T, file string, log *plog.Logs) { require.NoError(t, golden.WriteLogs(t, filepath.Join("results", filepath.Base(file)), *log)) } -func SetupSignalfxReceiver(t *testing.T, port int) *consumertest.MetricsSink { - mc := new(consumertest.MetricsSink) - f := signalfxreceiver.NewFactory() - cfg := f.CreateDefaultConfig().(*signalfxreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", port) - - rcvr, err := f.CreateMetrics(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, mc) - require.NoError(t, err) - - require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) - require.NoError(t, err, "failed creating metrics receiver") - t.Cleanup(func() { - assert.NoError(t, rcvr.Shutdown(context.Background())) - }) - - return mc -} - func CheckPodsReady(t *testing.T, clientset *kubernetes.Clientset, namespace, labelSelector string, timeout time.Duration) { require.Eventually(t, func() bool { diff --git a/functional_tests/internal/sinks.go b/functional_tests/internal/sinks.go new file mode 100644 index 000000000..87665d714 --- /dev/null +++ b/functional_tests/internal/sinks.go @@ -0,0 +1,106 @@ +// Copyright Splunk Inc. +// SPDX-License-Identifier: Apache-2.0 + +package internal + +import ( + "context" + "fmt" + "testing" + + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/signalfxreceiver" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/component/componenttest" + "go.opentelemetry.io/collector/consumer/consumertest" + "go.opentelemetry.io/collector/receiver/otlpreceiver" + "go.opentelemetry.io/collector/receiver/receivertest" +) + +const ( + HECLogsReceiverPort = 8090 + HECMetricsReceiverPort = 8091 + HECObjectsReceiverPort = 8092 + OTLPGRPCReceiverPort = 4317 +) + +func SetupHECLogsSink(t *testing.T) *consumertest.LogsSink { + return setupHECLogsSink(t, HECLogsReceiverPort) +} + +func SetupHECObjectsSink(t *testing.T) *consumertest.LogsSink { + return setupHECLogsSink(t, HECObjectsReceiverPort) +} + +func setupHECLogsSink(t *testing.T, port int) *consumertest.LogsSink { + f := splunkhecreceiver.NewFactory() + cfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) + cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", port) + + lc := new(consumertest.LogsSink) + rcvr, err := f.CreateLogs(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, lc) + require.NoError(t, err) + + require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) + require.NoError(t, err, "failed creating logs receiver") + t.Cleanup(func() { + require.NoError(t, rcvr.Shutdown(context.Background())) + }) + + return lc +} + +func SetupHECMetricsSink(t *testing.T) *consumertest.MetricsSink { + // the splunkhecreceiver does poorly at receiving logs and metrics. Use separate ports for now. + f := splunkhecreceiver.NewFactory() + mCfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) + mCfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", HECMetricsReceiverPort) + + mc := new(consumertest.MetricsSink) + mrcvr, err := f.CreateMetrics(context.Background(), receivertest.NewNopSettings(f.Type()), mCfg, mc) + require.NoError(t, err) + + require.NoError(t, mrcvr.Start(context.Background(), componenttest.NewNopHost())) + require.NoError(t, err, "failed creating metrics receiver") + t.Cleanup(func() { + require.NoError(t, mrcvr.Shutdown(context.Background())) + }) + + return mc +} + +func SetupOTLPTracesSink(t *testing.T) *consumertest.TracesSink { + tc := new(consumertest.TracesSink) + f := otlpreceiver.NewFactory() + cfg := f.CreateDefaultConfig().(*otlpreceiver.Config) + cfg.Protocols.GRPC.NetAddr.Endpoint = fmt.Sprintf("0.0.0.0:%d", OTLPGRPCReceiverPort) + + rcvr, err := f.CreateTraces(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, tc) + require.NoError(t, err) + + require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) + require.NoError(t, err, "failed creating traces receiver") + t.Cleanup(func() { + require.NoError(t, rcvr.Shutdown(context.Background())) + }) + + return tc +} + +func SetupSignalfxReceiver(t *testing.T, port int) *consumertest.MetricsSink { + mc := new(consumertest.MetricsSink) + f := signalfxreceiver.NewFactory() + cfg := f.CreateDefaultConfig().(*signalfxreceiver.Config) + cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", port) + + rcvr, err := f.CreateMetrics(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, mc) + require.NoError(t, err) + + require.NoError(t, rcvr.Start(context.Background(), componenttest.NewNopHost())) + require.NoError(t, err, "failed creating metrics receiver") + t.Cleanup(func() { + require.NoError(t, rcvr.Shutdown(context.Background())) + }) + + return mc +} diff --git a/functional_tests/istio/istio_test.go b/functional_tests/istio/istio_test.go index 69bf29dcf..41cda840c 100644 --- a/functional_tests/istio/istio_test.go +++ b/functional_tests/istio/istio_test.go @@ -41,7 +41,6 @@ import ( ) const ( - apiPort = 8881 signalFxReceiverPort = 9943 istioVersion = "1.24.2" ) @@ -71,7 +70,7 @@ func setupOnce(t *testing.T) *consumertest.MetricsSink { } // create an API server - internal.CreateApiServer(t, apiPort) + internal.SetupSignalFxApiServer(t) istioMetricsConsumer = internal.SetupSignalfxReceiver(t, signalFxReceiverPort) @@ -136,7 +135,7 @@ func deployIstioAndCollector(t *testing.T) { ApiURL string }{ fmt.Sprintf("http://%s:%d", hostEp, signalFxReceiverPort), - fmt.Sprintf("http://%s:%d", hostEp, apiPort), + fmt.Sprintf("http://%s:%d", hostEp, internal.SignalFxAPIPort), } tmpl, err := template.New("").Parse(string(valuesBytes)) require.NoError(t, err) diff --git a/functional_tests/k8sevents/k8sevents_test.go b/functional_tests/k8sevents/k8sevents_test.go index 270f4f88c..6f5491f2e 100644 --- a/functional_tests/k8sevents/k8sevents_test.go +++ b/functional_tests/k8sevents/k8sevents_test.go @@ -36,11 +36,6 @@ import ( "github.com/signalfx/splunk-otel-collector-chart/functional_tests/internal" ) -const ( - apiPort = 8881 - splunkHecReceiverPort = 8089 -) - var setupRun = sync.Once{} var eventsLogsConsumer *consumertest.LogsSink @@ -134,9 +129,9 @@ func setup(t *testing.T) *consumertest.LogsSink { teardown(t, k8sClient) } - internal.CreateApiServer(t, apiPort) + internal.SetupSignalFxApiServer(t) - eventsLogsConsumer = setupHECLogsReceiver(t, splunkHecReceiverPort) + eventsLogsConsumer = internal.SetupHECLogsSink(t) if os.Getenv("SKIP_SETUP") == "true" { t.Log("Skipping setup as SKIP_SETUP is set to true") @@ -169,8 +164,8 @@ func deployWorkloadAndCollector(t *testing.T) { ApiURL string LogURL string }{ - fmt.Sprintf("http://%s:%d", hostEp, apiPort), - fmt.Sprintf("http://%s:%d", hostEp, splunkHecReceiverPort), + fmt.Sprintf("http://%s:%d", hostEp, internal.SignalFxAPIPort), + fmt.Sprintf("http://%s:%d", hostEp, internal.HECLogsReceiverPort), } tmpl, err := template.New("").Parse(string(valuesBytes)) require.NoError(t, err) @@ -246,7 +241,7 @@ metadata: func setupHECLogsReceiver(t *testing.T, port int) *consumertest.LogsSink { f := splunkhecreceiver.NewFactory() cfg := f.CreateDefaultConfig().(*splunkhecreceiver.Config) - cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", splunkHecReceiverPort) + cfg.Endpoint = fmt.Sprintf("0.0.0.0:%d", internal.HECLogsReceiverPort) receiver := new(consumertest.LogsSink) rcvr, err := f.CreateLogs(context.Background(), receivertest.NewNopSettings(f.Type()), cfg, receiver)