From 7f8fe2832d87c1587c1efdbabea289b4521969fc Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 15 Oct 2020 17:53:25 +0900 Subject: [PATCH 01/27] Add semantic conventions for the AWS SDK. --- .../instrumentation/aws-sdk.md | 772 ++++++++++++++++++ 1 file changed, 772 insertions(+) create mode 100644 specification/trace/semantic_conventions/instrumentation/aws-sdk.md diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md new file mode 100644 index 00000000000..a0053d48521 --- /dev/null +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -0,0 +1,772 @@ +# AWS SDK Semantic Conventions + +These conventions apply to operations using the AWS SDK. They map request or response parameters +in AWS SDK API calls to attributes on a Span. 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. + +Some descriptions are also provided for populating OpenTelemetry semantic conventions. + +## General +| Attribute | Type | Description | Examples | +|---|---|---|---| +|awssdk.service | string | The service name of the request, as returned by the AWS SDK | `DynamoDB`, `S3` | +|awssdk.operation | string | The operation name of the request, as returned by the AWS SDK | `GetItem`, `PutObject` | + + +The following attributes are all copied from parameters in the request or response of the SDK call. + +## DynamoDB + +### BatchGetItem +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.table_names` | string array | Extract the keys of the `RequestItems` object field in the request | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | + +### BatchWriteItem + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.table_names` | string array | Extract the keys of the `RequestItems` object field in the request | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | +| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | + +### CreateTable + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.global_secondary_indexes` | string | JSON-serialize the `GlobalSecondaryIndexes` request list field | +| `awssdk.local_secondary_indexes` | string | JSON-serialize the `LocalSecondaryIndexes` request list field | +| `awssdk.provisioned_throughput. | int | d_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | +| `awssdk.provisioned_throughput. | int | te_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | + + +### DeleteItem + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | +| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | + +### DeleteTable + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | + +### DescribeTable + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | + +### GetItem + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.consistent_read` | bool | Copy the `ConsistentRead` request parameter | +| `awssdk.projection_expression` | string | Copy the `ProjectionExpression` request parameter | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | + +### ListTables + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.exclusive_start_table_name` | string | Copy the `ExclusiveStartTableName` request parameter | +| `awssdk.limit` | int | Copy the `Limit` request parameter | +| `awssdk.table_count` | int | Fill in the number of elements in the `TableNames` response list parameter | + +### PutItem + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | +| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | + +### Query + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.attributes_to_get` | string array | Copy the `AttributesToGet` list request parameter | +| `awssdk.consistent_read` | bool | Copy the `ConsistentRead` request parameter | +| `awssdk.index_name` | string | Copy the `IndexName` request parameter | +| `awssdk.limit` | int | Copy the `Limit` request parameter | +| `awssdk.projection_expression` | string | Copy the `ProjectionExpression` request parameter | +| `awssdk.scan_index_forward` | bool | Copy the `ScanIndexForward` request parameter | +| `awssdk.select` | string | Copy the `Select` request parameter | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | + +### Scan + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.attributes_to_get` | string array | Copy the `AttributesToGet` list request parameter | +| `awssdk.consistent_read` | bool | Copy the `ConsistentRead` request parameter | +| `awssdk.index_name` | string | Copy the `IndexName` request parameter | +| `awssdk.limit` | int | Copy the `Limit` request parameter | +| `awssdk.projection_expression` | string | Copy the `ProjectionExpression` request parameter | +| `awssdk.segment` | int | Copy the `Segment` request parameter | +| `awssdk.select` | string | Copy the `Select` request parameter | +| `awssdk.total_segments` | int | Copy the `TotalSegments` request parameter | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | +| `awssdk.count` | int | Copy the `Count` response parameter | +| `awssdk.scanned_count` | int | Copy the `ScannedCount` response parameter | + +### UpdateItem + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | +| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | + +### UpdateTable + +| Attribute | Type | Description | +| --- | --- | --- | +| `db.name` | string | Copy the `TableName` request parameter | +| `awssdk.attribute_definitions` | string | JSON-serialize the `AttributeDefinitions` request list field | +| `awssdk.global_secondary_index_updates` | string | JSON-serialize the `GlobalSecondaryIndexUpdates` request list field | +| `awssdk.provisioned_throughput. | int | d_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | +| `awssdk.provisioned_throughput. | int | te_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | + +## SQS + +### AddPermission + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `awssdk.label` | string | Copy the `Label` request field | + +### ChangeMessageVisibility + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `awssdk.visibility_timeout` | int | Copy the `VisibilityTimeout` request field | + +### ChangeMessageVisibilityBatch + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | + +### CreateQueue + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.attributes` | string | JSON serialize the `Attributes` request field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. | +| `awssdk.queue_name` | string | Copy the `QueueName` request field | + +### DeleteMessage + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | + +### DeleteMessageBatch + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | + +### DeleteQueue + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | + +### GetQueueAttributes + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `awssdk.attributes` | string | JSON serialize the `Attributes` response field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. | + +### GetQueueUrl + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` response field | +| `awssdk.queue_name` | string | Copy the `QueueName` request field | +| `awssdk.queue_owner_aws_account_id` | string | Copy the `QueueOwnerAWSAccountId` request field | + +### ListDeadLetterSourceQueues + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `awssdk.queue_urls` | string array | Copy the `QueueUrls` response field | + +### ListQueues + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.queue_name_prefix` | string | Copy the `QueueNamePrefix` request field | +| `awssdk.queue_count` | int | Fill in the number of elements in the `QueueUrls` response list field | + +### PurgeQueue + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | + +### ReceiveMessage + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `messaging.operation` | string | Fill in `receive` | +| `awssdk.attribute_names` | string array | Copy the `AttributeNames` request field | +| `awssdk.max_number_of_messages` | int | Copy the `MaxNumberOfMessages` request field | +| `awssdk.message_attribute_names` | string array | Copy the `MessageAttributeNames` request field | +| `awssdk.visibility_timeout` | int | Copy the `VisibilityTimeout` request field | +| `awssdk.wait_time_seconds` | int | py the `WaitTimeSeconds` request field | +| `awssdk.message_count` | int | Fill in the number of elements in the `Messages` response list field | + +### RemovePermission + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | + +### SendMessage + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `messaging.message_id` | string | Copy the `MessageId` field | +| `messaging.operation` | string | Fill in `send` | +| `awssdk.delay_seconds` | int | Copy the `DelaySeconds` request field | +| `awssdk.message_attributes` | string array | Copy the keys of the `MessageAttributes` request object field | + +### SendMessageBatch + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `messaging.operation` | string | Fill in `send` | +| `awssdk.message_count` | int | Fill in the number of elements in the `Messages` request list field | + +### SetQueueAttributes + +| Attribute | Type | Description | +| --- | --- | --- | +| `messaging.url` | string | Copy the `QueueUrl` request field | +| `awssdk.attribute_names` | string array | Copy the keys of the `Attributes` request object field | + +## Lambda + +Refer to the [FaaS] common attributes + +[FaaS]: ../faas.md + +### Invoke + +| Attribute | Type | Description | +| --- | --- | --- | +| `faas.invoked_name` | string | Copy the `FunctionName` request field. | +| `faas.invoked_provider` | string | Fill in `aws` | +| `faas.invoked_region` | string | Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) | +| `awssdk.invocation_type` | string | Copy the `InvocationType` request field | +| `awssdk.log_type` | string | Copy the `LogType` request field | +| `awssdk.qualifier` | string | Copy the `Qualifier` request field | +| `awssdk.function_error` | string | Copy the `X-Amz-Function-Error` response header. SDKs may present this as a `FunctionError` field | + +### InvokeAsync + +| Attribute | Type | Description | +| --- | --- | --- | +| `faas.invoked_name` | string | Copy the `FunctionName` request field. | +| `faas.invoked_provider` | string | Fill in `aws` | +| `faas.invoked_region` | string | Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) | + +## S3 + +### CopyObject + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.source_bucket_name` | string | Copy the `SourceBucketName` request field | +| `awssdk.source_key` | string | Copy the `SourceKey` request field | +| `awssdk.destination_bucket_name` | string | Copy the `DestinationBucketName` request field | +| `awssdk.destination_key` | string | Copy the `DestinationKey` request field | + +### CopyPart + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.source_bucket_name` | string | Copy the `SourceBucketName` request field | +| `awssdk.source_key` | string | Copy the `SourceKey` request field | +| `awssdk.destination_bucket_name` | string | Copy the `DestinationBucketName` request field | +| `awssdk.destination_key` | string | Copy the `DestinationKey` request field | + +### GetObject + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### PutObject + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### GetObjectAcl + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### CreateBucket + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListObjectsV2 + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.prefix` | string | Copy the `Prefix` request field | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListObjects + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.prefix` | string | Copy the `Prefix` request field | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetObjectTagging + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### SetObjectTagging + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### ListVersions + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.prefix` | string | Copy the `Prefix` request field | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetObjectAcl + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### GetBucketAcl + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketAcl + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + + +### HeadBucket + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### UploadPart + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### DeleteObject + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### DeleteBucket + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteObjects + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteVersion + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### GetBucketPolicy + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketPolicy + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListParts + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### RestoreObject + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### RestoreObjectV2 + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### SetBucketNotificationConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketLifecycleConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketNotificationConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketCrossOriginConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketCrossOriginConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketCrossOriginConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListBucketInventoryConfigurations + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketReplicationConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketReplicationConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketReplicationConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketAnalyticsConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketInventoryConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListBucketAnalyticsConfigurations + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteObjectTagging + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### SetBucketVersioningConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketVersioningConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketWebsiteConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketLifecycleConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketLifecycleConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketTaggingConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketTaggingConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetObjectMetadata + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### GetBucketLocation + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketLoggingConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListMultipartUploads + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.prefix` | string | Copy the `Prefix` request field | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketPolicy + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketEncryption + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketAccelerateConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketWebsiteConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### CompleteMultipartUpload + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### InitiateMultipartUpload + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### SetBucketEncryption + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketLoggingConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketWebsiteConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketEncryption + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### AbortMultipartUpload + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | + +### GeneratePresignedUrl + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | +| `awssdk.key` | string | Copy the `Key` request field | +| `awssdk.version_id` | string | Copy the `VersionId` request field | + +### DeleteBucketTaggingConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketAccelerateConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketMetricsConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### ListBucketMetricsConfigurations + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketInventoryConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketMetricsConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### SetBucketAnalyticsConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### DeleteBucketMetricsConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketAnalyticsConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +### GetBucketInventoryConfiguration + +| Attribute | Type | Description | +| --- | --- | --- | +| `awssdk.bucket_name` | string | Copy the `BucketName` request field | + +## SageMakerRuntime + +### InvokeEndpoint + +| Attribute | Type | Description | +| --- | --- | --- | +`awssdk.endpoint_name` | string | Copy the `EndpointName` request field | From b124776daf7b3602e4149219015127c3294f1cf2 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 15 Oct 2020 18:17:32 +0900 Subject: [PATCH 02/27] Lint --- .../trace/semantic_conventions/instrumentation/aws-sdk.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index a0053d48521..e81b5545b20 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -8,17 +8,18 @@ are found. Some descriptions are also provided for populating OpenTelemetry semantic conventions. ## General + | Attribute | Type | Description | Examples | |---|---|---|---| |awssdk.service | string | The service name of the request, as returned by the AWS SDK | `DynamoDB`, `S3` | |awssdk.operation | string | The operation name of the request, as returned by the AWS SDK | `GetItem`, `PutObject` | - The following attributes are all copied from parameters in the request or response of the SDK call. ## DynamoDB ### BatchGetItem + | Attribute | Type | Description | | --- | --- | --- | | `awssdk.table_names` | string array | Extract the keys of the `RequestItems` object field in the request | @@ -42,7 +43,6 @@ The following attributes are all copied from parameters in the request or respon | `awssdk.provisioned_throughput. | int | d_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | | `awssdk.provisioned_throughput. | int | te_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | - ### DeleteItem | Attribute | Type | Description | @@ -261,7 +261,7 @@ The following attributes are all copied from parameters in the request or respon | Attribute | Type | Description | | --- | --- | --- | | `messaging.url` | string | Copy the `QueueUrl` request field | -| `awssdk.attribute_names` | string array | Copy the keys of the `Attributes` request object field | +| `awssdk.attribute_names` | string array | Copy the keys of the `Attributes` request object field | ## Lambda @@ -395,7 +395,6 @@ Refer to the [FaaS] common attributes | --- | --- | --- | | `awssdk.bucket_name` | string | Copy the `BucketName` request field | - ### HeadBucket | Attribute | Type | Description | From 1410a31ff37ebcd5661d44f1e7e90d7e69039e35 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 26 Oct 2020 18:16:24 +0900 Subject: [PATCH 03/27] Initial MD -> YML --- .../trace/instrumentation/aws-sdk.yml | 1089 +++++++++++++++++ .../instrumentation/aws-sdk.md | 771 ------------ 2 files changed, 1089 insertions(+), 771 deletions(-) create mode 100644 semantic_conventions/trace/instrumentation/aws-sdk.yml delete mode 100644 specification/trace/semantic_conventions/instrumentation/aws-sdk.md diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml new file mode 100644 index 00000000000..db9fc9f7eb4 --- /dev/null +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -0,0 +1,1089 @@ +groups: + - id: awssdk + prefix: awssdk + brief: > + These conventions apply to operations using the AWS SDK. They map request or response parameters + in AWS SDK API calls to attributes on a Span. 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. + + Some descriptions are also provided for populating OpenTelemetry semantic conventions. + attributes: + - id: service + type: string + brief: The service name of the request, as returned by the AWS SDK + examples: + - DynamoDB + - S3 + - id: operation + type: string + brief: The operation name of the request, as returned by the AWS SDK + examples: + - GetItem + - PutItem + - id: DynamoDB.BatchGetItem + extends: awssdk + attributes: + - id: table_names + type: string + brief: ray | Extract the keys of the `RequestItems` object field in the request + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + + - id: DynamoDB.BatchWriteItem + extends: awssdk + attributes: + - id: table_names + type: string + brief: ray | Extract the keys of the `RequestItems` object field in the request + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + - id: item_collection_metrics + type: string + brief: JSON-serialize the `ItemCollectionMetrics` response object field + + - id: DynamoDB.CreateTable + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: global_secondary_indexes + type: string + brief: JSON-serialize the `GlobalSecondaryIndexes` request list field + - id: local_secondary_indexes + type: string + brief: JSON-serialize the `LocalSecondaryIndexes` request list field + - id: provisioned_throughput.read_capacity_units + type: number + brief: Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter + - id: provisioned_throughput.write_capacity_units + type: number + brief: Copy the `ProvisionedThroughput.WriteCapacityUnits` request parameter + + - id: DynamoDB.DeleteItem + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + - id: item_collection_metrics + type: string + brief: JSON-serialize the `ItemCollectionMetrics` response object field + + - id: DynamoDB.DeleteTable + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + + - id: DynamoDB.DescribeTable + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + + - id: DynamoDB.GetItem + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: consistent_read + type: bool + brief: Copy the `ConsistentRead` request parameter + - id: projection_expression + type: string + brief: Copy the `ProjectionExpression` request parameter + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + + - id: DynamoDB.ListTables + extends: awssdk + attributes: + - id: exclusive_start_table_name + type: string + brief: Copy the `ExclusiveStartTableName` request parameter + - id: limit + type: number + brief: Copy the `Limit` request parameter + - id: table_count + type: number + brief: Fill in the number of elements in the `TableNames` response list parameter + + - id: DynamoDB.PutItem + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + - id: item_collection_metrics + type: string + brief: JSON-serialize the `ItemCollectionMetrics` response object field + + - id: DynamoDB.Query + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: attributes_to_get + type: string + brief: ray | Copy the `AttributesToGet` list request parameter + - id: consistent_read + type: bool + brief: Copy the `ConsistentRead` request parameter + - id: index_name + type: string + brief: Copy the `IndexName` request parameter + - id: limit + type: number + brief: Copy the `Limit` request parameter + - id: projection_expression + type: string + brief: Copy the `ProjectionExpression` request parameter + - id: scan_index_forward + type: bool + brief: Copy the `ScanIndexForward` request parameter + - id: select + type: string + brief: Copy the `Select` request parameter + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + + - id: DynamoDB.Scan + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: attributes_to_get + type: string + brief: ray | Copy the `AttributesToGet` list request parameter + - id: consistent_read + type: bool + brief: Copy the `ConsistentRead` request parameter + - id: index_name + type: string + brief: Copy the `IndexName` request parameter + - id: limit + type: number + brief: Copy the `Limit` request parameter + - id: projection_expression + type: string + brief: Copy the `ProjectionExpression` request parameter + - id: segment + type: number + brief: Copy the `Segment` request parameter + - id: select + type: string + brief: Copy the `Select` request parameter + - id: total_segments + type: number + brief: Copy the `TotalSegments` request parameter + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + - id: count + type: number + brief: Copy the `Count` response parameter + - id: scanned_count + type: number + brief: Copy the `ScannedCount` response parameter + + - id: DynamoDB.UpdateItem + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: consumed_capacity + type: string + brief: JSON-serialize the `ConsumedCapacity` response list field + - id: item_collection_metrics + type: string + brief: JSON-serialize the `ItemCollectionMetrics` response object field + + - id: DynamoDB.UpdateTable + extends: awssdk + attributes: + - id: db.name + type: string + brief: Copy the `TableName` request parameter + - id: attribute_definitions + type: string + brief: JSON-serialize the `AttributeDefinitions` request list field + - id: global_secondary_index_updates + type: string + brief: JSON-serialize the `GlobalSecondaryIndexUpdates` request list field + - id: provisioned_throughput.read_capacity_units + type: number + brief: Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter + - id: provisioned_throughput.write_capacity_units + type: number + brief: Copy the `ProvisionedThroughput.WriteCapacityUnits` request parameter + + - id: SQS.AddPermission + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: label + type: string + brief: Copy the `Label` request field + + - id: SQS.ChangeMessageVisibility + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: visibility_timeout + type: number + brief: Copy the `VisibilityTimeout` request field + + - id: SQS.ChangeMessageVisibilityBatch + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + + - id: SQS.CreateQueue + extends: awssdk + attributes: + - id: attributes + type: string + brief: JSON serialize the `Attributes` request field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. + - id: queue_name + type: string + brief: Copy the `QueueName` request field + + - id: SQS.DeleteMessage + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + + - id: SQS.DeleteMessageBatch + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + + - id: SQS.DeleteQueue + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + + - id: SQS.GetQueueAttributes + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: attributes + type: string + brief: JSON serialize the `Attributes` response field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. + + - id: SQS.GetQueueUrl + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` response field + - id: queue_name + type: string + brief: Copy the `QueueName` request field + - id: queue_owner_aws_account_id + type: string + brief: Copy the `QueueOwnerAWSAccountId` request field + + - id: SQS.ListDeadLetterSourceQueues + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: queue_urls + type: string + brief: ray | Copy the `QueueUrls` response field + + - id: SQS.ListQueues + extends: awssdk + attributes: + - id: queue_name_prefix + type: string + brief: Copy the `QueueNamePrefix` request field + - id: queue_count + type: number + brief: Fill in the number of elements in the `QueueUrls` response list field + + - id: SQS.PurgeQueue + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + + - id: SQS.ReceiveMessage + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: messaging.operation + type: string + brief: Fill in `receive` + - id: attribute_names + type: string + brief: ray | Copy the `AttributeNames` request field + - id: max_number_of_messages + type: number + brief: Copy the `MaxNumberOfMessages` request field + - id: message_attribute_names + type: string + brief: ray | Copy the `MessageAttributeNames` request field + - id: visibility_timeout + type: number + brief: Copy the `VisibilityTimeout` request field + - id: wait_time_seconds + type: number + brief: py the `WaitTimeSeconds` request field + - id: message_count + type: number + brief: Fill in the number of elements in the `Messages` response list field + + - id: SQS.RemovePermission + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + + - id: SQS.SendMessage + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: messaging.message_id + type: string + brief: Copy the `MessageId` field + - id: messaging.operation + type: string + brief: Fill in `send` + - id: delay_seconds + type: number + brief: Copy the `DelaySeconds` request field + - id: message_attributes + type: string + brief: ray | Copy the keys of the `MessageAttributes` request object field + + - id: SQS.SendMessageBatch + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: messaging.operation + type: string + brief: Fill in `send` + - id: message_count + type: number + brief: Fill in the number of elements in the `Messages` request list field + + - id: SQS.SetQueueAttributes + extends: awssdk + attributes: + - id: messaging.url + type: string + brief: Copy the `QueueUrl` request field + - id: attribute_names + type: string + brief: ray | Copy the keys of the `Attributes` request object field + + + - id: Lambda.Invoke + extends: awssdk + attributes: + - id: faas.invoked_name + type: string + brief: Copy the `FunctionName` request field. + - id: faas.invoked_provider + type: string + brief: Fill in `aws` + - id: faas.invoked_region + type: string + brief: Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) + - id: invocation_type + type: string + brief: Copy the `InvocationType` request field + - id: log_type + type: string + brief: Copy the `LogType` request field + - id: qualifier + type: string + brief: Copy the `Qualifier` request field + - id: function_error + type: string + brief: Copy the `X-Amz-Function-Error` response header. SDKs may present this as a `FunctionError` field + + - id: Lambda.InvokeAsync + extends: awssdk + attributes: + - id: faas.invoked_name + type: string + brief: Copy the `FunctionName` request field. + - id: faas.invoked_provider + type: string + brief: Fill in `aws` + - id: faas.invoked_region + type: string + brief: Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) + + - id: S3.CopyObject + extends: awssdk + attributes: + - id: source_bucket_name + type: string + brief: Copy the `SourceBucketName` request field + - id: source_key + type: string + brief: Copy the `SourceKey` request field + - id: destination_bucket_name + type: string + brief: Copy the `DestinationBucketName` request field + - id: destination_key + type: string + brief: Copy the `DestinationKey` request field + + - id: S3.CopyPart + extends: awssdk + attributes: + - id: source_bucket_name + type: string + brief: Copy the `SourceBucketName` request field + - id: source_key + type: string + brief: Copy the `SourceKey` request field + - id: destination_bucket_name + type: string + brief: Copy the `DestinationBucketName` request field + - id: destination_key + type: string + brief: Copy the `DestinationKey` request field + + - id: S3.GetObject + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.PutObject + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.GetObjectAcl + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.CreateBucket + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListObjectsV2 + extends: awssdk + attributes: + - id: prefix + type: string + brief: Copy the `Prefix` request field + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListObjects + extends: awssdk + attributes: + - id: prefix + type: string + brief: Copy the `Prefix` request field + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetObjectTagging + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.SetObjectTagging + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.ListVersions + extends: awssdk + attributes: + - id: prefix + type: string + brief: Copy the `Prefix` request field + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetObjectAcl + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.GetBucketAcl + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketAcl + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.HeadBucket + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.UploadPart + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.DeleteObject + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.DeleteBucket + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteObjects + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteVersion + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.GetBucketPolicy + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketPolicy + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListParts + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.RestoreObject + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.RestoreObjectV2 + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.SetBucketNotificationConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketLifecycleConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketNotificationConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketCrossOriginConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketCrossOriginConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketCrossOriginConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListBucketInventoryConfigurations + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketReplicationConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketReplicationConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketReplicationConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketAnalyticsConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketInventoryConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListBucketAnalyticsConfigurations + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteObjectTagging + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.SetBucketVersioningConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketVersioningConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketWebsiteConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketLifecycleConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketLifecycleConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketTaggingConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketTaggingConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetObjectMetadata + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.GetBucketLocation + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketLoggingConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListMultipartUploads + extends: awssdk + attributes: + - id: prefix + type: string + brief: Copy the `Prefix` request field + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketPolicy + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketEncryption + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketAccelerateConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketWebsiteConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.CompleteMultipartUpload + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.InitiateMultipartUpload + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.SetBucketEncryption + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketLoggingConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketWebsiteConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketEncryption + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.AbortMultipartUpload + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + + - id: S3.GeneratePresignedUrl + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + - id: key + type: string + brief: Copy the `Key` request field + - id: version_id + type: string + brief: Copy the `VersionId` request field + + - id: S3.DeleteBucketTaggingConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3GetBucketAccelerateConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketMetricsConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.ListBucketMetricsConfigurations + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketInventoryConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketMetricsConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.SetBucketAnalyticsConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.DeleteBucketMetricsConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketAnalyticsConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + - id: S3.GetBucketInventoryConfiguration + extends: awssdk + attributes: + - id: bucket_name + type: string + brief: Copy the `BucketName` request field + + + - id: SageMakerRuntime.InvokeEndpoint + extends: awssdk + attributes: + - id: endpoint_name + type: string + brief: Copy the `EndpointName` request field diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md deleted file mode 100644 index e81b5545b20..00000000000 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ /dev/null @@ -1,771 +0,0 @@ -# AWS SDK Semantic Conventions - -These conventions apply to operations using the AWS SDK. They map request or response parameters -in AWS SDK API calls to attributes on a Span. 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. - -Some descriptions are also provided for populating OpenTelemetry semantic conventions. - -## General - -| Attribute | Type | Description | Examples | -|---|---|---|---| -|awssdk.service | string | The service name of the request, as returned by the AWS SDK | `DynamoDB`, `S3` | -|awssdk.operation | string | The operation name of the request, as returned by the AWS SDK | `GetItem`, `PutObject` | - -The following attributes are all copied from parameters in the request or response of the SDK call. - -## DynamoDB - -### BatchGetItem - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.table_names` | string array | Extract the keys of the `RequestItems` object field in the request | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | - -### BatchWriteItem - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.table_names` | string array | Extract the keys of the `RequestItems` object field in the request | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | -| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | - -### CreateTable - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.global_secondary_indexes` | string | JSON-serialize the `GlobalSecondaryIndexes` request list field | -| `awssdk.local_secondary_indexes` | string | JSON-serialize the `LocalSecondaryIndexes` request list field | -| `awssdk.provisioned_throughput. | int | d_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | -| `awssdk.provisioned_throughput. | int | te_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | - -### DeleteItem - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | -| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | - -### DeleteTable - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | - -### DescribeTable - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | - -### GetItem - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.consistent_read` | bool | Copy the `ConsistentRead` request parameter | -| `awssdk.projection_expression` | string | Copy the `ProjectionExpression` request parameter | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | - -### ListTables - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.exclusive_start_table_name` | string | Copy the `ExclusiveStartTableName` request parameter | -| `awssdk.limit` | int | Copy the `Limit` request parameter | -| `awssdk.table_count` | int | Fill in the number of elements in the `TableNames` response list parameter | - -### PutItem - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | -| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | - -### Query - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.attributes_to_get` | string array | Copy the `AttributesToGet` list request parameter | -| `awssdk.consistent_read` | bool | Copy the `ConsistentRead` request parameter | -| `awssdk.index_name` | string | Copy the `IndexName` request parameter | -| `awssdk.limit` | int | Copy the `Limit` request parameter | -| `awssdk.projection_expression` | string | Copy the `ProjectionExpression` request parameter | -| `awssdk.scan_index_forward` | bool | Copy the `ScanIndexForward` request parameter | -| `awssdk.select` | string | Copy the `Select` request parameter | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | - -### Scan - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.attributes_to_get` | string array | Copy the `AttributesToGet` list request parameter | -| `awssdk.consistent_read` | bool | Copy the `ConsistentRead` request parameter | -| `awssdk.index_name` | string | Copy the `IndexName` request parameter | -| `awssdk.limit` | int | Copy the `Limit` request parameter | -| `awssdk.projection_expression` | string | Copy the `ProjectionExpression` request parameter | -| `awssdk.segment` | int | Copy the `Segment` request parameter | -| `awssdk.select` | string | Copy the `Select` request parameter | -| `awssdk.total_segments` | int | Copy the `TotalSegments` request parameter | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | -| `awssdk.count` | int | Copy the `Count` response parameter | -| `awssdk.scanned_count` | int | Copy the `ScannedCount` response parameter | - -### UpdateItem - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.consumed_capacity` | string | JSON-serialize the `ConsumedCapacity` response list field | -| `awssdk.item_collection_metrics` | string | JSON-serialize the `ItemCollectionMetrics` response object field | - -### UpdateTable - -| Attribute | Type | Description | -| --- | --- | --- | -| `db.name` | string | Copy the `TableName` request parameter | -| `awssdk.attribute_definitions` | string | JSON-serialize the `AttributeDefinitions` request list field | -| `awssdk.global_secondary_index_updates` | string | JSON-serialize the `GlobalSecondaryIndexUpdates` request list field | -| `awssdk.provisioned_throughput. | int | d_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | -| `awssdk.provisioned_throughput. | int | te_capacity_units` - Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter | - -## SQS - -### AddPermission - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `awssdk.label` | string | Copy the `Label` request field | - -### ChangeMessageVisibility - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `awssdk.visibility_timeout` | int | Copy the `VisibilityTimeout` request field | - -### ChangeMessageVisibilityBatch - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | - -### CreateQueue - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.attributes` | string | JSON serialize the `Attributes` request field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. | -| `awssdk.queue_name` | string | Copy the `QueueName` request field | - -### DeleteMessage - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | - -### DeleteMessageBatch - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | - -### DeleteQueue - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | - -### GetQueueAttributes - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `awssdk.attributes` | string | JSON serialize the `Attributes` response field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. | - -### GetQueueUrl - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` response field | -| `awssdk.queue_name` | string | Copy the `QueueName` request field | -| `awssdk.queue_owner_aws_account_id` | string | Copy the `QueueOwnerAWSAccountId` request field | - -### ListDeadLetterSourceQueues - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `awssdk.queue_urls` | string array | Copy the `QueueUrls` response field | - -### ListQueues - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.queue_name_prefix` | string | Copy the `QueueNamePrefix` request field | -| `awssdk.queue_count` | int | Fill in the number of elements in the `QueueUrls` response list field | - -### PurgeQueue - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | - -### ReceiveMessage - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `messaging.operation` | string | Fill in `receive` | -| `awssdk.attribute_names` | string array | Copy the `AttributeNames` request field | -| `awssdk.max_number_of_messages` | int | Copy the `MaxNumberOfMessages` request field | -| `awssdk.message_attribute_names` | string array | Copy the `MessageAttributeNames` request field | -| `awssdk.visibility_timeout` | int | Copy the `VisibilityTimeout` request field | -| `awssdk.wait_time_seconds` | int | py the `WaitTimeSeconds` request field | -| `awssdk.message_count` | int | Fill in the number of elements in the `Messages` response list field | - -### RemovePermission - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | - -### SendMessage - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `messaging.message_id` | string | Copy the `MessageId` field | -| `messaging.operation` | string | Fill in `send` | -| `awssdk.delay_seconds` | int | Copy the `DelaySeconds` request field | -| `awssdk.message_attributes` | string array | Copy the keys of the `MessageAttributes` request object field | - -### SendMessageBatch - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `messaging.operation` | string | Fill in `send` | -| `awssdk.message_count` | int | Fill in the number of elements in the `Messages` request list field | - -### SetQueueAttributes - -| Attribute | Type | Description | -| --- | --- | --- | -| `messaging.url` | string | Copy the `QueueUrl` request field | -| `awssdk.attribute_names` | string array | Copy the keys of the `Attributes` request object field | - -## Lambda - -Refer to the [FaaS] common attributes - -[FaaS]: ../faas.md - -### Invoke - -| Attribute | Type | Description | -| --- | --- | --- | -| `faas.invoked_name` | string | Copy the `FunctionName` request field. | -| `faas.invoked_provider` | string | Fill in `aws` | -| `faas.invoked_region` | string | Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) | -| `awssdk.invocation_type` | string | Copy the `InvocationType` request field | -| `awssdk.log_type` | string | Copy the `LogType` request field | -| `awssdk.qualifier` | string | Copy the `Qualifier` request field | -| `awssdk.function_error` | string | Copy the `X-Amz-Function-Error` response header. SDKs may present this as a `FunctionError` field | - -### InvokeAsync - -| Attribute | Type | Description | -| --- | --- | --- | -| `faas.invoked_name` | string | Copy the `FunctionName` request field. | -| `faas.invoked_provider` | string | Fill in `aws` | -| `faas.invoked_region` | string | Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) | - -## S3 - -### CopyObject - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.source_bucket_name` | string | Copy the `SourceBucketName` request field | -| `awssdk.source_key` | string | Copy the `SourceKey` request field | -| `awssdk.destination_bucket_name` | string | Copy the `DestinationBucketName` request field | -| `awssdk.destination_key` | string | Copy the `DestinationKey` request field | - -### CopyPart - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.source_bucket_name` | string | Copy the `SourceBucketName` request field | -| `awssdk.source_key` | string | Copy the `SourceKey` request field | -| `awssdk.destination_bucket_name` | string | Copy the `DestinationBucketName` request field | -| `awssdk.destination_key` | string | Copy the `DestinationKey` request field | - -### GetObject - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### PutObject - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### GetObjectAcl - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### CreateBucket - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListObjectsV2 - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.prefix` | string | Copy the `Prefix` request field | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListObjects - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.prefix` | string | Copy the `Prefix` request field | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetObjectTagging - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### SetObjectTagging - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### ListVersions - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.prefix` | string | Copy the `Prefix` request field | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetObjectAcl - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### GetBucketAcl - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketAcl - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### HeadBucket - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### UploadPart - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### DeleteObject - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### DeleteBucket - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteObjects - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteVersion - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### GetBucketPolicy - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketPolicy - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListParts - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### RestoreObject - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### RestoreObjectV2 - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### SetBucketNotificationConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketLifecycleConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketNotificationConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketCrossOriginConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketCrossOriginConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketCrossOriginConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListBucketInventoryConfigurations - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketReplicationConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketReplicationConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketReplicationConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketAnalyticsConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketInventoryConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListBucketAnalyticsConfigurations - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteObjectTagging - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### SetBucketVersioningConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketVersioningConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketWebsiteConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketLifecycleConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketLifecycleConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketTaggingConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketTaggingConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetObjectMetadata - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### GetBucketLocation - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketLoggingConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListMultipartUploads - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.prefix` | string | Copy the `Prefix` request field | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketPolicy - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketEncryption - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketAccelerateConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketWebsiteConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### CompleteMultipartUpload - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### InitiateMultipartUpload - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### SetBucketEncryption - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketLoggingConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketWebsiteConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketEncryption - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### AbortMultipartUpload - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | - -### GeneratePresignedUrl - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | -| `awssdk.key` | string | Copy the `Key` request field | -| `awssdk.version_id` | string | Copy the `VersionId` request field | - -### DeleteBucketTaggingConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketAccelerateConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketMetricsConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### ListBucketMetricsConfigurations - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketInventoryConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketMetricsConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### SetBucketAnalyticsConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### DeleteBucketMetricsConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketAnalyticsConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -### GetBucketInventoryConfiguration - -| Attribute | Type | Description | -| --- | --- | --- | -| `awssdk.bucket_name` | string | Copy the `BucketName` request field | - -## SageMakerRuntime - -### InvokeEndpoint - -| Attribute | Type | Description | -| --- | --- | --- | -`awssdk.endpoint_name` | string | Copy the `EndpointName` request field | From aa3b3b329ac56beb025db4c11027b971e103c2a5 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 26 Oct 2020 18:17:57 +0900 Subject: [PATCH 04/27] Fix --- semantic_conventions/README.md | 2 +- .../trace/instrumentation/aws-sdk.yml | 322 ++++++++++++------ 2 files changed, 215 insertions(+), 109 deletions(-) diff --git a/semantic_conventions/README.md b/semantic_conventions/README.md index f5425c421ae..8b963ab91ae 100644 --- a/semantic_conventions/README.md +++ b/semantic_conventions/README.md @@ -7,7 +7,7 @@ generation of semantics-related code. ## Generation These YAML files are used by the make target `table-generation` to generate consistently -formattted Markdown tables for all semantic conventions in the specification. Run it from the root of this repository using the command +formatted Markdown tables for all semantic conventions in the specification. Run it from the root of this repository using the command ``` make table-generation diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index db9fc9f7eb4..c0deefb51f3 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -21,17 +21,20 @@ groups: examples: - GetItem - PutItem - - id: DynamoDB.BatchGetItem + + - id: dynamodb.batchgetitem + brief: DynamoDB.BatchGetItem extends: awssdk attributes: - id: table_names type: string - brief: ray | Extract the keys of the `RequestItems` object field in the request + brief: Extract the keys of the `RequestItems` object field in the request - id: consumed_capacity type: string brief: JSON-serialize the `ConsumedCapacity` response list field - - id: DynamoDB.BatchWriteItem + - id: dynamodb.batchwriteitem + brief: DynamoDB.BatchWriteItem extends: awssdk attributes: - id: table_names @@ -44,7 +47,8 @@ groups: type: string brief: JSON-serialize the `ItemCollectionMetrics` response object field - - id: DynamoDB.CreateTable + - id: dynamodb.createtable + brief: DynamoDB.CreateTable extends: awssdk attributes: - id: db.name @@ -63,7 +67,8 @@ groups: type: number brief: Copy the `ProvisionedThroughput.WriteCapacityUnits` request parameter - - id: DynamoDB.DeleteItem + - id: dynamodb.deleteitem + brief: DynamoDB.DeleteItem extends: awssdk attributes: - id: db.name @@ -76,21 +81,24 @@ groups: type: string brief: JSON-serialize the `ItemCollectionMetrics` response object field - - id: DynamoDB.DeleteTable + - id: dynamodb.deletetable + brief: DynamoDB.DeleteTable extends: awssdk attributes: - id: db.name type: string brief: Copy the `TableName` request parameter - - id: DynamoDB.DescribeTable - extends: awssdk - attributes: + - id: dynamodb.describetable + brief: DynamoDB.DescribeTable + extends: awssdk + attributes: - id: db.name type: string brief: Copy the `TableName` request parameter - - id: DynamoDB.GetItem + - id: dynamodb.getitem + brief: DynamoDB.GetItem extends: awssdk attributes: - id: db.name @@ -106,7 +114,8 @@ groups: type: string brief: JSON-serialize the `ConsumedCapacity` response list field - - id: DynamoDB.ListTables + - id: dynamodb.listtables + brief: DynamoDB.ListTables extends: awssdk attributes: - id: exclusive_start_table_name @@ -119,7 +128,8 @@ groups: type: number brief: Fill in the number of elements in the `TableNames` response list parameter - - id: DynamoDB.PutItem + - id: dynamodb.putitem + brief: DynamoDB.PutItem extends: awssdk attributes: - id: db.name @@ -132,7 +142,8 @@ groups: type: string brief: JSON-serialize the `ItemCollectionMetrics` response object field - - id: DynamoDB.Query + - id: dynamodb.query + brief: DynamoDB.Query extends: awssdk attributes: - id: db.name @@ -163,7 +174,8 @@ groups: type: string brief: JSON-serialize the `ConsumedCapacity` response list field - - id: DynamoDB.Scan + - id: dynamodb.scan + brief: DynamoDB.Scan extends: awssdk attributes: - id: db.name @@ -203,7 +215,8 @@ groups: type: number brief: Copy the `ScannedCount` response parameter - - id: DynamoDB.UpdateItem + - id: dynamodb.updateitem + brief: DynamoDB.UpdateItem extends: awssdk attributes: - id: db.name @@ -216,7 +229,8 @@ groups: type: string brief: JSON-serialize the `ItemCollectionMetrics` response object field - - id: DynamoDB.UpdateTable + - id: dynamodb.updatetable + brief: DynamoDB.UpdateTable extends: awssdk attributes: - id: db.name @@ -235,7 +249,8 @@ groups: type: number brief: Copy the `ProvisionedThroughput.WriteCapacityUnits` request parameter - - id: SQS.AddPermission + - id: sqs.addpermission + brief: SQS.AddPermission extends: awssdk attributes: - id: messaging.url @@ -245,7 +260,8 @@ groups: type: string brief: Copy the `Label` request field - - id: SQS.ChangeMessageVisibility + - id: sqs.changemessagevisibility + brief: SQS.ChangeMessageVisibility extends: awssdk attributes: - id: messaging.url @@ -255,14 +271,16 @@ groups: type: number brief: Copy the `VisibilityTimeout` request field - - id: SQS.ChangeMessageVisibilityBatch + - id: sqs.changemessagevisibilitybatch + brief: SQS.ChangeMessageVisibilityBatch extends: awssdk attributes: - id: messaging.url type: string brief: Copy the `QueueUrl` request field - - id: SQS.CreateQueue + - id: sqs.createqueue + brief: SQS.CreateQueue extends: awssdk attributes: - id: attributes @@ -272,28 +290,32 @@ groups: type: string brief: Copy the `QueueName` request field - - id: SQS.DeleteMessage + - id: sqs.deletemessage + brief: SQS.DeleteMessage extends: awssdk attributes: - id: messaging.url type: string brief: Copy the `QueueUrl` request field - - id: SQS.DeleteMessageBatch + - id: sqs.deletemessagebatch + brief: SQS.DeleteMessageBatch extends: awssdk attributes: - id: messaging.url type: string brief: Copy the `QueueUrl` request field - - id: SQS.DeleteQueue + - id: sqs.deletequeue + brief: SQS.DeleteQueue extends: awssdk attributes: - id: messaging.url type: string brief: Copy the `QueueUrl` request field - - id: SQS.GetQueueAttributes + - id: sqs.getqueueattributes + brief: SQS.GetQueueAttributes extends: awssdk attributes: - id: messaging.url @@ -303,7 +325,8 @@ groups: type: string brief: JSON serialize the `Attributes` response field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. - - id: SQS.GetQueueUrl + - id: sqs.getqueueurl + brief: SQS.GetQueueUrl extends: awssdk attributes: - id: messaging.url @@ -316,7 +339,8 @@ groups: type: string brief: Copy the `QueueOwnerAWSAccountId` request field - - id: SQS.ListDeadLetterSourceQueues + - id: sqs.listdeadlettersourcequeues + brief: SQS.ListDeadLetterSourceQueues extends: awssdk attributes: - id: messaging.url @@ -326,7 +350,8 @@ groups: type: string brief: ray | Copy the `QueueUrls` response field - - id: SQS.ListQueues + - id: sqs.listqueues + brief: SQS.ListQueues extends: awssdk attributes: - id: queue_name_prefix @@ -336,14 +361,16 @@ groups: type: number brief: Fill in the number of elements in the `QueueUrls` response list field - - id: SQS.PurgeQueue + - id: sqs.purgequeue + brief: SQS.PurgeQueue extends: awssdk attributes: - id: messaging.url type: string brief: Copy the `QueueUrl` request field - - id: SQS.ReceiveMessage + - id: sqs.receivemessage + brief: SQS.ReceiveMessage extends: awssdk attributes: - id: messaging.url @@ -371,14 +398,16 @@ groups: type: number brief: Fill in the number of elements in the `Messages` response list field - - id: SQS.RemovePermission + - id: sqs.removepermission + brief: SQS.RemovePermission extends: awssdk attributes: - id: messaging.url type: string brief: Copy the `QueueUrl` request field - - id: SQS.SendMessage + - id: sqs.sendmessage + brief: SQS.SendMessage extends: awssdk attributes: - id: messaging.url @@ -397,7 +426,8 @@ groups: type: string brief: ray | Copy the keys of the `MessageAttributes` request object field - - id: SQS.SendMessageBatch + - id: sqs.sendmessagebatch + brief: SQS.SendMessageBatch extends: awssdk attributes: - id: messaging.url @@ -410,7 +440,8 @@ groups: type: number brief: Fill in the number of elements in the `Messages` request list field - - id: SQS.SetQueueAttributes + - id: sqs.setqueueattributes + brief: SQS.SetQueueAttributes extends: awssdk attributes: - id: messaging.url @@ -421,7 +452,8 @@ groups: brief: ray | Copy the keys of the `Attributes` request object field - - id: Lambda.Invoke + - id: lambda.invoke + brief: Lambda.Invoke extends: awssdk attributes: - id: faas.invoked_name @@ -446,7 +478,8 @@ groups: type: string brief: Copy the `X-Amz-Function-Error` response header. SDKs may present this as a `FunctionError` field - - id: Lambda.InvokeAsync + - id: lambda.invokeasync + brief: Lambda.InvokeAsync extends: awssdk attributes: - id: faas.invoked_name @@ -459,7 +492,8 @@ groups: type: string brief: Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) - - id: S3.CopyObject + - id: s3.copyobject + brief: S3.CopyObject extends: awssdk attributes: - id: source_bucket_name @@ -475,7 +509,8 @@ groups: type: string brief: Copy the `DestinationKey` request field - - id: S3.CopyPart + - id: s3.copypart + brief: S3.CopyPart extends: awssdk attributes: - id: source_bucket_name @@ -491,7 +526,8 @@ groups: type: string brief: Copy the `DestinationKey` request field - - id: S3.GetObject + - id: s3.getobject + brief: S3.GetObject extends: awssdk attributes: - id: bucket_name @@ -504,7 +540,8 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.PutObject + - id: s3.putobject + brief: S3.PutObject extends: awssdk attributes: - id: bucket_name @@ -514,7 +551,8 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.GetObjectAcl + - id: s3.getobjectacl + brief: S3.GetObjectAcl extends: awssdk attributes: - id: bucket_name @@ -527,14 +565,16 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.CreateBucket + - id: s3.createbucket + brief: S3.CreateBucket extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.ListObjectsV2 + - id: s3.listobjectsv2 + brief: S3.ListObjectsV2 extends: awssdk attributes: - id: prefix @@ -544,7 +584,8 @@ groups: type: string brief: Copy the `BucketName` request field - - id: S3.ListObjects + - id: s3.listobjects + brief: S3.ListObjects extends: awssdk attributes: - id: prefix @@ -554,7 +595,8 @@ groups: type: string brief: Copy the `BucketName` request field - - id: S3.GetObjectTagging + - id: s3.getobjecttagging + brief: S3.GetObjectTagging extends: awssdk attributes: - id: bucket_name @@ -567,7 +609,8 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.SetObjectTagging + - id: s3.setobjecttagging + brief: S3.SetObjectTagging extends: awssdk attributes: - id: bucket_name @@ -580,7 +623,8 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.ListVersions + - id: s3.listversions + brief: S3.ListVersions extends: awssdk attributes: - id: prefix @@ -590,7 +634,8 @@ groups: type: string brief: Copy the `BucketName` request field - - id: S3.SetObjectAcl + - id: s3.setobjectacl + brief: S3.SetObjectAcl extends: awssdk attributes: - id: bucket_name @@ -603,28 +648,32 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.GetBucketAcl + - id: s3.getbucketacl + brief: S3.GetBucketAcl extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketAcl + - id: s3.setbucketacl + brief: S3.SetBucketAcl extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.HeadBucket + - id: s3.headbucket + brief: S3.HeadBucket extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.UploadPart + - id: s3.uploadpart + brief: S3.UploadPart extends: awssdk attributes: - id: bucket_name @@ -634,7 +683,8 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.DeleteObject + - id: s3.deleteobject + brief: S3.DeleteObject extends: awssdk attributes: - id: bucket_name @@ -644,21 +694,24 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.DeleteBucket + - id: s3.deletebucket + brief: S3.DeleteBucket extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteObjects + - id: s3.deleteobjects + brief: S3.DeleteObjects extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteVersion + - id: s3.deleteversion + brief: S3.DeleteVersion extends: awssdk attributes: - id: bucket_name @@ -671,21 +724,24 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.GetBucketPolicy + - id: s3.getbucketpolicy + brief: S3.GetBucketPolicy extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketPolicy + - id: s3.setbucketpolicy + brief: S3.SetBucketPolicy extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.ListParts + - id: s3.listparts + brief: S3.ListParts extends: awssdk attributes: - id: bucket_name @@ -695,7 +751,8 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.RestoreObject + - id: s3.restoreobject + brief: S3.RestoreObject extends: awssdk attributes: - id: bucket_name @@ -708,7 +765,8 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.RestoreObjectV2 + - id: s3.restoreobjectv2 + brief: S3.RestoreObjectV2 extends: awssdk attributes: - id: bucket_name @@ -721,98 +779,112 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.SetBucketNotificationConfiguration + - id: s3.setbucketnotificationconfiguration + brief: S3.SetBucketNotificationConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketLifecycleConfiguration + - id: s3.deletebucketlifecycleconfiguration + brief: S3.DeleteBucketLifecycleConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketNotificationConfiguration + - id: s3.getbucketnotificationconfiguration + brief: S3.GetBucketNotificationConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketCrossOriginConfiguration + - id: s3.deletebucketcrossoriginconfiguration + brief: S3.DeleteBucketCrossOriginConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketCrossOriginConfiguration + - id: s3.setbucketcrossoriginconfiguration + brief: S3.SetBucketCrossOriginConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketCrossOriginConfiguration + - id: s3.getbucketcrossoriginconfiguration + brief: S3.GetBucketCrossOriginConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.ListBucketInventoryConfigurations + - id: s3.listbucketinventoryconfigurations + brief: S3.ListBucketInventoryConfigurations extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketReplicationConfiguration + - id: s3.getbucketreplicationconfiguration + brief: S3.GetBucketReplicationConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketReplicationConfiguration + - id: s3.setbucketreplicationconfiguration + brief: S3.SetBucketReplicationConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketReplicationConfiguration + - id: s3.deletebucketreplicationconfiguration + brief: S3.DeleteBucketReplicationConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketAnalyticsConfiguration + - id: s3.deletebucketanalyticsconfiguration + brief: S3.DeleteBucketAnalyticsConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketInventoryConfiguration + - id: s3.deletebucketinventoryconfiguration + brief: S3.DeleteBucketInventoryConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.ListBucketAnalyticsConfigurations + - id: s3.listbucketanalyticsconfigurations + brief: S3.ListBucketAnalyticsConfigurations extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteObjectTagging + - id: s3.deleteobjecttagging + brief: S3.DeleteObjectTagging extends: awssdk attributes: - id: bucket_name @@ -825,56 +897,64 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.SetBucketVersioningConfiguration + - id: s3.setbucketversioningconfiguration + brief: S3.SetBucketVersioningConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketVersioningConfiguration + - id: s3.getbucketversioningconfiguration + brief: S3.GetBucketVersioningConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketWebsiteConfiguration + - id: s3.getbucketwebsiteconfiguration + brief: S3.GetBucketWebsiteConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketLifecycleConfiguration + - id: s3.getbucketlifecycleconfiguration + brief: S3.GetBucketLifecycleConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketLifecycleConfiguration + - id: s3.setbucketlifecycleconfiguration + brief: S3.SetBucketLifecycleConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketTaggingConfiguration + - id: s3.getbuckettaggingconfiguration + brief: S3.GetBucketTaggingConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketTaggingConfiguration + - id: s3.setbuckettaggingconfiguration + brief: S3.SetBucketTaggingConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetObjectMetadata + - id: s3.getobjectmetadata + brief: S3.GetObjectMetadata extends: awssdk attributes: - id: bucket_name @@ -887,21 +967,24 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.GetBucketLocation + - id: s3.getbucketlocation + brief: S3.GetBucketLocation extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketLoggingConfiguration + - id: s3.getbucketloggingconfiguration + brief: S3.GetBucketLoggingConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.ListMultipartUploads + - id: s3.listmultipartuploads + brief: S3.ListMultipartUploads extends: awssdk attributes: - id: prefix @@ -911,35 +994,40 @@ groups: type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketPolicy + - id: s3.deletebucketpolicy + brief: S3.DeleteBucketPolicy extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketEncryption + - id: s3.deletebucketencryption + brief: S3.DeleteBucketEncryption extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketAccelerateConfiguration + - id: s3.setbucketaccelerateconfiguration + brief: S3.SetBucketAccelerateConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketWebsiteConfiguration + - id: s3.setbucketwebsiteconfiguration + brief: S3.SetBucketWebsiteConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.CompleteMultipartUpload + - id: s3.completemultipartupload + brief: S3.CompleteMultipartUpload extends: awssdk attributes: - id: bucket_name @@ -949,7 +1037,8 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.InitiateMultipartUpload + - id: s3.initiatemultipartupload + brief: S3.InitiateMultipartUpload extends: awssdk attributes: - id: bucket_name @@ -959,35 +1048,40 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.SetBucketEncryption + - id: s3.setbucketencryption + brief: S3.SetBucketEncryption extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketLoggingConfiguration + - id: s3.setbucketloggingconfiguration + brief: S3.SetBucketLoggingConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketWebsiteConfiguration + - id: s3.deletebucketwebsiteconfiguration + brief: S3.DeleteBucketWebsiteConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketEncryption + - id: s3.getbucketencryption + brief: S3.GetBucketEncryption extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.AbortMultipartUpload + - id: s3.abortmultipartupload + brief: S3.AbortMultipartUpload extends: awssdk attributes: - id: bucket_name @@ -997,7 +1091,8 @@ groups: type: string brief: Copy the `Key` request field - - id: S3.GeneratePresignedUrl + - id: s3.generatepresignedurl + brief: S3.GeneratePresignedUrl extends: awssdk attributes: - id: bucket_name @@ -1010,70 +1105,80 @@ groups: type: string brief: Copy the `VersionId` request field - - id: S3.DeleteBucketTaggingConfiguration + - id: s3.deletebuckettaggingconfiguration + brief: S3.DeleteBucketTaggingConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3GetBucketAccelerateConfiguration + - id: s3getbucketaccelerateconfiguration + brief: S3GetBucketAccelerateConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketMetricsConfiguration + - id: s3.getbucketmetricsconfiguration + brief: S3.GetBucketMetricsConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.ListBucketMetricsConfigurations + - id: s3.listbucketmetricsconfigurations + brief: S3.ListBucketMetricsConfigurations extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketInventoryConfiguration + - id: s3.setbucketinventoryconfiguration + brief: S3.SetBucketInventoryConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketMetricsConfiguration + - id: s3.setbucketmetricsconfiguration + brief: S3.SetBucketMetricsConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.SetBucketAnalyticsConfiguration + - id: s3.setbucketanalyticsconfiguration + brief: S3.SetBucketAnalyticsConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.DeleteBucketMetricsConfiguration + - id: s3.deletebucketmetricsconfiguration + brief: S3.DeleteBucketMetricsConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketAnalyticsConfiguration + - id: s3.getbucketanalyticsconfiguration + brief: S3.GetBucketAnalyticsConfiguration extends: awssdk attributes: - id: bucket_name type: string brief: Copy the `BucketName` request field - - id: S3.GetBucketInventoryConfiguration + - id: s3.getbucketinventoryconfiguration + brief: S3.GetBucketInventoryConfiguration extends: awssdk attributes: - id: bucket_name @@ -1081,7 +1186,8 @@ groups: brief: Copy the `BucketName` request field - - id: SageMakerRuntime.InvokeEndpoint + - id: sagemakerruntime.invokeendpoint + brief: SageMakerRuntime.InvokeEndpoint extends: awssdk attributes: - id: endpoint_name From e3e93a22d08561b8321be9c15df005a650467906 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 10 Feb 2021 16:58:22 +0900 Subject: [PATCH 05/27] DynamoDB only --- .../trace/instrumentation/aws-sdk.yml | 1370 +++-------------- .../instrumentation/aws-sdk.md | 172 +++ 2 files changed, 428 insertions(+), 1114 deletions(-) create mode 100644 specification/trace/semantic_conventions/instrumentation/aws-sdk.md diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index c0deefb51f3..c1643c080a8 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -1,8 +1,8 @@ groups: - - id: awssdk - prefix: awssdk + - id: aws + prefix: aws brief: > - These conventions apply to operations using the AWS SDK. They map request or response parameters + The `awssdk` conventions apply to operations using the AWS SDK. They map request or response parameters in AWS SDK API calls to attributes on a Span. 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. @@ -11,1185 +11,327 @@ groups: attributes: - id: service type: string - brief: The service name of the request, as returned by the AWS SDK + brief: "The name of the service to which a request is made, as returned by the AWS SDK." examples: - DynamoDB - S3 - id: operation type: string - brief: The operation name of the request, as returned by the AWS SDK + brief: "The name of the operation corresponding to the request, as returned by the AWS SDK" examples: - GetItem - PutItem - - id: dynamodb.batchgetitem - brief: DynamoDB.BatchGetItem - extends: awssdk + - id: dynamodb.shared + prefix: aws + brief: "Attributes that exist for multiple DynamoDB request types." attributes: - id: table_names - type: string - brief: Extract the keys of the `RequestItems` object field in the request + type: string[] + brief: The keys in the `RequestItems` object field in a request operating on multiple tables. + examples: + - Users + - Cats - id: consumed_capacity + type: string[] + brief: "The JSON-serialized value of each item in the `ConsumedCapacity` response field." + examples: + - '{ + "CapacityUnits": number, + "GlobalSecondaryIndexes": { + "string" : { + "CapacityUnits": number, + "ReadCapacityUnits": number, + "WriteCapacityUnits": number + } + }, + "LocalSecondaryIndexes": { + "string" : { + "CapacityUnits": number, + "ReadCapacityUnits": number, + "WriteCapacityUnits": number + } + }, + "ReadCapacityUnits": number, + "Table": { + "CapacityUnits": number, + "ReadCapacityUnits": number, + "WriteCapacityUnits": number + }, + "TableName": "string", + "WriteCapacityUnits": number + }' + - id: item_collection_metrics type: string - brief: JSON-serialize the `ConsumedCapacity` response list field - - - id: dynamodb.batchwriteitem - brief: DynamoDB.BatchWriteItem - extends: awssdk - attributes: - - id: table_names + brief: "The JSON-serialized value of the `ItemCollectionmetrics` response field." + examples: + - '{ + "string" : [ + { + "ItemCollectionKey": { + "string" : { + "B": blob, + "BOOL": boolean, + "BS": [ blob ], + "L": [ + "AttributeValue" + ], + "M": { + "string" : "AttributeValue" + }, + "N": "string", + "NS": [ "string" ], + "NULL": boolean, + "S": "string", + "SS": [ "string" ] + } + }, + "SizeEstimateRangeGB": [ number ] + } + ] + }' + - id: provisioned_throughput.read_capacity_units + type: number + brief: "The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter." + examples: + - 1 + - 2 + - id: provisioned_throughput.write_capacity_units + type: number + brief: "The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter." + examples: + - 1 + - 2 + - id: consistent_read + type: boolean + brief: "The value of the `ConsistentRead` request parameter." + - id: projection_expression type: string - brief: ray | Extract the keys of the `RequestItems` object field in the request - - id: consumed_capacity + brief: "The value of the `ProjectionExpression` request parameter." + examples: + - Title + - Title, Price, Color + - Title, Description, RelatedItems, ProductReviews + - id: limit + type: number + brief: "The value of the `Limit` request parameter." + examples: + - 10 + - id: attributes_to_get + type: string[] + brief: "The value of the `AttributesToGet` request parameter." + examples: + - lives + - id + - id: index_name type: string - brief: JSON-serialize the `ConsumedCapacity` response list field - - id: item_collection_metrics + brief: "The value of the `IndexName` request parameter." + examples: + - name_to_group + - id: select type: string - brief: JSON-serialize the `ItemCollectionMetrics` response object field + brief: "The value of the `Select` request parameter." + examples: + - ALL_ATTRIBUTES + - COUNT + + - id: dynamodb.batchgetitem + brief: DynamoDB.BatchGetItem + prefix: aws + constraints: + - any_of: + - [aws.table_names, aws.consumed_capacity] + + - id: dynamodb.batchwriteitem + brief: DynamoDB.BatchWriteItem + prefix: aws + constraints: + - any_of: + - [ aws.table_names, aws.consumed_capacity, aws.item_collection_metrics ] - id: dynamodb.createtable brief: DynamoDB.CreateTable - extends: awssdk + prefix: aws attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - id: global_secondary_indexes - type: string - brief: JSON-serialize the `GlobalSecondaryIndexes` request list field + type: string[] + brief: "The JSON-serialized value of each item of the`GlobalSecondaryIndexes` request field" + examples: + - '{ + "IndexName": "string", + "KeySchema": [ + { + "AttributeName": "string", + "KeyType": "string" + } + ], + "Projection": { + "NonKeyAttributes": [ "string" ], + "ProjectionType": "string" + }, + "ProvisionedThroughput": { + "ReadCapacityUnits": number, + "WriteCapacityUnits": number + } + }' - id: local_secondary_indexes - type: string - brief: JSON-serialize the `LocalSecondaryIndexes` request list field - - id: provisioned_throughput.read_capacity_units - type: number - brief: Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter - - id: provisioned_throughput.write_capacity_units - type: number - brief: Copy the `ProvisionedThroughput.WriteCapacityUnits` request parameter + type: string[] + brief: "The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field." + examples: + - '{ + "IndexArn": "string", + "IndexName": "string", + "IndexSizeBytes": number, + "ItemCount": number, + "KeySchema": [ + { + "AttributeName": "string", + "KeyType": "string" + } + ], + "Projection": { + "NonKeyAttributes": [ "string" ], + "ProjectionType": "string" + } + }' + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.item_collection_metrics, aws.provisioned_throughput.read_capacity_units, aws.provisioned_throughput.write_capacity_units ] - id: dynamodb.deleteitem brief: DynamoDB.DeleteItem - extends: awssdk - attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - - id: consumed_capacity - type: string - brief: JSON-serialize the `ConsumedCapacity` response list field - - id: item_collection_metrics - type: string - brief: JSON-serialize the `ItemCollectionMetrics` response object field + prefix: aws + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.item_collection_metrics ] - id: dynamodb.deletetable brief: DynamoDB.DeleteTable - extends: awssdk - attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter + prefix: aws + constraints: + - any_of: + - [ db.name ] - id: dynamodb.describetable brief: DynamoDB.DescribeTable - extends: awssdk - attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter + prefix: aws + constraints: + - any_of: + - [ db.name ] - id: dynamodb.getitem brief: DynamoDB.GetItem - extends: awssdk - attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - - id: consistent_read - type: bool - brief: Copy the `ConsistentRead` request parameter - - id: projection_expression - type: string - brief: Copy the `ProjectionExpression` request parameter - - id: consumed_capacity - type: string - brief: JSON-serialize the `ConsumedCapacity` response list field + prefix: aws + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.consistent_read, aws.projection_expression ] - id: dynamodb.listtables brief: DynamoDB.ListTables - extends: awssdk + prefix: aws attributes: - id: exclusive_start_table_name type: string - brief: Copy the `ExclusiveStartTableName` request parameter - - id: limit - type: number - brief: Copy the `Limit` request parameter + brief: "The value of the `ExclusiveStartTableName` request parameter." + examples: + - Users + - CatsTable - id: table_count type: number - brief: Fill in the number of elements in the `TableNames` response list parameter + brief: "The the number of items in the `TableNames` response parameter." + examples: + - 20 + constraints: + - any_of: + - [ aws.limit ] - id: dynamodb.putitem brief: DynamoDB.PutItem - extends: awssdk - attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - - id: consumed_capacity - type: string - brief: JSON-serialize the `ConsumedCapacity` response list field - - id: item_collection_metrics - type: string - brief: JSON-serialize the `ItemCollectionMetrics` response object field + prefix: aws + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.item_collection_metrics ] - id: dynamodb.query brief: DynamoDB.Query - extends: awssdk + prefix: aws attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - - id: attributes_to_get - type: string - brief: ray | Copy the `AttributesToGet` list request parameter - - id: consistent_read - type: bool - brief: Copy the `ConsistentRead` request parameter - - id: index_name - type: string - brief: Copy the `IndexName` request parameter - - id: limit - type: number - brief: Copy the `Limit` request parameter - - id: projection_expression - type: string - brief: Copy the `ProjectionExpression` request parameter - id: scan_index_forward - type: bool - brief: Copy the `ScanIndexForward` request parameter - - id: select - type: string - brief: Copy the `Select` request parameter - - id: consumed_capacity - type: string - brief: JSON-serialize the `ConsumedCapacity` response list field + type: boolean + brief: "The value of the `ScanIndexForward` request parameter." + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.consistent_read, aws.limit, aws.projection_expression, aws.attributes_to_get, aws.index_name, aws.select ] - id: dynamodb.scan brief: DynamoDB.Scan - extends: awssdk + prefix: aws attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - - id: attributes_to_get - type: string - brief: ray | Copy the `AttributesToGet` list request parameter - - id: consistent_read - type: bool - brief: Copy the `ConsistentRead` request parameter - - id: index_name - type: string - brief: Copy the `IndexName` request parameter - - id: limit - type: number - brief: Copy the `Limit` request parameter - - id: projection_expression - type: string - brief: Copy the `ProjectionExpression` request parameter - id: segment type: number - brief: Copy the `Segment` request parameter - - id: select - type: string - brief: Copy the `Select` request parameter + brief: "The value of the `Segment` request parameter." + examples: + - 10 - id: total_segments type: number - brief: Copy the `TotalSegments` request parameter - - id: consumed_capacity - type: string - brief: JSON-serialize the `ConsumedCapacity` response list field + brief: "The value of the `TotalSegments` request parameter." + examples: + - 100 - id: count type: number - brief: Copy the `Count` response parameter + brief: "The value of the `Count` response parameter." + examples: + - 10 - id: scanned_count type: number - brief: Copy the `ScannedCount` response parameter + brief: "The value of the `ScannedCount` response parameter." + examples: + - 50 + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.consistent_read, aws.limit, aws.projection_expression, aws.attributes_to_get, aws.index_name, aws.select ] - id: dynamodb.updateitem brief: DynamoDB.UpdateItem - extends: awssdk - attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - - id: consumed_capacity - type: string - brief: JSON-serialize the `ConsumedCapacity` response list field - - id: item_collection_metrics - type: string - brief: JSON-serialize the `ItemCollectionMetrics` response object field + prefix: aws + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.item_collection_metrics ] - id: dynamodb.updatetable brief: DynamoDB.UpdateTable - extends: awssdk + prefix: aws attributes: - - id: db.name - type: string - brief: Copy the `TableName` request parameter - id: attribute_definitions - type: string - brief: JSON-serialize the `AttributeDefinitions` request list field + type: string[] + brief: "The JSON-serialized value of each item in the `AttributeDefinitions` request field." + examples: + - '{ + "AttributeName": "string", + "AttributeType": "string" + }' - id: global_secondary_index_updates - type: string - brief: JSON-serialize the `GlobalSecondaryIndexUpdates` request list field - - id: provisioned_throughput.read_capacity_units - type: number - brief: Copy the `ProvisionedThroughput.ReadCapacityUnits` request parameter - - id: provisioned_throughput.write_capacity_units - type: number - brief: Copy the `ProvisionedThroughput.WriteCapacityUnits` request parameter - - - id: sqs.addpermission - brief: SQS.AddPermission - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: label - type: string - brief: Copy the `Label` request field - - - id: sqs.changemessagevisibility - brief: SQS.ChangeMessageVisibility - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: visibility_timeout - type: number - brief: Copy the `VisibilityTimeout` request field - - - id: sqs.changemessagevisibilitybatch - brief: SQS.ChangeMessageVisibilityBatch - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - - id: sqs.createqueue - brief: SQS.CreateQueue - extends: awssdk - attributes: - - id: attributes - type: string - brief: JSON serialize the `Attributes` request field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. - - id: queue_name - type: string - brief: Copy the `QueueName` request field - - - id: sqs.deletemessage - brief: SQS.DeleteMessage - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - - id: sqs.deletemessagebatch - brief: SQS.DeleteMessageBatch - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - - id: sqs.deletequeue - brief: SQS.DeleteQueue - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - - id: sqs.getqueueattributes - brief: SQS.GetQueueAttributes - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: attributes - type: string - brief: JSON serialize the `Attributes` response field. If `Attributes` is a list of key/value pairs, pack them into an object before serializing. - - - id: sqs.getqueueurl - brief: SQS.GetQueueUrl - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` response field - - id: queue_name - type: string - brief: Copy the `QueueName` request field - - id: queue_owner_aws_account_id - type: string - brief: Copy the `QueueOwnerAWSAccountId` request field - - - id: sqs.listdeadlettersourcequeues - brief: SQS.ListDeadLetterSourceQueues - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: queue_urls - type: string - brief: ray | Copy the `QueueUrls` response field - - - id: sqs.listqueues - brief: SQS.ListQueues - extends: awssdk - attributes: - - id: queue_name_prefix - type: string - brief: Copy the `QueueNamePrefix` request field - - id: queue_count - type: number - brief: Fill in the number of elements in the `QueueUrls` response list field - - - id: sqs.purgequeue - brief: SQS.PurgeQueue - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - - id: sqs.receivemessage - brief: SQS.ReceiveMessage - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: messaging.operation - type: string - brief: Fill in `receive` - - id: attribute_names - type: string - brief: ray | Copy the `AttributeNames` request field - - id: max_number_of_messages - type: number - brief: Copy the `MaxNumberOfMessages` request field - - id: message_attribute_names - type: string - brief: ray | Copy the `MessageAttributeNames` request field - - id: visibility_timeout - type: number - brief: Copy the `VisibilityTimeout` request field - - id: wait_time_seconds - type: number - brief: py the `WaitTimeSeconds` request field - - id: message_count - type: number - brief: Fill in the number of elements in the `Messages` response list field - - - id: sqs.removepermission - brief: SQS.RemovePermission - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - - id: sqs.sendmessage - brief: SQS.SendMessage - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: messaging.message_id - type: string - brief: Copy the `MessageId` field - - id: messaging.operation - type: string - brief: Fill in `send` - - id: delay_seconds - type: number - brief: Copy the `DelaySeconds` request field - - id: message_attributes - type: string - brief: ray | Copy the keys of the `MessageAttributes` request object field - - - id: sqs.sendmessagebatch - brief: SQS.SendMessageBatch - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: messaging.operation - type: string - brief: Fill in `send` - - id: message_count - type: number - brief: Fill in the number of elements in the `Messages` request list field - - - id: sqs.setqueueattributes - brief: SQS.SetQueueAttributes - extends: awssdk - attributes: - - id: messaging.url - type: string - brief: Copy the `QueueUrl` request field - - id: attribute_names - type: string - brief: ray | Copy the keys of the `Attributes` request object field - - - - id: lambda.invoke - brief: Lambda.Invoke - extends: awssdk - attributes: - - id: faas.invoked_name - type: string - brief: Copy the `FunctionName` request field. - - id: faas.invoked_provider - type: string - brief: Fill in `aws` - - id: faas.invoked_region - type: string - brief: Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) - - id: invocation_type - type: string - brief: Copy the `InvocationType` request field - - id: log_type - type: string - brief: Copy the `LogType` request field - - id: qualifier - type: string - brief: Copy the `Qualifier` request field - - id: function_error - type: string - brief: Copy the `X-Amz-Function-Error` response header. SDKs may present this as a `FunctionError` field - - - id: lambda.invokeasync - brief: Lambda.InvokeAsync - extends: awssdk - attributes: - - id: faas.invoked_name - type: string - brief: Copy the `FunctionName` request field. - - id: faas.invoked_provider - type: string - brief: Fill in `aws` - - id: faas.invoked_region - type: string - brief: Fill in the value of the region from the API endpoint (SDKs should provide this separate from the request) - - - id: s3.copyobject - brief: S3.CopyObject - extends: awssdk - attributes: - - id: source_bucket_name - type: string - brief: Copy the `SourceBucketName` request field - - id: source_key - type: string - brief: Copy the `SourceKey` request field - - id: destination_bucket_name - type: string - brief: Copy the `DestinationBucketName` request field - - id: destination_key - type: string - brief: Copy the `DestinationKey` request field - - - id: s3.copypart - brief: S3.CopyPart - extends: awssdk - attributes: - - id: source_bucket_name - type: string - brief: Copy the `SourceBucketName` request field - - id: source_key - type: string - brief: Copy the `SourceKey` request field - - id: destination_bucket_name - type: string - brief: Copy the `DestinationBucketName` request field - - id: destination_key - type: string - brief: Copy the `DestinationKey` request field - - - id: s3.getobject - brief: S3.GetObject - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.putobject - brief: S3.PutObject - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.getobjectacl - brief: S3.GetObjectAcl - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.createbucket - brief: S3.CreateBucket - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listobjectsv2 - brief: S3.ListObjectsV2 - extends: awssdk - attributes: - - id: prefix - type: string - brief: Copy the `Prefix` request field - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listobjects - brief: S3.ListObjects - extends: awssdk - attributes: - - id: prefix - type: string - brief: Copy the `Prefix` request field - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getobjecttagging - brief: S3.GetObjectTagging - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.setobjecttagging - brief: S3.SetObjectTagging - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.listversions - brief: S3.ListVersions - extends: awssdk - attributes: - - id: prefix - type: string - brief: Copy the `Prefix` request field - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setobjectacl - brief: S3.SetObjectAcl - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.getbucketacl - brief: S3.GetBucketAcl - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketacl - brief: S3.SetBucketAcl - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.headbucket - brief: S3.HeadBucket - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.uploadpart - brief: S3.UploadPart - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.deleteobject - brief: S3.DeleteObject - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.deletebucket - brief: S3.DeleteBucket - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deleteobjects - brief: S3.DeleteObjects - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deleteversion - brief: S3.DeleteVersion - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.getbucketpolicy - brief: S3.GetBucketPolicy - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketpolicy - brief: S3.SetBucketPolicy - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listparts - brief: S3.ListParts - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.restoreobject - brief: S3.RestoreObject - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.restoreobjectv2 - brief: S3.RestoreObjectV2 - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.setbucketnotificationconfiguration - brief: S3.SetBucketNotificationConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketlifecycleconfiguration - brief: S3.DeleteBucketLifecycleConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketnotificationconfiguration - brief: S3.GetBucketNotificationConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketcrossoriginconfiguration - brief: S3.DeleteBucketCrossOriginConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketcrossoriginconfiguration - brief: S3.SetBucketCrossOriginConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketcrossoriginconfiguration - brief: S3.GetBucketCrossOriginConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listbucketinventoryconfigurations - brief: S3.ListBucketInventoryConfigurations - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketreplicationconfiguration - brief: S3.GetBucketReplicationConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketreplicationconfiguration - brief: S3.SetBucketReplicationConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketreplicationconfiguration - brief: S3.DeleteBucketReplicationConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketanalyticsconfiguration - brief: S3.DeleteBucketAnalyticsConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketinventoryconfiguration - brief: S3.DeleteBucketInventoryConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listbucketanalyticsconfigurations - brief: S3.ListBucketAnalyticsConfigurations - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deleteobjecttagging - brief: S3.DeleteObjectTagging - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.setbucketversioningconfiguration - brief: S3.SetBucketVersioningConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketversioningconfiguration - brief: S3.GetBucketVersioningConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketwebsiteconfiguration - brief: S3.GetBucketWebsiteConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketlifecycleconfiguration - brief: S3.GetBucketLifecycleConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketlifecycleconfiguration - brief: S3.SetBucketLifecycleConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbuckettaggingconfiguration - brief: S3.GetBucketTaggingConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbuckettaggingconfiguration - brief: S3.SetBucketTaggingConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getobjectmetadata - brief: S3.GetObjectMetadata - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.getbucketlocation - brief: S3.GetBucketLocation - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketloggingconfiguration - brief: S3.GetBucketLoggingConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listmultipartuploads - brief: S3.ListMultipartUploads - extends: awssdk - attributes: - - id: prefix - type: string - brief: Copy the `Prefix` request field - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketpolicy - brief: S3.DeleteBucketPolicy - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketencryption - brief: S3.DeleteBucketEncryption - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketaccelerateconfiguration - brief: S3.SetBucketAccelerateConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketwebsiteconfiguration - brief: S3.SetBucketWebsiteConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.completemultipartupload - brief: S3.CompleteMultipartUpload - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.initiatemultipartupload - brief: S3.InitiateMultipartUpload - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.setbucketencryption - brief: S3.SetBucketEncryption - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketloggingconfiguration - brief: S3.SetBucketLoggingConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketwebsiteconfiguration - brief: S3.DeleteBucketWebsiteConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketencryption - brief: S3.GetBucketEncryption - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.abortmultipartupload - brief: S3.AbortMultipartUpload - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - - id: s3.generatepresignedurl - brief: S3.GeneratePresignedUrl - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - id: key - type: string - brief: Copy the `Key` request field - - id: version_id - type: string - brief: Copy the `VersionId` request field - - - id: s3.deletebuckettaggingconfiguration - brief: S3.DeleteBucketTaggingConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3getbucketaccelerateconfiguration - brief: S3GetBucketAccelerateConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketmetricsconfiguration - brief: S3.GetBucketMetricsConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.listbucketmetricsconfigurations - brief: S3.ListBucketMetricsConfigurations - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketinventoryconfiguration - brief: S3.SetBucketInventoryConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketmetricsconfiguration - brief: S3.SetBucketMetricsConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.setbucketanalyticsconfiguration - brief: S3.SetBucketAnalyticsConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.deletebucketmetricsconfiguration - brief: S3.DeleteBucketMetricsConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketanalyticsconfiguration - brief: S3.GetBucketAnalyticsConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - id: s3.getbucketinventoryconfiguration - brief: S3.GetBucketInventoryConfiguration - extends: awssdk - attributes: - - id: bucket_name - type: string - brief: Copy the `BucketName` request field - - - - id: sagemakerruntime.invokeendpoint - brief: SageMakerRuntime.InvokeEndpoint - extends: awssdk - attributes: - - id: endpoint_name - type: string - brief: Copy the `EndpointName` request field + type: string[] + brief: "The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field." + examples: + - '{ + "Create": { + "IndexName": "string", + "KeySchema": [ + { + "AttributeName": "string", + "KeyType": "string" + } + ], + "Projection": { + "NonKeyAttributes": [ "string" ], + "ProjectionType": "string" + }, + "ProvisionedThroughput": { + "ReadCapacityUnits": number, + "WriteCapacityUnits": number + } + }' + constraints: + - any_of: + - [ db.name, aws.consumed_capacity, aws.provisioned_throughput.read_capacity_units, aws.provisioned_throughput.write_capacity_units ] diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md new file mode 100644 index 00000000000..bc2370dfbbc --- /dev/null +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -0,0 +1,172 @@ +# Semantic conventions for AWS SDK + +**Status**: [Experimental](../../../document-status.md) + +## Common Attributes + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.service` | string | The name of the service to which a request is made, as returned by the AWS SDK. | `DynamoDB`; `S3` | No | +| `aws.operation` | string | The name of the operation corresponding to the request, as returned by the AWS SDK | `GetItem`; `PutItem` | No | + + +## DynamoDB + +### Shared Attributes + +These attributes correspond to multiple request types and are referenced from individual methods below. + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | +| `aws.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | +| `aws.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | +| `aws.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | + + +### DynamoDB.BatchGetItem + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* `aws.table_names`, `aws.consumed_capacity` + + +### DynamoDB.BatchWriteItem + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* `aws.table_names`, `aws.consumed_capacity`, `aws.item_collection_metrics` + + +### DynamoDB.CreateTable + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.global_secondary_indexes` | string[] | The JSON-serialized value of each item of the`GlobalSecondaryIndexes` request field | `[{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | +| `aws.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics`, `aws.provisioned_throughput.read_capacity_units`, `aws.provisioned_throughput.write_capacity_units` + + +### DynamoDB.DeleteItem + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` + + +### DynamoDB.DeleteTable + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md) + + +### DynamoDB.DescribeTable + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md) + + +### DynamoDB.GetItem + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.consistent_read`, `aws.projection_expression` + + +### DynamoDB.ListTables + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.exclusive_start_table_name` | string | The value of the `ExclusiveStartTableName` request parameter. | `Users`; `CatsTable` | No | +| `aws.table_count` | number | The the number of items in the `TableNames` response parameter. | `20` | No | + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* `aws.limit` + + +### DynamoDB.PutItem + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` + + +### DynamoDB.Query + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.scan_index_forward` | boolean | The value of the `ScanIndexForward` request parameter. | | No | + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.consistent_read`, `aws.limit`, `aws.projection_expression`, `aws.attributes_to_get`, `aws.index_name`, `aws.select` + + +### DynamoDB.Scan + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.segment` | number | The value of the `Segment` request parameter. | `10` | No | +| `aws.total_segments` | number | The value of the `TotalSegments` request parameter. | `100` | No | +| `aws.count` | number | The value of the `Count` response parameter. | `10` | No | +| `aws.scanned_count` | number | The value of the `ScannedCount` response parameter. | `50` | No | + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.consistent_read`, `aws.limit`, `aws.projection_expression`, `aws.attributes_to_get`, `aws.index_name`, `aws.select` + + +### DynamoDB.UpdateItem + + + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` + + +### DynamoDB.UpdateItem + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.attribute_definitions` | string[] | The JSON-serialized value of each item in the `AttributeDefinitions` request field. | `[{ "AttributeName": "string", "AttributeType": "string" }]` | No | +| `aws.global_secondary_index_updates` | string[] | The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field. | `[{ "Create": { "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | + +**Additional attribute requirements:** At least one of the following sets of attributes is required: + +* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.provisioned_throughput.read_capacity_units`, `aws.provisioned_throughput.write_capacity_units` + From 83b378c156c4d0746729b99a3dde53440b6f98ea Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 10 Feb 2021 17:04:35 +0900 Subject: [PATCH 06/27] Fix --- .../trace/semantic_conventions/instrumentation/aws-sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index bc2370dfbbc..e22ca5fb581 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -158,7 +158,7 @@ These attributes correspond to multiple request types and are referenced from in * [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` -### DynamoDB.UpdateItem +### DynamoDB.UpdateTable | Attribute | Type | Description | Examples | Required | From faaad267f2c98fb4cde96ed18f2ff8266f175ee1 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 11 Feb 2021 00:09:00 +0900 Subject: [PATCH 07/27] Update semantic_conventions/trace/instrumentation/aws-sdk.yml Co-authored-by: William Armiros <54150514+willarmiros@users.noreply.github.com> --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index c1643c080a8..0dfc3e4414d 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -155,7 +155,7 @@ groups: attributes: - id: global_secondary_indexes type: string[] - brief: "The JSON-serialized value of each item of the`GlobalSecondaryIndexes` request field" + brief: "The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field" examples: - '{ "IndexName": "string", From 499a12358d2225045cd196f9d728a389f80959e1 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Feb 2021 14:04:17 +0900 Subject: [PATCH 08/27] ref: aws.dynamodb --- .../trace/instrumentation/aws-sdk.yml | 141 +++++++++------ .../instrumentation/aws-sdk.md | 164 ++++++++++-------- 2 files changed, 181 insertions(+), 124 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 0dfc3e4414d..dd80f4c8f3b 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -23,7 +23,8 @@ groups: - PutItem - id: dynamodb.shared - prefix: aws + extends: aws + prefix: aws.dynamodb brief: "Attributes that exist for multiple DynamoDB request types." attributes: - id: table_names @@ -137,21 +138,25 @@ groups: - id: dynamodb.batchgetitem brief: DynamoDB.BatchGetItem - prefix: aws - constraints: - - any_of: - - [aws.table_names, aws.consumed_capacity] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: aws.dynamodb.table_names + - ref: aws.dynamodb.consumed_capacity - id: dynamodb.batchwriteitem brief: DynamoDB.BatchWriteItem - prefix: aws - constraints: - - any_of: - - [ aws.table_names, aws.consumed_capacity, aws.item_collection_metrics ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: aws.dynamodb.table_names + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.createtable brief: DynamoDB.CreateTable - prefix: aws + extends: aws + prefix: aws.dynamodb attributes: - id: global_secondary_indexes type: string[] @@ -194,41 +199,52 @@ groups: "ProjectionType": "string" } }' - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.item_collection_metrics, aws.provisioned_throughput.read_capacity_units, aws.provisioned_throughput.write_capacity_units ] + - ref: aws.dynamodb.table_names + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.item_collection_metrics + - ref: aws.dynamodb.provisioned_throughput.read_capacity_units + - ref: aws.dynamodb.provisioned_throughput.write_capacity_units - id: dynamodb.deleteitem brief: DynamoDB.DeleteItem - prefix: aws - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.item_collection_metrics ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: aws.dynamodb.table_names + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.deletetable brief: DynamoDB.DeleteTable - prefix: aws - constraints: - - any_of: - - [ db.name ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: db.name + brief: "The value of the TableName request parameter." - id: dynamodb.describetable brief: DynamoDB.DescribeTable - prefix: aws - constraints: - - any_of: - - [ db.name ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: db.name + brief: "The value of the TableName request parameter." - id: dynamodb.getitem brief: DynamoDB.GetItem - prefix: aws - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.consistent_read, aws.projection_expression ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: db.name + brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.consistent_read + - ref: aws.dynamodb.projection_expression - id: dynamodb.listtables brief: DynamoDB.ListTables - prefix: aws + extends: aws + prefix: aws.dynamodb attributes: - id: exclusive_start_table_name type: string @@ -241,31 +257,39 @@ groups: brief: "The the number of items in the `TableNames` response parameter." examples: - 20 - constraints: - - any_of: - - [ aws.limit ] + - ref: aws.dynamodb.limit - id: dynamodb.putitem brief: DynamoDB.PutItem - prefix: aws - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.item_collection_metrics ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: aws.dynamodb.table_names + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.query brief: DynamoDB.Query - prefix: aws + extends: aws + prefix: aws.dynamodb attributes: - id: scan_index_forward type: boolean brief: "The value of the `ScanIndexForward` request parameter." - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.consistent_read, aws.limit, aws.projection_expression, aws.attributes_to_get, aws.index_name, aws.select ] + - ref: db.name + brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.consistent_read + - ref: aws.dynamodb.limit + - ref: aws.dynamodb.projection_expression + - ref: aws.dynamodb.attributes_to_get + - ref: aws.dynamodb.index_name + - ref: aws.dynamodb.select - id: dynamodb.scan brief: DynamoDB.Scan - prefix: aws + extends: aws + prefix: aws.dynamodb attributes: - id: segment type: number @@ -287,20 +311,29 @@ groups: brief: "The value of the `ScannedCount` response parameter." examples: - 50 - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.consistent_read, aws.limit, aws.projection_expression, aws.attributes_to_get, aws.index_name, aws.select ] + - ref: db.name + brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.consistent_read + - ref: aws.dynamodb.limit + - ref: aws.dynamodb.projection_expression + - ref: aws.dynamodb.attributes_to_get + - ref: aws.dynamodb.index_name + - ref: aws.dynamodb.select - id: dynamodb.updateitem brief: DynamoDB.UpdateItem - prefix: aws - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.item_collection_metrics ] + extends: aws + prefix: aws.dynamodb + attributes: + - ref: aws.dynamodb.table_names + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.updatetable brief: DynamoDB.UpdateTable - prefix: aws + extends: aws + prefix: aws.dynamodb attributes: - id: attribute_definitions type: string[] @@ -332,6 +365,8 @@ groups: "WriteCapacityUnits": number } }' - constraints: - - any_of: - - [ db.name, aws.consumed_capacity, aws.provisioned_throughput.read_capacity_units, aws.provisioned_throughput.write_capacity_units ] + - ref: db.name + brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.consumed_capacity + - ref: aws.dynamodb.provisioned_throughput.read_capacity_units + - ref: aws.dynamodb.provisioned_throughput.write_capacity_units diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index e22ca5fb581..2b0d26e8a20 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -20,35 +20,36 @@ These attributes correspond to multiple request types and are referenced from in | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | -| `aws.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | -| `aws.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | -| `aws.limit` | number | The value of the `Limit` request parameter. | `10` | No | -| `aws.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | -| `aws.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | -| `aws.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | +| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.dynamodb.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | +| `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | +| `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | ### DynamoDB.BatchGetItem - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* `aws.table_names`, `aws.consumed_capacity` +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | ### DynamoDB.BatchWriteItem - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* `aws.table_names`, `aws.consumed_capacity`, `aws.item_collection_metrics` +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | ### DynamoDB.CreateTable @@ -56,48 +57,56 @@ These attributes correspond to multiple request types and are referenced from in | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.global_secondary_indexes` | string[] | The JSON-serialized value of each item of the`GlobalSecondaryIndexes` request field | `[{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | -| `aws.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics`, `aws.provisioned_throughput.read_capacity_units`, `aws.provisioned_throughput.write_capacity_units` +| `aws.dynamodb.global_secondary_indexes` | string[] | The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field | `[{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | +| `aws.dynamodb.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | ### DynamoDB.DeleteItem - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | ### DynamoDB.DeleteTable +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md) +**[1]:** In some SQL databases, the database name to be used is called "schema name". ### DynamoDB.DescribeTable +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md) +**[1]:** In some SQL databases, the database name to be used is called "schema name". ### DynamoDB.GetItem +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.consistent_read`, `aws.projection_expression` +**[1]:** In some SQL databases, the database name to be used is called "schema name". ### DynamoDB.ListTables @@ -105,21 +114,19 @@ These attributes correspond to multiple request types and are referenced from in | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.exclusive_start_table_name` | string | The value of the `ExclusiveStartTableName` request parameter. | `Users`; `CatsTable` | No | -| `aws.table_count` | number | The the number of items in the `TableNames` response parameter. | `20` | No | - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* `aws.limit` +| `aws.dynamodb.exclusive_start_table_name` | string | The value of the `ExclusiveStartTableName` request parameter. | `Users`; `CatsTable` | No | +| `aws.dynamodb.table_count` | number | The the number of items in the `TableNames` response parameter. | `20` | No | +| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | ### DynamoDB.PutItem - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | ### DynamoDB.Query @@ -127,11 +134,17 @@ These attributes correspond to multiple request types and are referenced from in | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.scan_index_forward` | boolean | The value of the `ScanIndexForward` request parameter. | | No | - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.consistent_read`, `aws.limit`, `aws.projection_expression`, `aws.attributes_to_get`, `aws.index_name`, `aws.select` +| `aws.dynamodb.scan_index_forward` | boolean | The value of the `ScanIndexForward` request parameter. | | No | +| `aws.dynamodb.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | +| `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | +| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | +| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | + +**[1]:** In some SQL databases, the database name to be used is called "schema name". ### DynamoDB.Scan @@ -139,23 +152,30 @@ These attributes correspond to multiple request types and are referenced from in | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.segment` | number | The value of the `Segment` request parameter. | `10` | No | -| `aws.total_segments` | number | The value of the `TotalSegments` request parameter. | `100` | No | -| `aws.count` | number | The value of the `Count` response parameter. | `10` | No | -| `aws.scanned_count` | number | The value of the `ScannedCount` response parameter. | `50` | No | - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.consistent_read`, `aws.limit`, `aws.projection_expression`, `aws.attributes_to_get`, `aws.index_name`, `aws.select` +| `aws.dynamodb.segment` | number | The value of the `Segment` request parameter. | `10` | No | +| `aws.dynamodb.total_segments` | number | The value of the `TotalSegments` request parameter. | `100` | No | +| `aws.dynamodb.count` | number | The value of the `Count` response parameter. | `10` | No | +| `aws.dynamodb.scanned_count` | number | The value of the `ScannedCount` response parameter. | `50` | No | +| `aws.dynamodb.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | +| `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | +| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | +| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | + +**[1]:** In some SQL databases, the database name to be used is called "schema name". ### DynamoDB.UpdateItem - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.item_collection_metrics` +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | ### DynamoDB.UpdateTable @@ -163,10 +183,12 @@ These attributes correspond to multiple request types and are referenced from in | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.attribute_definitions` | string[] | The JSON-serialized value of each item in the `AttributeDefinitions` request field. | `[{ "AttributeName": "string", "AttributeType": "string" }]` | No | -| `aws.global_secondary_index_updates` | string[] | The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field. | `[{ "Create": { "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | - -**Additional attribute requirements:** At least one of the following sets of attributes is required: - -* [`db.name`](../database.md), `aws.consumed_capacity`, `aws.provisioned_throughput.read_capacity_units`, `aws.provisioned_throughput.write_capacity_units` +| `aws.dynamodb.attribute_definitions` | string[] | The JSON-serialized value of each item in the `AttributeDefinitions` request field. | `[{ "AttributeName": "string", "AttributeType": "string" }]` | No | +| `aws.dynamodb.global_secondary_index_updates` | string[] | The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field. | `[{ "Create": { "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | +| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | +| `aws.dynamodb.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | + +**[1]:** In some SQL databases, the database name to be used is called "schema name". From f801d4c609a3358c11b552ad388ea890eb94bade Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Feb 2021 14:05:15 +0900 Subject: [PATCH 09/27] Update README --- semantic_conventions/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/semantic_conventions/README.md b/semantic_conventions/README.md index 6c450bbbb8e..cd4523ff8ee 100644 --- a/semantic_conventions/README.md +++ b/semantic_conventions/README.md @@ -4,6 +4,10 @@ The YAML descriptions of semantic convention contained in this directory are int be used by the various OpenTelemetry language implementations to aid in automatic generation of semantics-related code. +## Writing semantic conventions + +Refer to the [syntax](./syntax.md) for how to write the YAML files for semantic conventions. + ## Generation These YAML files are used by the make target `table-generation` to generate consistently From 08bdd8ef83241af1abbb905f587a61c44a525c3e Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Feb 2021 14:05:44 +0900 Subject: [PATCH 10/27] Fix --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index dd80f4c8f3b..7638ceaccc7 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -2,7 +2,7 @@ groups: - id: aws prefix: aws brief: > - The `awssdk` conventions apply to operations using the AWS SDK. They map request or response parameters + The `aws` conventions apply to operations using the AWS SDK. They map request or response parameters in AWS SDK API calls to attributes on a Span. 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. From 81dc2360369cf20ad78d588d2ca3e6dc6c2682f1 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Feb 2021 14:08:14 +0900 Subject: [PATCH 11/27] Copy brief --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 3 ++- .../trace/semantic_conventions/instrumentation/aws-sdk.md | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 7638ceaccc7..33ccd9a45c7 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -7,7 +7,8 @@ groups: on feedback from AWS users of tracing and will continue to increase as new interesting conventions are found. - Some descriptions are also provided for populating OpenTelemetry semantic conventions. + Some descriptions are also provided for populating general OpenTelemetry semantic conventions based on + these APIs. attributes: - id: service type: string diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 2b0d26e8a20..756b30428db 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -2,6 +2,13 @@ **Status**: [Experimental](../../../document-status.md) +This document defines semantic conventions to apply when instrumenting the AWS SDK. They map request or response +parameters in AWS SDK API calls to attributes on a Span. 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. + +Some descriptions are also provided for populating general OpenTelemetry semantic conventions based on these APIs. + ## Common Attributes From 3a4e0921af7591d86f9d94d5933704e3bcfb8106 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Feb 2021 14:09:20 +0900 Subject: [PATCH 12/27] Inlined so don't need to show shared attributes --- .../instrumentation/aws-sdk.md | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 756b30428db..e0f117be0ce 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -20,26 +20,6 @@ Some descriptions are also provided for populating general OpenTelemetry semanti ## DynamoDB -### Shared Attributes - -These attributes correspond to multiple request types and are referenced from individual methods below. - - -| Attribute | Type | Description | Examples | Required | -|---|---|---|---|---| -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | -| `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | -| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | -| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | -| `aws.dynamodb.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | -| `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | -| `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | - - ### DynamoDB.BatchGetItem From 5f5fcbf204cd3da2188909c52ab11243966e0116 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 17 Feb 2021 16:28:21 +0900 Subject: [PATCH 13/27] Update semantic_conventions/trace/instrumentation/aws-sdk.yml Co-authored-by: Nikita Salnikov-Tarnovski --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 33ccd9a45c7..f548f9a1ae5 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -4,7 +4,7 @@ groups: brief: > The `aws` conventions apply to operations using the AWS SDK. They map request or response parameters in AWS SDK API calls to attributes on a Span. The conventions have been collected over time based - on feedback from AWS users of tracing and will continue to increase as new interesting conventions + on feedback from AWS users of tracing and will continue to evolve as new interesting conventions are found. Some descriptions are also provided for populating general OpenTelemetry semantic conventions based on From 5e8db5967be3062c385dc2fd24bcf45c925ae3fa Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 24 Feb 2021 13:48:33 +0900 Subject: [PATCH 14/27] Shorten some names and no db.name --- .../trace/instrumentation/aws-sdk.yml | 60 +++++++++---------- .../instrumentation/aws-sdk.md | 52 +++++++--------- 2 files changed, 50 insertions(+), 62 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 33ccd9a45c7..a187710a545 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -63,7 +63,7 @@ groups: "TableName": "string", "WriteCapacityUnits": number }' - - id: item_collection_metrics + - id: item_collection type: string brief: "The JSON-serialized value of the `ItemCollectionmetrics` response field." examples: @@ -92,13 +92,13 @@ groups: } ] }' - - id: provisioned_throughput.read_capacity_units + - id: provisioned_read_capacity type: number brief: "The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter." examples: - 1 - 2 - - id: provisioned_throughput.write_capacity_units + - id: provisioned_write_capacity type: number brief: "The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter." examples: @@ -107,7 +107,7 @@ groups: - id: consistent_read type: boolean brief: "The value of the `ConsistentRead` request parameter." - - id: projection_expression + - id: projection type: string brief: "The value of the `ProjectionExpression` request parameter." examples: @@ -152,7 +152,7 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection_metrics + - ref: aws.dynamodb.item_collection - id: dynamodb.createtable brief: DynamoDB.CreateTable @@ -202,9 +202,9 @@ groups: }' - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection_metrics - - ref: aws.dynamodb.provisioned_throughput.read_capacity_units - - ref: aws.dynamodb.provisioned_throughput.write_capacity_units + - ref: aws.dynamodb.item_collection + - ref: aws.dynamodb.provisioned_read_capacity + - ref: aws.dynamodb.provisioned_write_capacity - id: dynamodb.deleteitem brief: DynamoDB.DeleteItem @@ -213,41 +213,41 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection_metrics + - ref: aws.dynamodb.item_collection - id: dynamodb.deletetable brief: DynamoDB.DeleteTable extends: aws prefix: aws.dynamodb attributes: - - ref: db.name - brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.table_names + brief: "A single item with the value of the TableName request parameter." - id: dynamodb.describetable brief: DynamoDB.DescribeTable extends: aws prefix: aws.dynamodb attributes: - - ref: db.name - brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.table_names + brief: "A single item with the value of the TableName request parameter." - id: dynamodb.getitem brief: DynamoDB.GetItem extends: aws prefix: aws.dynamodb attributes: - - ref: db.name - brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.table_names + brief: "A single item with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - - ref: aws.dynamodb.projection_expression + - ref: aws.dynamodb.projection - id: dynamodb.listtables brief: DynamoDB.ListTables extends: aws prefix: aws.dynamodb attributes: - - id: exclusive_start_table_name + - id: exclusive_start_table type: string brief: "The value of the `ExclusiveStartTableName` request parameter." examples: @@ -267,22 +267,22 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection_metrics + - ref: aws.dynamodb.item_collection - id: dynamodb.query brief: DynamoDB.Query extends: aws prefix: aws.dynamodb attributes: - - id: scan_index_forward + - id: scan_forward type: boolean brief: "The value of the `ScanIndexForward` request parameter." - - ref: db.name - brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.table_names + brief: "A single item with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.limit - - ref: aws.dynamodb.projection_expression + - ref: aws.dynamodb.projection - ref: aws.dynamodb.attributes_to_get - ref: aws.dynamodb.index_name - ref: aws.dynamodb.select @@ -312,12 +312,12 @@ groups: brief: "The value of the `ScannedCount` response parameter." examples: - 50 - - ref: db.name - brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.table_names + brief: "A single item with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.limit - - ref: aws.dynamodb.projection_expression + - ref: aws.dynamodb.projection - ref: aws.dynamodb.attributes_to_get - ref: aws.dynamodb.index_name - ref: aws.dynamodb.select @@ -329,7 +329,7 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection_metrics + - ref: aws.dynamodb.item_collection - id: dynamodb.updatetable brief: DynamoDB.UpdateTable @@ -366,8 +366,8 @@ groups: "WriteCapacityUnits": number } }' - - ref: db.name - brief: "The value of the TableName request parameter." + - ref: aws.dynamodb.table_names + brief: "A single item with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.provisioned_throughput.read_capacity_units - - ref: aws.dynamodb.provisioned_throughput.write_capacity_units + - ref: aws.dynamodb.provisioned_read_capacity + - ref: aws.dynamodb.provisioned_write_capacity diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index e0f117be0ce..230c72e2d8e 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -35,7 +35,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -47,9 +47,9 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.global_secondary_indexes` | string[] | The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field | `[{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | | `aws.dynamodb.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -59,7 +59,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -68,9 +68,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | - -**[1]:** In some SQL databases, the database name to be used is called "schema name". +| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.DescribeTable @@ -78,9 +76,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | - -**[1]:** In some SQL databases, the database name to be used is called "schema name". +| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.GetItem @@ -90,10 +86,8 @@ Some descriptions are also provided for populating general OpenTelemetry semanti |---|---|---|---|---| | `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | -| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | - -**[1]:** In some SQL databases, the database name to be used is called "schema name". +| `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.ListTables @@ -101,7 +95,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.exclusive_start_table_name` | string | The value of the `ExclusiveStartTableName` request parameter. | `Users`; `CatsTable` | No | +| `aws.dynamodb.exclusive_start_table` | string | The value of the `ExclusiveStartTableName` request parameter. | `Users`; `CatsTable` | No | | `aws.dynamodb.table_count` | number | The the number of items in the `TableNames` response parameter. | `20` | No | | `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | @@ -112,7 +106,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -121,17 +115,15 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.scan_index_forward` | boolean | The value of the `ScanIndexForward` request parameter. | | No | +| `aws.dynamodb.scan_forward` | boolean | The value of the `ScanIndexForward` request parameter. | | No | | `aws.dynamodb.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | | `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | | `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | -| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | -| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | - -**[1]:** In some SQL databases, the database name to be used is called "schema name". +| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.Scan @@ -148,11 +140,9 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | | `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | -| `aws.dynamodb.projection_expression` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | +| `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | -| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | - -**[1]:** In some SQL databases, the database name to be used is called "schema name". +| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.UpdateItem @@ -161,7 +151,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -173,9 +163,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.attribute_definitions` | string[] | The JSON-serialized value of each item in the `AttributeDefinitions` request field. | `[{ "AttributeName": "string", "AttributeType": "string" }]` | No | | `aws.dynamodb.global_secondary_index_updates` | string[] | The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field. | `[{ "Create": { "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.provisioned_throughput.read_capacity_units` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.provisioned_throughput.write_capacity_units` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | -| [`db.name`](../database.md) | string | The value of the TableName request parameter. [1] | `customers`; `main` | No | - -**[1]:** In some SQL databases, the database name to be used is called "schema name". +| `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | From 28a9dc0728671d85abfd391a653252d7a7f1e3e9 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 24 Feb 2021 13:58:30 +0900 Subject: [PATCH 15/27] A duck is a duck --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 6 ++---- .../trace/semantic_conventions/instrumentation/aws-sdk.md | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 99748bcf58e..faf2de9c8d4 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -10,14 +10,12 @@ groups: Some descriptions are also provided for populating general OpenTelemetry semantic conventions based on these APIs. attributes: - - id: service - type: string + - ref: rpc.service brief: "The name of the service to which a request is made, as returned by the AWS SDK." examples: - DynamoDB - S3 - - id: operation - type: string + - ref: rpc.method brief: "The name of the operation corresponding to the request, as returned by the AWS SDK" examples: - GetItem diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 230c72e2d8e..4993585838e 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -14,8 +14,8 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.service` | string | The name of the service to which a request is made, as returned by the AWS SDK. | `DynamoDB`; `S3` | No | -| `aws.operation` | string | The name of the operation corresponding to the request, as returned by the AWS SDK | `GetItem`; `PutItem` | No | +| [`rpc.method`](../rpc.md) | string | The name of the operation corresponding to the request, as returned by the AWS SDK | `GetItem`; `PutItem` | No | +| [`rpc.service`](../rpc.md) | string | The name of the service to which a request is made, as returned by the AWS SDK. | `DynamoDB`; `S3` | No | ## DynamoDB From 89446e96e28652a096ac782cd68989050ae22421 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 24 Feb 2021 17:43:09 +0900 Subject: [PATCH 16/27] Wording tweaks, rpc.system --- .../trace/instrumentation/aws-sdk.yml | 28 +++++++++++-------- .../instrumentation/aws-sdk.md | 23 +++++++-------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index faf2de9c8d4..02a0fbaf199 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -10,6 +10,10 @@ groups: Some descriptions are also provided for populating general OpenTelemetry semantic conventions based on these APIs. attributes: + - ref: rpc.system + brief: "The value `aws-api`." + examples: + - aws-api - ref: rpc.service brief: "The name of the service to which a request is made, as returned by the AWS SDK." examples: @@ -61,7 +65,7 @@ groups: "TableName": "string", "WriteCapacityUnits": number }' - - id: item_collection + - id: item_collection_metrics type: string brief: "The JSON-serialized value of the `ItemCollectionmetrics` response field." examples: @@ -150,7 +154,7 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.createtable brief: DynamoDB.CreateTable @@ -200,7 +204,7 @@ groups: }' - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection + - ref: aws.dynamodb.item_collection_metrics - ref: aws.dynamodb.provisioned_read_capacity - ref: aws.dynamodb.provisioned_write_capacity @@ -211,7 +215,7 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.deletetable brief: DynamoDB.DeleteTable @@ -219,7 +223,7 @@ groups: prefix: aws.dynamodb attributes: - ref: aws.dynamodb.table_names - brief: "A single item with the value of the TableName request parameter." + brief: "A single-element array with the value of the TableName request parameter." - id: dynamodb.describetable brief: DynamoDB.DescribeTable @@ -227,7 +231,7 @@ groups: prefix: aws.dynamodb attributes: - ref: aws.dynamodb.table_names - brief: "A single item with the value of the TableName request parameter." + brief: "A single-element array with the value of the TableName request parameter." - id: dynamodb.getitem brief: DynamoDB.GetItem @@ -235,7 +239,7 @@ groups: prefix: aws.dynamodb attributes: - ref: aws.dynamodb.table_names - brief: "A single item with the value of the TableName request parameter." + brief: "A single-element array with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.projection @@ -265,7 +269,7 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.query brief: DynamoDB.Query @@ -276,7 +280,7 @@ groups: type: boolean brief: "The value of the `ScanIndexForward` request parameter." - ref: aws.dynamodb.table_names - brief: "A single item with the value of the TableName request parameter." + brief: "A single-element array with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.limit @@ -311,7 +315,7 @@ groups: examples: - 50 - ref: aws.dynamodb.table_names - brief: "A single item with the value of the TableName request parameter." + brief: "A single-element array with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.limit @@ -327,7 +331,7 @@ groups: attributes: - ref: aws.dynamodb.table_names - ref: aws.dynamodb.consumed_capacity - - ref: aws.dynamodb.item_collection + - ref: aws.dynamodb.item_collection_metrics - id: dynamodb.updatetable brief: DynamoDB.UpdateTable @@ -365,7 +369,7 @@ groups: } }' - ref: aws.dynamodb.table_names - brief: "A single item with the value of the TableName request parameter." + brief: "A single-element array with the value of the TableName request parameter." - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.provisioned_read_capacity - ref: aws.dynamodb.provisioned_write_capacity diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 4993585838e..6a231683b75 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -16,6 +16,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti |---|---|---|---|---| | [`rpc.method`](../rpc.md) | string | The name of the operation corresponding to the request, as returned by the AWS SDK | `GetItem`; `PutItem` | No | | [`rpc.service`](../rpc.md) | string | The name of the service to which a request is made, as returned by the AWS SDK. | `DynamoDB`; `S3` | No | +| [`rpc.system`](../rpc.md) | string | The value `aws-api`. | `aws-api` | No | ## DynamoDB @@ -35,7 +36,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -47,7 +48,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.global_secondary_indexes` | string[] | The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field | `[{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | | `aws.dynamodb.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | | `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -59,7 +60,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -68,7 +69,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.DescribeTable @@ -76,7 +77,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.GetItem @@ -87,7 +88,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | -| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.ListTables @@ -106,7 +107,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -123,7 +124,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | -| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.Scan @@ -142,7 +143,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | -| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | ### DynamoDB.UpdateItem @@ -151,7 +152,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -165,5 +166,5 @@ Some descriptions are also provided for populating general OpenTelemetry semanti | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | | `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.table_names` | string[] | A single item with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | From 9639b241382d18fdd303ab855a963302da832ffc Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 24 Feb 2021 17:48:28 +0900 Subject: [PATCH 17/27] Don't lose the required --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 1 + .../trace/semantic_conventions/instrumentation/aws-sdk.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 02a0fbaf199..2b09f2386e2 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -12,6 +12,7 @@ groups: attributes: - ref: rpc.system brief: "The value `aws-api`." + required: always examples: - aws-api - ref: rpc.service diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 6a231683b75..87e06b5560d 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -16,7 +16,7 @@ Some descriptions are also provided for populating general OpenTelemetry semanti |---|---|---|---|---| | [`rpc.method`](../rpc.md) | string | The name of the operation corresponding to the request, as returned by the AWS SDK | `GetItem`; `PutItem` | No | | [`rpc.service`](../rpc.md) | string | The name of the service to which a request is made, as returned by the AWS SDK. | `DynamoDB`; `S3` | No | -| [`rpc.system`](../rpc.md) | string | The value `aws-api`. | `aws-api` | No | +| [`rpc.system`](../rpc.md) | string | The value `aws-api`. | `aws-api` | Yes | ## DynamoDB From fe38bb2ad865d8f07b2d19fafe40bc36eb65a317 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 26 Feb 2021 16:14:55 +0900 Subject: [PATCH 18/27] Name --- .../trace/semantic_conventions/instrumentation/aws-sdk.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 87e06b5560d..28b1c1fbbc5 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -11,6 +11,9 @@ Some descriptions are also provided for populating general OpenTelemetry semanti ## Common Attributes +The 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 `.`. + | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| From 1cfae0a9a78722c369e4c744b4dc7f5d887f21b4 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 4 Mar 2021 17:31:40 +0900 Subject: [PATCH 19/27] db.system / operation --- .../trace/instrumentation/aws-sdk.yml | 11 ++++++++++- .../semantic_conventions/instrumentation/aws-sdk.md | 10 +++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 2b09f2386e2..ff5bf40880a 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -31,6 +31,15 @@ groups: prefix: aws.dynamodb brief: "Attributes that exist for multiple DynamoDB request types." attributes: + - ref: db.system + brief: "The value `dynamodb`." + examples: + - dynamodb + - ref: db.operation + brief: "The same value as `rpc.method`." + examples: + - GetItem + - PutItem - id: table_names type: string[] brief: The keys in the `RequestItems` object field in a request operating on multiple tables. @@ -68,7 +77,7 @@ groups: }' - id: item_collection_metrics type: string - brief: "The JSON-serialized value of the `ItemCollectionmetrics` response field." + brief: "The JSON-serialized value of the `ItemCollectionMetrics` response field." examples: - '{ "string" : [ diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 28b1c1fbbc5..1c3d8598014 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -39,7 +39,7 @@ The span name MUST be of the format `Service.Operation` as per the AWS HTTP API, | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -51,7 +51,7 @@ The span name MUST be of the format `Service.Operation` as per the AWS HTTP API, | `aws.dynamodb.global_secondary_indexes` | string[] | The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field | `[{ "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | | `aws.dynamodb.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | | `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -63,7 +63,7 @@ The span name MUST be of the format `Service.Operation` as per the AWS HTTP API, | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -110,7 +110,7 @@ The span name MUST be of the format `Service.Operation` as per the AWS HTTP API, | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -155,7 +155,7 @@ The span name MUST be of the format `Service.Operation` as per the AWS HTTP API, | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionmetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | +| `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | From 4875126a3719d724c8f7e1d948163ccfaa993759 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Mar 2021 11:40:48 +0900 Subject: [PATCH 20/27] Fix db.system --- .../trace/instrumentation/aws-sdk.yml | 12 ++++++++---- .../semantic_conventions/instrumentation/aws-sdk.md | 13 ++++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index ff5bf40880a..9e1e8583211 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -26,15 +26,19 @@ groups: - GetItem - PutItem - - id: dynamodb.shared - extends: aws - prefix: aws.dynamodb - brief: "Attributes that exist for multiple DynamoDB request types." + - id: dynamodb.all + brief: "Attributes always filled for all DynamoDB request types." attributes: - ref: db.system brief: "The value `dynamodb`." examples: - dynamodb + + - id: dynamodb.shared + extends: aws + prefix: aws.dynamodb + brief: "Attributes that exist for multiple DynamoDB request types." + attributes: - ref: db.operation brief: "The same value as `rpc.method`." examples: diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 1c3d8598014..f60004b97a9 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -12,7 +12,8 @@ Some descriptions are also provided for populating general OpenTelemetry semanti ## Common Attributes The 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 `.`. +`S3.ListBuckets`. This is equivalent to concatenating `rpc.service` and `rpc.method` with `.` and consistent +with the naming guidelines for RPC client spans. | Attribute | Type | Description | Examples | Required | @@ -24,6 +25,16 @@ The span name MUST be of the format `Service.Operation` as per the AWS HTTP API, ## DynamoDB +### Common Attributes + +These attributes are filled in for all DynamoDB request types. + + +| Attribute | Type | Description | Examples | Required | +|---|---|---|---|---| +| [`db.system`](../database.md) | string | The value `dynamodb`. | `dynamodb` | No | + + ### DynamoDB.BatchGetItem From bf88561722018a829db523f3bdc9a6f89906bbb1 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Mon, 15 Mar 2021 17:22:58 +0900 Subject: [PATCH 21/27] Required --- semantic_conventions/trace/instrumentation/aws-sdk.yml | 1 + .../trace/semantic_conventions/instrumentation/aws-sdk.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 9e1e8583211..ca5bfc2f4c7 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -31,6 +31,7 @@ groups: attributes: - ref: db.system brief: "The value `dynamodb`." + required: always examples: - dynamodb diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index f60004b97a9..e264da375b5 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -32,7 +32,7 @@ These attributes are filled in for all DynamoDB request types. | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| [`db.system`](../database.md) | string | The value `dynamodb`. | `dynamodb` | No | +| [`db.system`](../database.md) | string | The value `dynamodb`. | `dynamodb` | Yes | ### DynamoDB.BatchGetItem From edbab953eec4b886c2a63c13dd83faec47c378bf Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 19 Mar 2021 11:45:39 +0900 Subject: [PATCH 22/27] Update --- .../trace/instrumentation/aws-sdk.yml | 24 +++++++++---------- .../instrumentation/aws-sdk.md | 24 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index ca5bfc2f4c7..9e5891d23b0 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -110,17 +110,17 @@ groups: ] }' - id: provisioned_read_capacity - type: number + type: double brief: "The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter." examples: - - 1 - - 2 + - 1.0 + - 2.0 - id: provisioned_write_capacity - type: number + type: double brief: "The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter." examples: - - 1 - - 2 + - 1.0 + - 2.0 - id: consistent_read type: boolean brief: "The value of the `ConsistentRead` request parameter." @@ -132,7 +132,7 @@ groups: - Title, Price, Color - Title, Description, RelatedItems, ProductReviews - id: limit - type: number + type: int brief: "The value of the `Limit` request parameter." examples: - 10 @@ -271,7 +271,7 @@ groups: - Users - CatsTable - id: table_count - type: number + type: int brief: "The the number of items in the `TableNames` response parameter." examples: - 20 @@ -310,22 +310,22 @@ groups: prefix: aws.dynamodb attributes: - id: segment - type: number + type: int brief: "The value of the `Segment` request parameter." examples: - 10 - id: total_segments - type: number + type: int brief: "The value of the `TotalSegments` request parameter." examples: - 100 - id: count - type: number + type: int brief: "The value of the `Count` response parameter." examples: - 10 - id: scanned_count - type: number + type: int brief: "The value of the `ScannedCount` response parameter." examples: - 50 diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index e264da375b5..375479db4e3 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -63,8 +63,8 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.local_secondary_indexes` | string[] | The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field. | `[{ "IndexArn": "string", "IndexName": "string", "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }]` | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_read_capacity` | double | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1.0`; `2.0` | No | +| `aws.dynamodb.provisioned_write_capacity` | double | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1.0`; `2.0` | No | | `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | @@ -111,8 +111,8 @@ These attributes are filled in for all DynamoDB request types. | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.exclusive_start_table` | string | The value of the `ExclusiveStartTableName` request parameter. | `Users`; `CatsTable` | No | -| `aws.dynamodb.table_count` | number | The the number of items in the `TableNames` response parameter. | `20` | No | -| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.dynamodb.table_count` | int | The the number of items in the `TableNames` response parameter. | `20` | No | +| `aws.dynamodb.limit` | int | The value of the `Limit` request parameter. | `10` | No | ### DynamoDB.PutItem @@ -135,7 +135,7 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | -| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.dynamodb.limit` | int | The value of the `Limit` request parameter. | `10` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | | `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | @@ -146,15 +146,15 @@ These attributes are filled in for all DynamoDB request types. | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.segment` | number | The value of the `Segment` request parameter. | `10` | No | -| `aws.dynamodb.total_segments` | number | The value of the `TotalSegments` request parameter. | `100` | No | -| `aws.dynamodb.count` | number | The value of the `Count` response parameter. | `10` | No | -| `aws.dynamodb.scanned_count` | number | The value of the `ScannedCount` response parameter. | `50` | No | +| `aws.dynamodb.segment` | int | The value of the `Segment` request parameter. | `10` | No | +| `aws.dynamodb.total_segments` | int | The value of the `TotalSegments` request parameter. | `100` | No | +| `aws.dynamodb.count` | int | The value of the `Count` response parameter. | `10` | No | +| `aws.dynamodb.scanned_count` | int | The value of the `ScannedCount` response parameter. | `50` | No | | `aws.dynamodb.attributes_to_get` | string[] | The value of the `AttributesToGet` request parameter. | `[lives, id]` | No | | `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.index_name` | string | The value of the `IndexName` request parameter. | `name_to_group` | No | -| `aws.dynamodb.limit` | number | The value of the `Limit` request parameter. | `10` | No | +| `aws.dynamodb.limit` | int | The value of the `Limit` request parameter. | `10` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | | `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | @@ -178,7 +178,7 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.attribute_definitions` | string[] | The JSON-serialized value of each item in the `AttributeDefinitions` request field. | `[{ "AttributeName": "string", "AttributeType": "string" }]` | No | | `aws.dynamodb.global_secondary_index_updates` | string[] | The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field. | `[{ "Create": { "IndexName": "string", "KeySchema": [ { "AttributeName": "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { "ReadCapacityUnits": number, "WriteCapacityUnits": number } }]` | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.provisioned_read_capacity` | number | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1`; `2` | No | -| `aws.dynamodb.provisioned_write_capacity` | number | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1`; `2` | No | +| `aws.dynamodb.provisioned_read_capacity` | double | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1.0`; `2.0` | No | +| `aws.dynamodb.provisioned_write_capacity` | double | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1.0`; `2.0` | No | | `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | From 9896037f0414274bc07b330bc1efda1f4a6ba992 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Wed, 24 Mar 2021 09:08:42 +0900 Subject: [PATCH 23/27] CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3789655a73..a90f943d702 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ release. ### Semantic Conventions +- Add semantic conventions for the AWS operations and DynamoDB([#1442](https://github.com/open-telemetry/opentelemetry-specification/pull/1422)) - Update semantic conventions to distinguish between int and double ([#1550](https://github.com/open-telemetry/opentelemetry-specification/pull/1550)) ### Compatibility From 193755f909825d5203e65cb69bf37e52f391af72 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 26 Mar 2021 08:52:28 +0900 Subject: [PATCH 24/27] README --- CHANGELOG.md | 2 +- specification/trace/semantic_conventions/README.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2c353deae5..4d90813259c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,7 +29,7 @@ release. ### Semantic Conventions -- Add semantic conventions for the AWS operations and DynamoDB([#1442](https://github.com/open-telemetry/opentelemetry-specification/pull/1422)) +- Add semantic conventions for AWS SDK operations and DynamoDB ([#1442](https://github.com/open-telemetry/opentelemetry-specification/pull/1422)) - Add details for filling semantic conventions for AWS Lambda ([#1442](https://github.com/open-telemetry/opentelemetry-specification/pull/1442)) - Update semantic conventions to distinguish between int and double ([#1550](https://github.com/open-telemetry/opentelemetry-specification/pull/1550)) diff --git a/specification/trace/semantic_conventions/README.md b/specification/trace/semantic_conventions/README.md index 1b481f2621b..67fe65aeb4e 100644 --- a/specification/trace/semantic_conventions/README.md +++ b/specification/trace/semantic_conventions/README.md @@ -24,6 +24,10 @@ The following semantic conventions for spans are defined: * [AWS Lambda](instrumentation/aws-lambda.md): Details on populating attributes for AWS Lambda. * [Exceptions](exceptions.md): Attributes for recording exceptions associated with a span. +The following instrumentation-specific semantic conventions are defined: + +* [AWS SDK](instrumentation/aws-sdk.md): AWS SDK + Apart from semantic conventions for traces and [metrics](../../metrics/semantic_conventions/README.md), OpenTelemetry also defines the concept of overarching [Resources](../../resource/sdk.md) with their own [Resource Semantic Conventions](../../resource/semantic_conventions/README.md). From 1b5cb8abc62c7a4b376f37d7546689fdc1ce9f34 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 26 Mar 2021 08:54:06 +0900 Subject: [PATCH 25/27] Consistency --- specification/trace/semantic_conventions/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/trace/semantic_conventions/README.md b/specification/trace/semantic_conventions/README.md index 67fe65aeb4e..ce061d78fc9 100644 --- a/specification/trace/semantic_conventions/README.md +++ b/specification/trace/semantic_conventions/README.md @@ -21,11 +21,11 @@ The following semantic conventions for spans are defined: * [RPC/RMI](rpc.md): Spans for remote procedure calls (e.g., gRPC). * [Messaging](messaging.md): Spans for interaction with messaging systems (queues, publish/subscribe, etc.). * [FaaS](faas.md): Spans for Function as a Service (e.g., AWS Lambda). - * [AWS Lambda](instrumentation/aws-lambda.md): Details on populating attributes for AWS Lambda. * [Exceptions](exceptions.md): Attributes for recording exceptions associated with a span. The following instrumentation-specific semantic conventions are defined: +* [AWS Lambda](instrumentation/aws-lambda.md): AWS Lambda * [AWS SDK](instrumentation/aws-sdk.md): AWS SDK Apart from semantic conventions for traces and [metrics](../../metrics/semantic_conventions/README.md), From 582e0656db3e6debc9e9d97f4fac26bc838bfde9 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 26 Mar 2021 22:41:50 +0900 Subject: [PATCH 26/27] Update CHANGELOG.md Co-authored-by: Armin Ruech --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d90813259c..75b96b81655 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,7 +29,7 @@ release. ### Semantic Conventions -- Add semantic conventions for AWS SDK operations and DynamoDB ([#1442](https://github.com/open-telemetry/opentelemetry-specification/pull/1422)) +- Add semantic conventions for AWS SDK operations and DynamoDB ([#1422](https://github.com/open-telemetry/opentelemetry-specification/pull/1422)) - Add details for filling semantic conventions for AWS Lambda ([#1442](https://github.com/open-telemetry/opentelemetry-specification/pull/1442)) - Update semantic conventions to distinguish between int and double ([#1550](https://github.com/open-telemetry/opentelemetry-specification/pull/1550)) From 2b10583f3d498a14f16cfab4b55648552605267a Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Sat, 27 Mar 2021 16:13:11 +0900 Subject: [PATCH 27/27] Fix table_name --- .../trace/instrumentation/aws-sdk.yml | 23 +++++++++++++++++- .../trace/semantic_conventions/README.md | 2 +- .../instrumentation/aws-sdk.md | 24 +++++++++---------- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/semantic_conventions/trace/instrumentation/aws-sdk.yml b/semantic_conventions/trace/instrumentation/aws-sdk.yml index 9e5891d23b0..35abe1f70c7 100644 --- a/semantic_conventions/trace/instrumentation/aws-sdk.yml +++ b/semantic_conventions/trace/instrumentation/aws-sdk.yml @@ -47,7 +47,7 @@ groups: - PutItem - id: table_names type: string[] - brief: The keys in the `RequestItems` object field in a request operating on multiple tables. + brief: The keys in the `RequestItems` object field. examples: - Users - Cats @@ -218,6 +218,9 @@ groups: } }' - ref: aws.dynamodb.table_names + brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.item_collection_metrics - ref: aws.dynamodb.provisioned_read_capacity @@ -229,6 +232,9 @@ groups: prefix: aws.dynamodb attributes: - ref: aws.dynamodb.table_names + brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.item_collection_metrics @@ -239,6 +245,8 @@ groups: attributes: - ref: aws.dynamodb.table_names brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - id: dynamodb.describetable brief: DynamoDB.DescribeTable @@ -247,6 +255,8 @@ groups: attributes: - ref: aws.dynamodb.table_names brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - id: dynamodb.getitem brief: DynamoDB.GetItem @@ -255,6 +265,8 @@ groups: attributes: - ref: aws.dynamodb.table_names brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.projection @@ -296,6 +308,8 @@ groups: brief: "The value of the `ScanIndexForward` request parameter." - ref: aws.dynamodb.table_names brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.limit @@ -331,6 +345,8 @@ groups: - 50 - ref: aws.dynamodb.table_names brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.consistent_read - ref: aws.dynamodb.limit @@ -345,6 +361,9 @@ groups: prefix: aws.dynamodb attributes: - ref: aws.dynamodb.table_names + brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.item_collection_metrics @@ -385,6 +404,8 @@ groups: }' - ref: aws.dynamodb.table_names brief: "A single-element array with the value of the TableName request parameter." + examples: + - Users - ref: aws.dynamodb.consumed_capacity - ref: aws.dynamodb.provisioned_read_capacity - ref: aws.dynamodb.provisioned_write_capacity diff --git a/specification/trace/semantic_conventions/README.md b/specification/trace/semantic_conventions/README.md index ce061d78fc9..3c7092d8ba5 100644 --- a/specification/trace/semantic_conventions/README.md +++ b/specification/trace/semantic_conventions/README.md @@ -23,7 +23,7 @@ The following semantic conventions for spans are defined: * [FaaS](faas.md): Spans for Function as a Service (e.g., AWS Lambda). * [Exceptions](exceptions.md): Attributes for recording exceptions associated with a span. -The following instrumentation-specific semantic conventions are defined: +The following library-specific semantic conventions are defined: * [AWS Lambda](instrumentation/aws-lambda.md): AWS Lambda * [AWS SDK](instrumentation/aws-sdk.md): AWS SDK diff --git a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md index 375479db4e3..01b8dd580b3 100644 --- a/specification/trace/semantic_conventions/instrumentation/aws-sdk.md +++ b/specification/trace/semantic_conventions/instrumentation/aws-sdk.md @@ -41,7 +41,7 @@ These attributes are filled in for all DynamoDB request types. | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field. | `[Users, Cats]` | No | ### DynamoDB.BatchWriteItem @@ -51,7 +51,7 @@ These attributes are filled in for all DynamoDB request types. |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field. | `[Users, Cats]` | No | ### DynamoDB.CreateTable @@ -65,7 +65,7 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | | `aws.dynamodb.provisioned_read_capacity` | double | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1.0`; `2.0` | No | | `aws.dynamodb.provisioned_write_capacity` | double | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1.0`; `2.0` | No | -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.DeleteItem @@ -75,7 +75,7 @@ These attributes are filled in for all DynamoDB request types. |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.DeleteTable @@ -83,7 +83,7 @@ These attributes are filled in for all DynamoDB request types. | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.DescribeTable @@ -91,7 +91,7 @@ These attributes are filled in for all DynamoDB request types. | Attribute | Type | Description | Examples | Required | |---|---|---|---|---| -| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.GetItem @@ -102,7 +102,7 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.consistent_read` | boolean | The value of the `ConsistentRead` request parameter. | | No | | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | -| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.ListTables @@ -122,7 +122,7 @@ These attributes are filled in for all DynamoDB request types. |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field. | `[Users, Cats]` | No | ### DynamoDB.Query @@ -138,7 +138,7 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.limit` | int | The value of the `Limit` request parameter. | `10` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | -| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.Scan @@ -157,7 +157,7 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.limit` | int | The value of the `Limit` request parameter. | `10` | No | | `aws.dynamodb.projection` | string | The value of the `ProjectionExpression` request parameter. | `Title`; `Title, Price, Color`; `Title, Description, RelatedItems, ProductReviews` | No | | `aws.dynamodb.select` | string | The value of the `Select` request parameter. | `ALL_ATTRIBUTES`; `COUNT` | No | -| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.UpdateItem @@ -167,7 +167,7 @@ These attributes are filled in for all DynamoDB request types. |---|---|---|---|---| | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.item_collection_metrics` | string | The JSON-serialized value of the `ItemCollectionMetrics` response field. | `{ "string" : [ { "ItemCollectionKey": { "string" : { "B": blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], "NULL": boolean, "S": "string", "SS": [ "string" ] } }, "SizeEstimateRangeGB": [ number ] } ] }` | No | -| `aws.dynamodb.table_names` | string[] | The keys in the `RequestItems` object field in a request operating on multiple tables. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No | ### DynamoDB.UpdateTable @@ -180,5 +180,5 @@ These attributes are filled in for all DynamoDB request types. | `aws.dynamodb.consumed_capacity` | string[] | The JSON-serialized value of each item in the `ConsumedCapacity` response field. | `[{ "CapacityUnits": number, "GlobalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": { "CapacityUnits": number, "ReadCapacityUnits": number, "WriteCapacityUnits": number }, "TableName": "string", "WriteCapacityUnits": number }]` | No | | `aws.dynamodb.provisioned_read_capacity` | double | The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter. | `1.0`; `2.0` | No | | `aws.dynamodb.provisioned_write_capacity` | double | The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter. | `1.0`; `2.0` | No | -| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users, Cats]` | No | +| `aws.dynamodb.table_names` | string[] | A single-element array with the value of the TableName request parameter. | `[Users]` | No |