Create SDK extension format for AWS SDK Extension #1189
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Right now, you can configure OTel to trace with custom
Resource
definitions, and (soon) will be able to trace with customIdsGenerator
implementations.In addition to the defaults provided by the OTel SDK, this PR hopes to add a format to include SDK Extensions. SDK Extensions are similar to
instrumentation/
packages in that they are optional packages that a customer can pull in to provide additional functionality. Thesdk-extension/
packages would each individually provide a set of pre-built interface implementations to run OTel "differently". An OTel which runs "differently" can now support tracing in a necessarily specific way, which if traced under the default implementations would provide traces that were undesirable.Specifically, this is a solution for services like the AWS X-Ray backend service, which requires IDs to be generated in the AWS X-Ray Trace ID Format. Having this
opentelemetry-sdk-extension-aws
package makes it easy to import the necessaryAWSXrayIdsGenerator
class and create aTracerProvider
which sends IDs in the correct format right at the start. (Which will be important for downstream propagation and finally arrival at the X-Ray backend service).The goal is to be able to do something like the following:
and subsequently,
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
The following tests also implicity test that importing an
sdk-extension/
package works properly.Checklist: