-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
AWS X-Ray Exporter should map rpc
values to aws
values
#6109
Labels
Comments
tigrannajaryan
pushed a commit
that referenced
this issue
Nov 12, 2021
…ng (#6231) When creating an **AWS segment**, the `exporter/awsxrayexporter/internal/translator/segment.go` file will create the "`AWS`" component of the segment (a map under the "`aws`" key) by reading through the attributes of an **OTel span**. Span generated for the AWS SDK will either have `aws.operation` according to legacy, or `rpc.method` to describes the "operation" made with the AWS SDK as explained [in the specifications](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/instrumentation/aws-sdk.md#common-attributes). Because some languages have moved to the new spec-defined `rpc.method`, we update the translator to consider this attribute. **NOTE**: We do not need to map `rpc.service` to `aws.service` since it is not used by the AWS X-Ray backend. **Link to tracking Issue:** Fixes #6109 **Testing:** Tests mostly make sure the operation (e.g. `GetItem`) is present in the final segment structure regardless if we are using the legacy `aws.operation` or the new `rpc.method`. In the case where both are defined, the legacy `aws.operation` will take precedence as remarked by the updated legacy unit test which defines both but which takes `aws.operation`. **Documentation:** Not a breaking change, so N/A.
povilasv
referenced
this issue
in coralogix/opentelemetry-collector-contrib
Dec 19, 2022
Signed-off-by: Bogdan <bogdandrutu@gmail.com> Signed-off-by: Bogdan <bogdandrutu@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is your feature request related to a problem? Please describe.
Follow up to #5766 where we fixed the logic used to set the namespace on an AWS X-Ray segment created from OTel traces.
The current X-Ray exporter will simply send
rpc.*
values to the AWS X-Ray backend and not transform them. This resulted in a regression in the OTel Python + AWS X-Ray experience as documented here: aws-observability/aws-otel-lambda#165.Failure to fix this soon will cause more regression as more languages become spec compliant.
Describe the solution you'd like
Instead of only sending the
rpc.service
,rpc.method
, andrpc.system
attributes to the AWS X-Ray backend, we need to map these values toaws.*
value that the AWS-XRay backend understands.Specifically:
rpc.service
->aws.service
rpc.method
->aws.operation
rpc.system
is already used in rpc.system has priority to determine aws namespace in awsxrayexporter #5833 to determine thenamespace
correctly.Describe alternatives you've considered
The AWS X-Ray backend team could also read
rpc.*
values in the future, but this would be a much larger effort involving many more teams.Additional context
See also:
rpc.*
valuesrpc.*
valuesThe text was updated successfully, but these errors were encountered: