#support

AWS Operation vs RPC Method in Go and Python Traces

TLDR Timothy observed differences in traces between Go and Python instrumentation for AWS DynamoDB, where Go uses aws.operation and Python uses rpc.method. Srikanth suggested reporting the issue on the OpenTelemetry Go instrumentation repository.

Powered by Struct AI
5
7mo
Solved
Join the chat
Mar 02, 2023 (7 months ago)
Timothy
Photo of md5-f930fdb99fd46477205fa1201164ea50
Timothy
03:37 PM
Hey I was wondering why there is a difference between traces coming from dynamoDB. One uses python and the other uses go but they both use official AWS instrumentation. It seems go stores the operation in aws.operation and python stores the operation in rpc.method. I know the attributes are not set by SigNoz but maybe aws.operation should be read similar to rpc.method?
Image 1 for Hey I was wondering why there is a difference between traces coming from dynamoDB. One uses python and the other uses go but they both use official AWS instrumentation. It seems go stores the operation in aws.operation and python stores the operation in rpc.method. I know the attributes are not set by SigNoz but maybe aws.operation should be read similar to rpc.method?
Ankit
Photo of md5-dbe7088320fe1d922707613e02f3420d
Ankit
03:55 PM
If you are talking about the column Operation in trace filter page, I don't think SigNoz plays around with it. We analyse different span attributes to create a sensible value for the columns Method and Status Code keeping in mind http and grpc calls.

Are you talking about differences in latencies? Latency usually has nothing to do with what the attribute values are and how are they stored. Can you please be more detailed here?

cc: vishal-signoz
Timothy
Photo of md5-f930fdb99fd46477205fa1201164ea50
Timothy
04:30 PM
Sorry to be clear I am focused on the method column. It seems that the go and python instrumentation do not set the attributes the same and therefore the go dynomo db calls do not fill in the methods column. The go sets the method in aws.operation even though the instrumentation should be same between languages. Since it’s not is it reasonable for SigNoz to consider aws.operation attribute as a method as well or should I manually inject our spans with the rpc.method?
Srikanth
Photo of md5-ce04a9988e2fd758a659dc55be6f2543
Srikanth
04:52 PM
The instrumentation libraries are not mature yet, so they will have differences. It is indeed an rpc call under the hood. You may want to open an issue here and get that fixed https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation
Timothy
Photo of md5-f930fdb99fd46477205fa1201164ea50
Timothy
05:11 PM
Thank you