Skip to content

[bug] AWS SDK instrumentation library causes auto-instrumentation library to fail generating traces when app uses AWS SDK v3 #3049

@lukeina2z

Description

@lukeina2z

Component

OpenTelemetry.Instrumentation.AWS

Package Version

Project 'OpenTelemetry.Instrumentation.AWS' has the following package references
[net472]:
Top-level Package Requested Resolved

AWSSDK.Core [4.0.0, 5.0.0) 3.7.400
AWSSDK.SimpleNotificationService [4.0.0, 5.0.0) 3.7.400
AWSSDK.SQS [4.0.0, 5.0.0) 3.7.400
Microsoft.CodeAnalysis.PublicApiAnalyzers [4.14.0] 4.14.0
Microsoft.NETFramework.ReferenceAssemblies [1.0.3,2.0) 1.0.3
Microsoft.SourceLink.GitHub [8.0.0,9.0) 8.0.0
MinVer [6.0.0,7.0) 6.0.0
StyleCop.Analyzers [1.2.0-beta.556,2.0) 1.2.0-beta.556

[netstandard2.0]:
Top-level Package Requested Resolved

AWSSDK.Core [4.0.0, 5.0.0) 3.7.400
AWSSDK.SimpleNotificationService [4.0.0, 5.0.0) 3.7.400
AWSSDK.SQS [4.0.0, 5.0.0) 3.7.400
Microsoft.CodeAnalysis.PublicApiAnalyzers [4.14.0] 4.14.0
Microsoft.NETFramework.ReferenceAssemblies [1.0.3,2.0) 1.0.3
Microsoft.SourceLink.GitHub [8.0.0,9.0) 8.0.0
MinVer [6.0.0,7.0) 6.0.0
NETStandard.Library (A) [2.0.3, ) 2.0.3
StyleCop.Analyzers [1.2.0-beta.556,2.0) 1.2.0-beta.556

[net8.0]:
Top-level Package Requested Resolved

AWSSDK.Core [4.0.0, 5.0.0) 3.7.400
AWSSDK.SimpleNotificationService [4.0.0, 5.0.0) 3.7.400
AWSSDK.SQS [4.0.0, 5.0.0) 3.7.400
Microsoft.CodeAnalysis.PublicApiAnalyzers [4.14.0] 4.14.0
Microsoft.NETFramework.ReferenceAssemblies [1.0.3,2.0) 1.0.3
Microsoft.SourceLink.GitHub [8.0.0,9.0) 8.0.0
MinVer [6.0.0,7.0) 6.0.0
StyleCop.Analyzers [1.2.0-beta.556,2.0) 1.2.0-beta.556

Runtime Version

net8.0

Description

AWS SDK instrumentation library causes auto-instrumentation library to fail generating traces when app uses AWS SDK v3

The AWS Distro of OTel .NET auto-instrumentation library needs to support both AWS SDK v3 and v4, as AWS SDK .NET v3 is not deprecated. After upgrading the AWS SDK Instrumentation Library to v1.12.0, no traces are generated if the application is using AWS SDK .NET v3.

The issue occurs because an exception is thrown when the AWS SDK instrumentation library cannot load the AWSSDK.Core.dll v4. This exception prevents the trace provider from being created, effectively shutting down the telemetry engine.

Steps to Reproduce

  1. In the OTel .NET Instrumentation project, enable AWS SDK instrumentation and the AWS resource detector by adding the following packages and corresponding code:

(The version numbers reflect the latest releases at the time of filing this issue.)

For the code changes, refer to this commit in the with-aws branch:
lukeina2z/opentelemetry-dotnet-instrumentation@3f95f89

  1. Build a simple .NET 9 console app, add a reference to AWS SDK .NET v3, and make some AWS calls in the app.

  2. Enable auto-instrumentation using the script and binaries built in step 1.

Expected Result

AWS SDK v3 calls and HTTP traces should be automatically generated.
You can verify this using a locally running Jaeger instance or an OTel Collector.

Actual Result

No OpenTelemetry traces are generated.

Additional Context

No response

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcomp:instrumentation.awsThings related to OpenTelemetry.Instrumentation.AWS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions