Semantic conventions for AWS SDK

Status: Experimental

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

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 . and consistent with the naming guidelines for RPC client spans.

AttributeTypeDescriptionExamplesRequirement Level
rpc.methodstringThe name of the operation corresponding to the request, as returned by the AWS SDK [1]GetItem; PutItemRecommended
rpc.servicestringThe name of the service to which a request is made, as returned by the AWS SDK. [2]DynamoDB; S3Recommended
rpc.systemstringThe value aws-api.aws-apiRequired

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

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

DynamoDB

Common Attributes

These attributes are filled in for all DynamoDB request types.

AttributeTypeDescriptionExamplesRequirement Level
db.systemstringThe value dynamodb.dynamodbRequired

DynamoDB.BatchGetItem

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.table_namesstring[]The keys in the RequestItems object field.[Users, Cats]Recommended

DynamoDB.BatchWriteItem

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.item_collection_metricsstringThe 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 ] } ] }Recommended
aws.dynamodb.table_namesstring[]The keys in the RequestItems object field.[Users, Cats]Recommended

DynamoDB.CreateTable

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.global_secondary_indexesstring[]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 } }]Recommended
aws.dynamodb.local_secondary_indexesstring[]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" } }]Recommended
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.item_collection_metricsstringThe 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 ] } ] }Recommended
aws.dynamodb.provisioned_read_capacitydoubleThe value of the ProvisionedThroughput.ReadCapacityUnits request parameter.1.0; 2.0Recommended
aws.dynamodb.provisioned_write_capacitydoubleThe value of the ProvisionedThroughput.WriteCapacityUnits request parameter.1.0; 2.0Recommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.DeleteItem

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.item_collection_metricsstringThe 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 ] } ] }Recommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.DeleteTable

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.DescribeTable

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.GetItem

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.consistent_readbooleanThe value of the ConsistentRead request parameter.Recommended
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.projectionstringThe value of the ProjectionExpression request parameter.Title; Title, Price, Color; Title, Description, RelatedItems, ProductReviewsRecommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.ListTables

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.exclusive_start_tablestringThe value of the ExclusiveStartTableName request parameter.Users; CatsTableRecommended
aws.dynamodb.table_countintThe the number of items in the TableNames response parameter.20Recommended
aws.dynamodb.limitintThe value of the Limit request parameter.10Recommended

DynamoDB.PutItem

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.item_collection_metricsstringThe 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 ] } ] }Recommended
aws.dynamodb.table_namesstring[]The keys in the RequestItems object field.[Users, Cats]Recommended

DynamoDB.Query

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.scan_forwardbooleanThe value of the ScanIndexForward request parameter.Recommended
aws.dynamodb.attributes_to_getstring[]The value of the AttributesToGet request parameter.[lives, id]Recommended
aws.dynamodb.consistent_readbooleanThe value of the ConsistentRead request parameter.Recommended
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.index_namestringThe value of the IndexName request parameter.name_to_groupRecommended
aws.dynamodb.limitintThe value of the Limit request parameter.10Recommended
aws.dynamodb.projectionstringThe value of the ProjectionExpression request parameter.Title; Title, Price, Color; Title, Description, RelatedItems, ProductReviewsRecommended
aws.dynamodb.selectstringThe value of the Select request parameter.ALL_ATTRIBUTES; COUNTRecommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.Scan

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.segmentintThe value of the Segment request parameter.10Recommended
aws.dynamodb.total_segmentsintThe value of the TotalSegments request parameter.100Recommended
aws.dynamodb.countintThe value of the Count response parameter.10Recommended
aws.dynamodb.scanned_countintThe value of the ScannedCount response parameter.50Recommended
aws.dynamodb.attributes_to_getstring[]The value of the AttributesToGet request parameter.[lives, id]Recommended
aws.dynamodb.consistent_readbooleanThe value of the ConsistentRead request parameter.Recommended
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.index_namestringThe value of the IndexName request parameter.name_to_groupRecommended
aws.dynamodb.limitintThe value of the Limit request parameter.10Recommended
aws.dynamodb.projectionstringThe value of the ProjectionExpression request parameter.Title; Title, Price, Color; Title, Description, RelatedItems, ProductReviewsRecommended
aws.dynamodb.selectstringThe value of the Select request parameter.ALL_ATTRIBUTES; COUNTRecommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.UpdateItem

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.item_collection_metricsstringThe 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 ] } ] }Recommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended

DynamoDB.UpdateTable

AttributeTypeDescriptionExamplesRequirement Level
aws.dynamodb.attribute_definitionsstring[]The JSON-serialized value of each item in the AttributeDefinitions request field.[{ "AttributeName": "string", "AttributeType": "string" }]Recommended
aws.dynamodb.global_secondary_index_updatesstring[]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 } }]Recommended
aws.dynamodb.consumed_capacitystring[]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 }]Recommended
aws.dynamodb.provisioned_read_capacitydoubleThe value of the ProvisionedThroughput.ReadCapacityUnits request parameter.1.0; 2.0Recommended
aws.dynamodb.provisioned_write_capacitydoubleThe value of the ProvisionedThroughput.WriteCapacityUnits request parameter.1.0; 2.0Recommended
aws.dynamodb.table_namesstring[]A single-element array with the value of the TableName request parameter.[Users]Recommended