Closed lucix-aws closed 1 month ago
General comment for the spans:
- Any reason why we picked the middlewares that we picked for when to start a child span? Retry makes a lot of sense, the other ones I suspect are the ones that we know can take longer but curious to hear your thoughts
Most of them are just the principal "phases" of the operation lifecycle, e.g. resolving endpoint, serializing. There's no real hard list of this anywhere, the closest thing we have to that might be the lifecycle breakdown in the (unpublished) client reference architecture.
The more niche ones were giving Initialize
a span, and the outer BuildRequest
(basically everything from serialize to build), I wanted to generally contain those since
BuildRequest
one, you'd basically have OperationSerializer
in an oasis of un-spanned (well root spanned but yes) work.
Tracing component of #470
fmt.Sprintf
)smithy-go/tracing
APIsgithub.com/aws/smithy-go/tracing/smithy-otel-tracing
adapts an OTEL SDK TracerProvider for use with Smithy clientsrpc.method
- name of the operationrpc.service
- sdkID of the service (or shape name if not present)rpc.system
- hardcoded toaws-api
error.go.type
- literal go type of an operation's error e.g.&smithy.GenericAPIError
error.go.error
- results ofError()
on an operation's errorerror.api.fault
- if error is a smithy API error, the fault type (client/server/unknown)error.api.code
- if error ", the error codeerror.api.message
- if error ", the error messageerror
-true
if operation returned an errorhttp.proto
- HTTP protocol version (as read from the response)http.request.content_length
- content length of serialized request bodyhttp.request.method
- HTTP method of serialized requesthttp.response.status_code
- HTTP status code of raw responsehttp.response.content_length
- content length of raw response bodyoperation.resolved_endpoint
- the exact URL returned from endpoint resolution (including the scheme and any base path)operation.auth.resolved_scheme_id
- the auth scheme ID selected during resolution e.g. aws.auth#sigv4