# AWS SDK

<!-- llms-txt-link: /llms.txt -->

> OpenTelemetry Java agent instrumentation

This instrumentation covers the AWS SDK 1.11+ client library, enabling messaging and client spans and metrics for calls to AWS services including DynamoDB, EC2, Kinesis, Lambda, RDS, S3, secrets manager, SNS/SQS and step functions.

- **Name**: `aws-sdk-1.11`
- **Scope**: `io.opentelemetry.aws-sdk-1.11`
- **Target versions**: `com.amazonaws:aws-java-sdk-core:[1.10.33,)`, `com.amazonaws:aws-java-sdk-sqs:[1.10.33,)`
- **Library**: https://aws.amazon.com/sdk-for-java/

## Telemetry

- **Metrics**: `db.client.operation.duration`
- **Span attributes**: `aws.agent`, `aws.dynamodb.table_names`, `aws.kinesis.stream_name`, `aws.lambda.function.arn`, `aws.lambda.function.name`, `aws.lambda.resource_mapping.id`, `aws.queue.name`, `aws.request_id`, `aws.s3.bucket`, `aws.sns.topic.arn`, `aws.sqs.queue.url`, `aws.step_functions.activity.arn`, `aws.step_functions.state_machine.arn`, `db.operation`, `db.system`, `error.type`, `http.request.method`, `http.response.status_code`, `messaging.destination.name`, `network.protocol.version`, `rpc.method`, `rpc.service`, `rpc.system`, `server.address`, `server.port`, `url.full`, `messaging.batch.message_count`, `messaging.message.id`, `messaging.operation`, `messaging.system`, `db.collection.name`, `db.operation.batch.size`, `db.operation.name`, `db.system.name`

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.messaging.experimental.capture-headers` | list |  | A comma-separated list of header names to capture as span attributes. |
| `otel.instrumentation.aws-sdk.experimental-span-attributes` | boolean | false | Enables the experimental span attributes `aws.agent`, `aws.queue.name`, `aws.lambda.function.arn` and `aws.lambda.function.name` for AWS SDK instrumentation. |
| `otel.instrumentation.messaging.experimental.receive-telemetry.enabled` | boolean | false | Enables experimental receive telemetry, which will cause consumers to start a new trace, with only a span link connecting it to the producer trace. |

## Data

- **JSON**: [/data/javaagent/instrumentations/aws-sdk-1.11/aws-sdk-1.11-0f97c26d60be.json](/data/javaagent/instrumentations/aws-sdk-1.11/aws-sdk-1.11-0f97c26d60be.json)
- **Explore**: [/java-agent/instrumentation/aws-sdk-1.11](/java-agent/instrumentation/aws-sdk-1.11)
