Skip to content

Conversation

@laurit
Copy link
Contributor

@laurit laurit commented Oct 17, 2025

Resolves #14580
Update attribute names and types and enable the ones that are in spec without the experimental falg. This PR also affects some attributes that were generated without the experimental flag, but aren't in the semantic conventions such as aws.queue.url and aws.queue.name.

@laurit laurit marked this pull request as ready for review October 17, 2025 20:25
@laurit laurit requested a review from a team as a code owner October 17, 2025 20:25
Copy link
Member

@jaydeluca jaydeluca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we mark this as a breaking change? With some description like:

The following attributes have been renamed to adhere to semantic conventions:

  • aws.dynamodb.provisioned_throughput.read_capacity_units -> aws.dynamodb.provisioned_read_capacity (value went from long to double)
  • aws.dynamodb.provisioned_throughput.write_capacity_units -> aws.dynamodb.provisioned_write_capacity (value went from long to double)
  • aws.dynamodb.exclusive_start_table_name -> aws.dynamodb.exclusive_start_table

And the following attributes are no longer emitted by default, but can be enabled with the experimental flag:

  • aws.queue.name
  • aws.lambda.function.name
  • aws.lambda.function.arn

@laurit
Copy link
Contributor Author

laurit commented Oct 22, 2025

should we mark this as a breaking change?

I think so. Our convention is to not emit non-spec attributes by default. By that logic these attributes should have been behind the experimental flag, but apparently we messed up. In

if (captureExperimentalSpanAttributes) {
AwsSdkRequest sdkRequest = executionAttributes.getAttribute(AWS_SDK_REQUEST_ATTRIBUTE);
if (sdkRequest != null) {
fieldMapper.mapToAttributes(response, sdkRequest, span);
}
}

we check whether experimental flags are enabled but in
if (awsSdkRequest != null) {
executionAttributes.putAttribute(AWS_SDK_REQUEST_ATTRIBUTE, awsSdkRequest);
fieldMapper.mapToAttributes(request, awsSdkRequest, span);
}
we don't. So all request attributes are added by default, but response attributes require the experimental flag.

@github-actions
Copy link
Contributor

⚠️ Breaking Change Documentation Required

This PR has been labeled as a breaking change. Please ensure you provide the following information:

Migration Notes Required

Please add detailed migration notes to help users understand:

  • What is changing and why
  • How to update their code/configuration
  • Any alternative approaches if applicable
  • Code examples showing before/after usage

Checklist

  • Migration notes added to the PR description
  • Breaking change is documented in the changelog entry for the next release
  • Consider if this change requires a major version bump

Your migration notes will be included in the release notes to help users upgrade smoothly. The more detailed and helpful they are, the better the user experience will be.


This comment was automatically generated because the breaking change label was applied to this PR.

@trask trask merged commit 70765d1 into open-telemetry:main Oct 22, 2025
108 of 155 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Aws sdk2: speced attribute requires experimental flag

3 participants