Skip to content

Capture SNS Topic ARNs as an attribute  #10030

Description

@tduncan

Is your feature request related to a problem? Please describe.

Important messaging details are not explicitly captured when instrumenting AWS SNS publish API calls. Depending on the version of the AWS SDK in use there may be information included as query parameters -- which is captured by the OpenTelemetry instrumentation -- but newer versions of the SDK have switched to including that information in the request body causing the information to be completely missing from the emitted spans.

Of particular concern in the SNS topic ARN to uniquely identify the SNS topic.

Describe the solution you'd like

Record the SNS topic ARN using the messaging.destination.name attribute.

Describe alternatives you've considered

Older versions of the AWS SDK utilize HTTP query parameters and included the SNS Topic ARN.

Example:
Below is an example of details included as HTTP query parameters

Attributes:
      -> http.method: Str(POST)
      -> rpc.system: Str(aws-api)
      -> thread.name: Str(main)
     -> http.url: Str(https://sns.us-west-2.amazonaws.com?Action=Publish&Version=2010-03-31&TopicArn=<arn>&Message=<message>)
      -> thread.id: Int(1)
      -> http.request_content_length: Int(141)
      -> rpc.service: Str(Sns)
      -> rpc.method: Str(Publish)
      -> http.status_code: Int(200)
      -> net.peer.name: Str(sns.us-west-2.amazonaws.com)
      -> user_agent.original: Str(aws-sdk-java/2.20.160 Linux/4.14.255-318-256.530.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/17.0.8.1+8-LTS Java/17.0.8.1 vendor/Amazon.com_Inc. exec-env/AWS_Lambda_java17 io/sync http/Apache cfg/retry-mode/legacy)
      -> http.response_content_length: Int(294)

Additional context

The same issue has been raised and accepted in the NodeJS (issue, commit) and Python (issue, commit).

Metadata

Metadata

Assignees

No one assigned

    Labels

    contribution welcomeRequest makes sense, maintainers probably won't have time, contribution would be welcomeenhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions