Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Regression] Update expected python template for new OTel Python AWS SDK Instrumentation #165

Conversation

NathanielRN
Copy link
Contributor

@NathanielRN NathanielRN commented Nov 1, 2021

Description

OTel Python has updated their instrumentation to not populate the aws.operation attribute anymore. They did this because the specification defined how to instrument the AWS SDK.

We updated the template on the test-framework to account for this change, but as the main-build.yml revealed, we were expecting the "operation" on the trace INFERRED BY AWS X-RAY SERVICE TEAM:

{
"name":"S3",
"origin":"AWS::S3",
"inferred":true,
"aws":{
"operation":"ListBuckets"
}
}
]

However, the service team implementation must not know to read from the metadata attributes as this spec is so new.

Impact

Before - user could see ListBuckets in the X-Ray console at these points:

Screen Shot 2021-11-01 at 6 11 29 PM

After - now, user cannot see anything here:

Screen Shot 2021-11-01 at 6 12 47 PM

However, they can still find the "operation" if they look at the metadata of the subsegment span sent by OpenTelemetry Python (previously and still now):

Screen Shot 2021-11-01 at 6 08 41 PM
Screen Shot 2021-11-01 at 6 09 03 PM

Solutions

  1. We can use the OTel Collector Contrib to map rpc.method to aws.operation and that way the service team implementation can pick it up as is
  2. We can ask the service team to read rpc.method instead of aws.operation to populate the operation.

Link to tracking Issue:

N/A

Testing:

This template is what decides the test.

Documentation:

N/A

@NathanielRN NathanielRN merged commit 2c55ba2 into aws-observability:main Nov 1, 2021
@NathanielRN NathanielRN deleted the update-expected-python-template-for-new-instrumentation branch November 1, 2021 22:32
@willarmiros
Copy link
Contributor

I think we should go with solution 1 - the X-Ray service generally doesn't read the metadata content, nor does it understand the OTel semantic conventions yet. This will also allow the quickest turnaround.

That being said, the aws.operation field on the X-Ray segment should still be present so that it shows up on the customer's console, so it shouldn't be removed from the integration test template permanently. We should file an issue to track adding it back once the collector fix is in place.

@NathanielRN NathanielRN changed the title Update expected python template for new OTel Python AWS SDK Instrumentation [Regression] Update expected python template for new OTel Python AWS SDK Instrumentation Nov 2, 2021
@NathanielRN
Copy link
Contributor Author

Sounds good! Created the following follow ups:

Revert the changes here to modify the template. This way we make sure we don't release this layer until the regression is solved: #168

Opened up an issue in OTel Collector Contrib explaining the regression and my suggestion to implement Solution 1: open-telemetry/opentelemetry-collector-contrib#6109

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants