From ed8502f2c913cc5b73cfbf3b695839c5f643e2e6 Mon Sep 17 00:00:00 2001 From: Raj Nishtala Date: Fri, 31 Jan 2025 18:07:22 -0500 Subject: [PATCH] Upgrade dotnet and nodejs autoinstr versions --- deploy/helm/sumologic/README.md | 4 +- deploy/helm/sumologic/values.yaml | 4 +- tests/integration/features.go | 52 +++++++++++++++++++ .../helm_opentelemetry_operator_instr_test.go | 8 +-- .../internal/sumologicmock/receiver_mock.go | 21 ++++++-- 5 files changed, 78 insertions(+), 11 deletions(-) diff --git a/deploy/helm/sumologic/README.md b/deploy/helm/sumologic/README.md index 89aa406d3f..3e4906c8f3 100644 --- a/deploy/helm/sumologic/README.md +++ b/deploy/helm/sumologic/README.md @@ -304,7 +304,7 @@ The following table lists the configurable parameters of the Sumo Logic chart an | `instrumentation.createDefaultInstrumentation` | Flag to control creation of default Instrumentation object | `false` | | `instrumentation.dotnet.extraEnvVars` | Additional environment variables for OpenTelemetry Operator Instrumentation Resource. | `{}` | | `opentelemetry-operator.manager.autoInstrumentationImage.dotnet.repository` | OpenTelemetry Operator DotNet Instrumentation iamfge repository. | `public.ecr.aws/sumologic/autoinstrumentation-dotnet` | -| `opentelemetry-operator.manager.autoInstrumentationImage.dotnet.tag` | OpenTelemetry Operator DotNet Instrumentation image tag. | `0.7.0` | +| `opentelemetry-operator.manager.autoInstrumentationImage.dotnet.tag` | OpenTelemetry Operator DotNet Instrumentation image tag. | `1.9.0` | | `instrumentation.dotnet.metrics.enabled` | Flag to control metrics export from DotNet instrumentation in `Instrumentation` resource. | `true` | | `instrumentation.dotnet.traces.enabled` | Flag to control traces export from DotNet instrumentation in `Instrumentation` resource. | `true` | | `instrumentation.java.extraEnvVars` | Additional environment variables for OpenTelemetry Operator Instrumentation Resource. | `{}` | @@ -320,7 +320,7 @@ The following table lists the configurable parameters of the Sumo Logic chart an | `instrumentation.nodejs.metrics.enabled` | Flag to control metrics export from NodeJS instrumentation in `Instrumentation` resource. | `true` | | `instrumentation.nodejs.extraEnvVars` | Additional environment variables for OpenTelemetry Operator Instrumentation Resource. | `{}` | | `opentelemetry-operator.manager.autoInstrumentationImage.nodejs.repository` | OpenTelemetry Operator NodeJS Instrumentation image repository. | `public.ecr.aws/sumologic/autoinstrumentation-nodejs` | -| `opentelemetry-operator.manager.autoInstrumentationImage.nodejs.tag` | OpenTelemetry Operator NodeJS Instrumentation image tag. | `0.40.0` | +| `opentelemetry-operator.manager.autoInstrumentationImage.nodejs.tag` | OpenTelemetry Operator NodeJS Instrumentation image tag. | `0.54.0` | | `opentelemetry-operator.manager.image.repository` | The default operator image repository for OpenTelemetry. | `public.ecr.aws/sumologic/opentelemetry-operator` | | `opentelemetry-operator.manager.collectorImage.repository` | The default collector image repository for OpenTelemetryCollector CRDs. | `public.ecr.aws/sumologic/sumologic-otel-collector` | | `opentelemetry-operator.manager.collectorImage.tag` | The default collector image tag for OpenTelemetryCollector CRDs. | `0.114.0-sumo-0` | diff --git a/deploy/helm/sumologic/values.yaml b/deploy/helm/sumologic/values.yaml index b537d6f211..cd7d2bddbb 100644 --- a/deploy/helm/sumologic/values.yaml +++ b/deploy/helm/sumologic/values.yaml @@ -2498,13 +2498,13 @@ opentelemetry-operator: tag: 2.10.0 dotnet: repository: public.ecr.aws/sumologic/autoinstrumentation-dotnet - tag: 0.7.0 + tag: 1.9.0 python: repository: public.ecr.aws/sumologic/autoinstrumentation-python tag: 0.48b0 nodejs: repository: public.ecr.aws/sumologic/autoinstrumentation-nodejs - tag: 0.40.0 + tag: 0.54.0 env: {} # ENABLE_WEBHOOKS: "true" diff --git a/tests/integration/features.go b/tests/integration/features.go index 0d91a800f7..fd87378e6c 100644 --- a/tests/integration/features.go +++ b/tests/integration/features.go @@ -765,6 +765,58 @@ func GetCurlAppFeature() features.Feature { internal.InstrumentationAppsNamespace, internal.CurlAppImage, )). + Assess("wait for dotnet traces", stepfuncs.WaitUntilExpectedSpansPresent( + 1, + map[string]string{ + "application": "test-apps", + "service.name": "dotnet-app", + "_collector": "kubernetes", + "http.request.method": "GET", + "http.response.status_code": "200", + "url.path": "/", + "k8s.cluster.name": "kubernetes", + "k8s.container.name": "dotnetapp", + "k8s.deployment.name": "dotnet-app", + "k8s.namespace.name": internal.InstrumentationAppsNamespace, + "k8s.pod.pod_name": "dotnet-app", + "k8s.pod.label.app": "dotnet-app", + "_sourceCategory": "kubernetes/test/apps/dotnet/app", + "_sourceName": fmt.Sprintf("%s.dotnet-app.dotnetapp", internal.InstrumentationAppsNamespace), + "telemetry.distro.version": "1.9.0", + "telemetry.sdk.language": "dotnet", + "telemetry.sdk.version": "1.9.0", + }, + waitDuration, + tickDuration, + )). + Assess("wait for nodejs traces", stepfuncs.WaitUntilExpectedSpansPresent( + 1, + map[string]string{ + "application": "test-apps", + "service.name": "nodejs-app", + "_collector": "kubernetes", + "http.method": "GET", + "http.route": "/", + "http.status_code": "200", + "http.scheme": "http", + "http.target": "/", + "http.url": "http://nodejs-app-service.test-apps:8080/", + "k8s.cluster.name": "kubernetes", + "k8s.container.name": "nodejsapp", + "k8s.deployment.name": "nodejs-app", + "k8s.namespace.name": internal.InstrumentationAppsNamespace, + "k8s.pod.pod_name": "nodejs-app", + "k8s.pod.label.app": "nodejs-app", + "net.host.port": "3000", + "_sourceCategory": "kubernetes/test/apps/nodejs/app", + "_sourceName": fmt.Sprintf("%s.nodejs-app.nodejsapp", internal.InstrumentationAppsNamespace), + "telemetry.sdk.language": "nodejs", + "telemetry.sdk.name": "opentelemetry", + "telemetry.sdk.version": "1.27.0", + }, + waitDuration, + tickDuration, + )). Assess("wait for java traces", stepfuncs.WaitUntilExpectedSpansPresent( 1, map[string]string{ diff --git a/tests/integration/helm_opentelemetry_operator_instr_test.go b/tests/integration/helm_opentelemetry_operator_instr_test.go index 82e811f48e..9278a5cf4f 100644 --- a/tests/integration/helm_opentelemetry_operator_instr_test.go +++ b/tests/integration/helm_opentelemetry_operator_instr_test.go @@ -113,12 +113,12 @@ func Test_OpenTelemetry_Operator_Instrumentation(t *testing.T) { }). Feature() - // featDotnetApp := GetDotnetAppFeature() + featDotnetApp := GetDotnetAppFeature() featJavaApp := GetJavaAppFeature() - // featNodeJSApp := GetNodeJSAppFeature() - // featPythonApp := GetPythonAppFeature() + featNodeJSApp := GetNodeJSAppFeature() + featPythonApp := GetPythonAppFeature() curlApp := GetCurlAppFeature() - testenv.Test(t, featInstall, featOpenTelemetryOperator, featJavaApp, curlApp) + testenv.Test(t, featInstall, featOpenTelemetryOperator, featDotnetApp, featJavaApp, featNodeJSApp, featPythonApp, curlApp) } diff --git a/tests/integration/internal/sumologicmock/receiver_mock.go b/tests/integration/internal/sumologicmock/receiver_mock.go index 9b033ef165..a5f063fc88 100644 --- a/tests/integration/internal/sumologicmock/receiver_mock.go +++ b/tests/integration/internal/sumologicmock/receiver_mock.go @@ -185,7 +185,9 @@ func (client *SumologicMockClient) GetSpansCount(t *testing.T, metadataFilters M } url := client.baseUrl.ResolveReference(path) + fmt.Println("================Test Name================") fmt.Println(t.Name()) + fmt.Println("================URL================") resp, err := http.Get(url.String()) if err != nil { return 0, fmt.Errorf("failed fetching %s, err: %w", url, err) @@ -195,14 +197,22 @@ func (client *SumologicMockClient) GetSpansCount(t *testing.T, metadataFilters M return 0, fmt.Errorf("failed reading response body: %w", err) } bodyString := string(body) + fmt.Println("================Response (No filters)================") fmt.Println(bodyString) url.RawQuery = queryParams.Encode() - + fmt.Println("================URL With Filters================") + fmt.Println(url.String()) resp, err = http.Get(url.String()) if err != nil { return 0, fmt.Errorf("failed fetching %s, err: %w", url, err) } - + body, err = io.ReadAll(resp.Body) + if err != nil { + return 0, fmt.Errorf("failed reading response body: %w", err) + } + bodyString = string(body) + fmt.Println("================Response (With filters)================") + fmt.Println(bodyString) if resp.StatusCode != 200 { return 0, fmt.Errorf( "received status code %d in response to receiver request at %q", @@ -211,9 +221,14 @@ func (client *SumologicMockClient) GetSpansCount(t *testing.T, metadataFilters M } var spans []Span - if err := json.NewDecoder(resp.Body).Decode(&spans); err != nil { + if err := json.Unmarshal(body, &spans); err != nil { return 0, err } + /*if err := json.NewDecoder(resp.Body).Decode(&spans); err != nil { + return 0, err + }*/ + fmt.Println("================Response================") + fmt.Println(spans) return uint(len(spans)), nil }