# Semantic conventions for AWS SDK client spans

LLMS index: [llms.txt](/llms.txt)

---

**Status**: [Development][DocumentStatus]

## Context propagation

See [compatibility](../non-normative/compatibility/aws.md#context-propagation).

## AWS SDK spans

<!-- prettier-ignore-start -->
<!-- semconv span.aws.client -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

This span describes an AWS SDK client call.

**Span name** MUST be of the format `Service.Operation` as per the
AWS HTTP API, e.g., `DynamoDB.GetItem`, `S3.ListBuckets`. This is
equivalent to concatenating `rpc.service` and `rpc.method` with `.` and
consistent with the naming guidelines for RPC client spans.

AWS SDK span attributes are based on the request or response parameters
in AWS SDK API calls. The conventions have been collected over time based
on feedback from AWS users of tracing and will continue to increase as new
interesting conventions are found.

**Span kind** SHOULD be `CLIENT`.

**Span status** SHOULD follow the [Recording Errors](/docs/specs/semconv/general/recording-errors.md) document.

**Attributes:**

| Key | Stability | [Requirement Level](/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`rpc.system`](/docs/specs/semconv/registry/attributes/rpc.md) | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Replaced by `rpc.system.name`. | `Required` | string | The value `aws-api`. | `aws-api` |
| [`aws.extended_request_id`](/docs/specs/semconv/registry/attributes/aws.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Conditionally Required` If available. | string | The AWS extended request ID as returned in the response header `x-amz-id-2`. | `wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ=` |
| [`aws.request_id`](/docs/specs/semconv/registry/attributes/aws.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | 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` |
| [`cloud.region`](/docs/specs/semconv/registry/attributes/cloud.md) | ![Development](https://img.shields.io/badge/-development-blue) | `Recommended` | string | The AWS Region where the requested service is being accessed. [1] | `us-east-1`; `us-west-2` |
| [`rpc.method`](/docs/specs/semconv/registry/attributes/rpc.md) | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) | `Recommended` | string | The name of the operation corresponding to the request, as returned by the AWS SDK | `GetItem`; `PutItem` |
| [`rpc.service`](/docs/specs/semconv/registry/attributes/rpc.md) | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Value should be included in `rpc.method` which is expected to be a fully-qualified name. | `Recommended` | string | The name of the service to which a request is made, as returned by the AWS SDK. | `DynamoDB`; `S3` |

**[1] `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](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html#available-regions).

---

`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](https://img.shields.io/badge/-development-blue) |
| `connect_rpc` | Connect RPC | ![Development](https://img.shields.io/badge/-development-blue) |
| `dotnet_wcf` | .NET WCF | ![Development](https://img.shields.io/badge/-development-blue) |
| `grpc` | gRPC | ![Development](https://img.shields.io/badge/-development-blue) |
| `java_rmi` | Java RMI | ![Development](https://img.shields.io/badge/-development-blue) |
| `jsonrpc` | JSON-RPC | ![Development](https://img.shields.io/badge/-development-blue) |
| `onc_rpc` | [ONC RPC (Sun RPC)](https://datatracker.ietf.org/doc/html/rfc5531) | ![Development](https://img.shields.io/badge/-development-blue) |

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
<!-- prettier-ignore-end -->

## AWS service specific attributes

The following Semantic Conventions extend the general AWS SDK attributes for specific AWS services:

- [AWS DynamoDB](/docs/specs/semconv/db/dynamodb.md): Semantic Conventions for _AWS DynamoDB_.
- [AWS S3](/docs/specs/semconv/object-stores/s3.md): Semantic Conventions for _AWS S3_.
- [AWS Bedrock](/docs/specs/semconv/gen-ai/aws-bedrock.md): Semantic Conventions for _AWS Bedrock_.
- [AWS SNS](/docs/specs/semconv/messaging/sns.md): Semantic Conventions for _AWS SNS_.
- [AWS SQS](/docs/specs/semconv/messaging/sqs.md): Semantic Conventions for _AWS SQS_.

[DocumentStatus]: /docs/specs/otel/document-status
