semantic-conventions/docs/object-stores/s3.md

9.9 KiB

Semantic conventions for AWS S3 client spans

Status: Development

Status: Development

Semantic Conventions for AWS S3 client spans extend the general AWS SDK Semantic Conventions

Span kind SHOULD be CLIENT.

Span status SHOULD follow the Recording Errors document.

Attribute Type Description Examples Requirement Level Stability
rpc.system string The value aws-api. aws-api Required Development
aws.extended_request_id string The AWS extended request ID as returned in the response header x-amz-id-2. wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ= Conditionally Required If available. Development
aws.request_id string The AWS request ID as returned in the response headers x-amzn-requestid, x-amzn-request-id or x-amz-request-id. 79b9da39-b7ae-508a-a6bc-864b2829c622; C9ER4AJX75574TDJ Recommended Development
aws.s3.bucket string The S3 bucket name the request refers to. Corresponds to the --bucket parameter of the S3 API operations. [1] some-bucket-name Recommended Development
aws.s3.copy_source string The source object (in the form bucket/key) for the copy operation. [2] someFile.yml Recommended Development
aws.s3.delete string The delete request container that specifies the objects to be deleted. [3] Objects=[{Key=string,VersionId=string},{Key=string,VersionId=string}],Quiet=boolean Recommended Development
aws.s3.key string The S3 object key the request refers to. Corresponds to the --key parameter of the S3 API operations. [4] someFile.yml Recommended Development
aws.s3.part_number int The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000. [5] 3456 Recommended Development
aws.s3.upload_id string Upload ID that identifies the multipart upload. [6] dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ Recommended Development
cloud.region string The AWS Region where the requested service is being accessed. [7] us-east-1; us-west-2 Recommended Development
rpc.method string The name of the operation corresponding to the request, as returned by the AWS SDK [8] GetItem; PutItem Recommended Development
rpc.service string The name of the service to which a request is made, as returned by the AWS SDK. [9] DynamoDB; S3 Recommended Development

[1] aws.s3.bucket: The bucket attribute is applicable to all S3 operations that reference a bucket, i.e. that require the bucket name as a mandatory parameter. This applies to almost all S3 operations except list-buckets.

[2] aws.s3.copy_source: The copy_source attribute applies to S3 copy operations and corresponds to the --copy-source parameter of the copy-object operation within the S3 API. This applies in particular to the following operations:

[3] aws.s3.delete: The delete attribute is only applicable to the delete-object operation. The delete attribute corresponds to the --delete parameter of the delete-objects operation within the S3 API.

[4] aws.s3.key: The key attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter. This applies in particular to the following operations:

[5] aws.s3.part_number: The part_number attribute is only applicable to the upload-part and upload-part-copy operations. The part_number attribute corresponds to the --part-number parameter of the upload-part operation within the S3 API.

[6] aws.s3.upload_id: The upload_id attribute applies to S3 multipart-upload operations and corresponds to the --upload-id parameter of the S3 API multipart operations. This applies in particular to the following operations:

[7] cloud.region: Specifies the AWS Region that the SDK client targets for a given AWS service call. The attribute's value should adhere to the AWS Region codes outlined in the AWS documentation.

[8] rpc.method: This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The code.function.name attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).

[9] rpc.service: This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The code.namespace attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).


rpc.system has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
apache_dubbo Apache Dubbo Development
connect_rpc Connect RPC Development
dotnet_wcf .NET WCF Development
grpc gRPC Development
java_rmi Java RMI Development