FEATURE_FLAG_PROVIDER_NAME =
- stringKey("feature_flag.provider_name");
-
- /**
- * SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of
- * the value can be used.
+ * SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of
+ * the value can be used.
*
* Notes:
*
@@ -777,182 +1055,39 @@ public final class SemanticAttributes {
*/
public static final AttributeKey FEATURE_FLAG_VARIANT = stringKey("feature_flag.variant");
- /**
- * OSI Transport Layer or Inter-process Communication
- * method. The value SHOULD be normalized to lowercase.
- */
- public static final AttributeKey NETWORK_TRANSPORT = stringKey("network.transport");
-
- /**
- * OSI Network Layer or non-OSI equivalent. The
- * value SHOULD be normalized to lowercase.
- */
- public static final AttributeKey NETWORK_TYPE = stringKey("network.type");
-
- /**
- * OSI Application Layer or non-OSI
- * equivalent. The value SHOULD be normalized to lowercase.
- */
- public static final AttributeKey NETWORK_PROTOCOL_NAME =
- stringKey("network.protocol.name");
-
- /**
- * Version of the application layer protocol used. See note below.
- *
- * Notes:
- *
- *
- * - {@code network.protocol.version} refers to the version of the protocol used and might be
- * different from the protocol client's version. If the HTTP client used has a version of
- * {@code 0.27.2}, but sends HTTP version {@code 1.1}, this attribute should be set to
- * {@code 1.1}.
- *
- */
- public static final AttributeKey NETWORK_PROTOCOL_VERSION =
- stringKey("network.protocol.version");
-
- /** The internet connection type. */
- public static final AttributeKey NETWORK_CONNECTION_TYPE =
- stringKey("network.connection.type");
-
- /**
- * This describes more details regarding the connection.type. It may be the type of cell
- * technology connection, but it could be used for describing details about a wifi connection.
- */
- public static final AttributeKey NETWORK_CONNECTION_SUBTYPE =
- stringKey("network.connection.subtype");
-
- /** The name of the mobile carrier. */
- public static final AttributeKey NETWORK_CARRIER_NAME = stringKey("network.carrier.name");
-
- /** The mobile carrier country code. */
- public static final AttributeKey NETWORK_CARRIER_MCC = stringKey("network.carrier.mcc");
-
- /** The mobile carrier network code. */
- public static final AttributeKey NETWORK_CARRIER_MNC = stringKey("network.carrier.mnc");
-
- /** The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network. */
- public static final AttributeKey NETWORK_CARRIER_ICC = stringKey("network.carrier.icc");
-
- /**
- * The {@code service.name} of the remote service.
- * SHOULD be equal to the actual {@code service.name} resource attribute of the remote service if
- * any.
- */
- public static final AttributeKey PEER_SERVICE = stringKey("peer.service");
-
- /**
- * Username or client_id extracted from the access token or Authorization header in the inbound
- * request from outside the system.
- */
- public static final AttributeKey ENDUSER_ID = stringKey("enduser.id");
-
- /**
- * Actual/assumed role the client is making the request under extracted from token or application
- * security context.
- */
- public static final AttributeKey ENDUSER_ROLE = stringKey("enduser.role");
-
- /**
- * Scopes or granted authorities the client currently possesses extracted from token or
- * application security context. The value would come from the scope associated with an OAuth 2.0 Access Token or an
- * attribute value in a SAML
- * 2.0 Assertion.
- */
- public static final AttributeKey ENDUSER_SCOPE = stringKey("enduser.scope");
-
- /** Current "managed" thread ID (as opposed to OS thread ID). */
- public static final AttributeKey THREAD_ID = longKey("thread.id");
-
- /** Current thread name. */
- public static final AttributeKey THREAD_NAME = stringKey("thread.name");
-
- /**
- * The method or function name, or equivalent (usually rightmost part of the code unit's name).
- */
- public static final AttributeKey CODE_FUNCTION = stringKey("code.function");
-
- /**
- * The "namespace" within which {@code code.function} is defined. Usually the qualified
- * class or module name, such that {@code code.namespace} + some separator + {@code code.function}
- * form a unique identifier for the code unit.
- */
- public static final AttributeKey CODE_NAMESPACE = stringKey("code.namespace");
-
- /**
- * The source code file name that identifies the code unit as uniquely as possible (preferably an
- * absolute file path).
- */
- public static final AttributeKey CODE_FILEPATH = stringKey("code.filepath");
-
- /**
- * The line number in {@code code.filepath} best representing the operation. It SHOULD point
- * within the code unit named in {@code code.function}.
- */
- public static final AttributeKey CODE_LINENO = longKey("code.lineno");
-
- /**
- * The column number in {@code code.filepath} best representing the operation. It SHOULD point
- * within the code unit named in {@code code.function}.
- */
- public static final AttributeKey CODE_COLUMN = longKey("code.column");
-
- /** Original HTTP method sent by the client in the request line. */
- public static final AttributeKey HTTP_REQUEST_METHOD_ORIGINAL =
- stringKey("http.request.method_original");
-
- /**
- * The size of the request payload body in bytes. This is the number of bytes transferred
- * excluding headers and is often, but not always, present as the Content-Length
- * header. For requests using transport encoding, this should be the compressed size.
- */
- public static final AttributeKey HTTP_REQUEST_BODY_SIZE = longKey("http.request.body.size");
-
- /**
- * The size of the response payload body in bytes. This is the number of bytes transferred
- * excluding headers and is often, but not always, present as the Content-Length
- * header. For requests using transport encoding, this should be the compressed size.
- */
- public static final AttributeKey HTTP_RESPONSE_BODY_SIZE =
- longKey("http.response.body.size");
-
- /**
- * The ordinal number of request resending attempt (for any reason, including redirects).
- *
- * Notes:
- *
- *
- * - The resend count SHOULD be updated each time an HTTP request gets resent by the client,
- * regardless of what was the cause of the resending (e.g. redirection, authorization
- * failure, 503 Server Unavailable, network issues, or any other).
- *
- */
- public static final AttributeKey HTTP_RESEND_COUNT = longKey("http.resend_count");
-
/**
* The AWS request ID as returned in the response headers {@code x-amz-request-id} or {@code
* x-amz-requestid}.
*/
public static final AttributeKey AWS_REQUEST_ID = stringKey("aws.request_id");
- /** The keys in the {@code RequestItems} object field. */
- public static final AttributeKey> AWS_DYNAMODB_TABLE_NAMES =
- stringArrayKey("aws.dynamodb.table_names");
+ /** The value of the {@code AttributesToGet} request parameter. */
+ public static final AttributeKey> AWS_DYNAMODB_ATTRIBUTES_TO_GET =
+ stringArrayKey("aws.dynamodb.attributes_to_get");
+
+ /** The value of the {@code ConsistentRead} request parameter. */
+ public static final AttributeKey AWS_DYNAMODB_CONSISTENT_READ =
+ booleanKey("aws.dynamodb.consistent_read");
/** The JSON-serialized value of each item in the {@code ConsumedCapacity} response field. */
public static final AttributeKey> AWS_DYNAMODB_CONSUMED_CAPACITY =
stringArrayKey("aws.dynamodb.consumed_capacity");
+ /** The value of the {@code IndexName} request parameter. */
+ public static final AttributeKey AWS_DYNAMODB_INDEX_NAME =
+ stringKey("aws.dynamodb.index_name");
+
/** The JSON-serialized value of the {@code ItemCollectionMetrics} response field. */
public static final AttributeKey AWS_DYNAMODB_ITEM_COLLECTION_METRICS =
stringKey("aws.dynamodb.item_collection_metrics");
+ /** The value of the {@code Limit} request parameter. */
+ public static final AttributeKey AWS_DYNAMODB_LIMIT = longKey("aws.dynamodb.limit");
+
+ /** The value of the {@code ProjectionExpression} request parameter. */
+ public static final AttributeKey AWS_DYNAMODB_PROJECTION =
+ stringKey("aws.dynamodb.projection");
+
/** The value of the {@code ProvisionedThroughput.ReadCapacityUnits} request parameter. */
public static final AttributeKey AWS_DYNAMODB_PROVISIONED_READ_CAPACITY =
doubleKey("aws.dynamodb.provisioned_read_capacity");
@@ -961,28 +1096,13 @@ public final class SemanticAttributes {
public static final AttributeKey AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY =
doubleKey("aws.dynamodb.provisioned_write_capacity");
- /** The value of the {@code ConsistentRead} request parameter. */
- public static final AttributeKey AWS_DYNAMODB_CONSISTENT_READ =
- booleanKey("aws.dynamodb.consistent_read");
-
- /** The value of the {@code ProjectionExpression} request parameter. */
- public static final AttributeKey AWS_DYNAMODB_PROJECTION =
- stringKey("aws.dynamodb.projection");
-
- /** The value of the {@code Limit} request parameter. */
- public static final AttributeKey AWS_DYNAMODB_LIMIT = longKey("aws.dynamodb.limit");
-
- /** The value of the {@code AttributesToGet} request parameter. */
- public static final AttributeKey> AWS_DYNAMODB_ATTRIBUTES_TO_GET =
- stringArrayKey("aws.dynamodb.attributes_to_get");
-
- /** The value of the {@code IndexName} request parameter. */
- public static final AttributeKey AWS_DYNAMODB_INDEX_NAME =
- stringKey("aws.dynamodb.index_name");
-
/** The value of the {@code Select} request parameter. */
public static final AttributeKey AWS_DYNAMODB_SELECT = stringKey("aws.dynamodb.select");
+ /** The keys in the {@code RequestItems} object field. */
+ public static final AttributeKey> AWS_DYNAMODB_TABLE_NAMES =
+ stringArrayKey("aws.dynamodb.table_names");
+
/** The JSON-serialized value of each item of the {@code GlobalSecondaryIndexes} request field */
public static final AttributeKey> AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES =
stringArrayKey("aws.dynamodb.global_secondary_indexes");
@@ -1003,13 +1123,6 @@ public final class SemanticAttributes {
public static final AttributeKey AWS_DYNAMODB_SCAN_FORWARD =
booleanKey("aws.dynamodb.scan_forward");
- /** The value of the {@code Segment} request parameter. */
- public static final AttributeKey AWS_DYNAMODB_SEGMENT = longKey("aws.dynamodb.segment");
-
- /** The value of the {@code TotalSegments} request parameter. */
- public static final AttributeKey AWS_DYNAMODB_TOTAL_SEGMENTS =
- longKey("aws.dynamodb.total_segments");
-
/** The value of the {@code Count} response parameter. */
public static final AttributeKey AWS_DYNAMODB_COUNT = longKey("aws.dynamodb.count");
@@ -1017,6 +1130,13 @@ public final class SemanticAttributes {
public static final AttributeKey AWS_DYNAMODB_SCANNED_COUNT =
longKey("aws.dynamodb.scanned_count");
+ /** The value of the {@code Segment} request parameter. */
+ public static final AttributeKey AWS_DYNAMODB_SEGMENT = longKey("aws.dynamodb.segment");
+
+ /** The value of the {@code TotalSegments} request parameter. */
+ public static final AttributeKey AWS_DYNAMODB_TOTAL_SEGMENTS =
+ longKey("aws.dynamodb.total_segments");
+
/** The JSON-serialized value of each item in the {@code AttributeDefinitions} request field. */
public static final AttributeKey> AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS =
stringArrayKey("aws.dynamodb.attribute_definitions");
@@ -1044,15 +1164,49 @@ public final class SemanticAttributes {
public static final AttributeKey AWS_S3_BUCKET = stringKey("aws.s3.bucket");
/**
- * The S3 object key the request refers to. Corresponds to the {@code --key} parameter of the S3 API operations.
+ * The source object (in the form {@code bucket}/{@code key}) for the copy operation.
*
* Notes:
*
*
- * - The {@code key} attribute is applicable to all object-related S3 operations, i.e. that
- * require the object key as a mandatory parameter. This applies in particular to the
- * following operations:
+ *
- The {@code copy_source} attribute applies to S3 copy operations and corresponds to the
+ * {@code --copy-source} parameter of the copy-object
+ * operation within the S3 API. This applies in particular to the following operations:
+ *
- copy-object
+ *
- upload-part-copy
+ *
+ */
+ public static final AttributeKey AWS_S3_COPY_SOURCE = stringKey("aws.s3.copy_source");
+
+ /**
+ * The delete request container that specifies the objects to be deleted.
+ *
+ * Notes:
+ *
+ *
+ */
+ public static final AttributeKey AWS_S3_DELETE = stringKey("aws.s3.delete");
+
+ /**
+ * The S3 object key the request refers to. Corresponds to the {@code --key} parameter of the S3 API operations.
+ *
+ * Notes:
+ *
+ *
+ * - The {@code key} attribute is applicable to all object-related S3 operations, i.e. that
+ * require the object key as a mandatory parameter. This applies in particular to the
+ * following operations:
*
- copy-object
*
- AWS_S3_KEY = stringKey("aws.s3.key");
/**
- * The source object (in the form {@code bucket}/{@code key}) for the copy operation.
+ * The part number of the part being uploaded in a multipart-upload operation. This is a positive
+ * integer between 1 and 10,000.
*
*
Notes:
*
*
*/
- public static final AttributeKey AWS_S3_COPY_SOURCE = stringKey("aws.s3.copy_source");
+ public static final AttributeKey AWS_S3_PART_NUMBER = longKey("aws.s3.part_number");
/**
* Upload ID that identifies the multipart upload.
@@ -1126,39 +1281,15 @@ public final class SemanticAttributes {
public static final AttributeKey AWS_S3_UPLOAD_ID = stringKey("aws.s3.upload_id");
/**
- * The delete request container that specifies the objects to be deleted.
- *
- * Notes:
- *
- *
- */
- public static final AttributeKey AWS_S3_DELETE = stringKey("aws.s3.delete");
-
- /**
- * The part number of the part being uploaded in a multipart-upload operation. This is a positive
- * integer between 1 and 10,000.
+ * The GraphQL document being executed.
*
* Notes:
*
*
*/
- public static final AttributeKey AWS_S3_PART_NUMBER = longKey("aws.s3.part_number");
+ public static final AttributeKey GRAPHQL_DOCUMENT = stringKey("graphql.document");
/** The name of the operation being executed. */
public static final AttributeKey GRAPHQL_OPERATION_NAME =
@@ -1169,20 +1300,17 @@ public final class SemanticAttributes {
stringKey("graphql.operation.type");
/**
- * The GraphQL document being executed.
+ * The size of the message body in bytes.
*
* Notes:
*
*
- * - The value may be sanitized to exclude sensitive information.
+ *
- This can refer to both the compressed or uncompressed body size. If both sizes are known,
+ * the uncompressed body size should be used.
*
*/
- public static final AttributeKey GRAPHQL_DOCUMENT = stringKey("graphql.document");
-
- /**
- * A value used by the messaging system as an identifier for the message, represented as a string.
- */
- public static final AttributeKey MESSAGING_MESSAGE_ID = stringKey("messaging.message.id");
+ public static final AttributeKey MESSAGING_MESSAGE_BODY_SIZE =
+ longKey("messaging.message.body.size");
/**
* The conversation ID identifying the conversation to which the
@@ -1192,15 +1320,29 @@ public final class SemanticAttributes {
stringKey("messaging.message.conversation_id");
/**
- * The (uncompressed) size of the message payload in bytes. Also use this attribute if it is
- * unknown whether the compressed or uncompressed payload size is reported.
+ * The size of the message body and metadata in bytes.
+ *
+ * Notes:
+ *
+ *
+ * - This can refer to both the compressed or uncompressed size. If both sizes are known, the
+ * uncompressed size should be used.
+ *
+ */
+ public static final AttributeKey MESSAGING_MESSAGE_ENVELOPE_SIZE =
+ longKey("messaging.message.envelope.size");
+
+ /**
+ * A value used by the messaging system as an identifier for the message, represented as a string.
*/
- public static final AttributeKey MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES =
- longKey("messaging.message.payload_size_bytes");
+ public static final AttributeKey MESSAGING_MESSAGE_ID = stringKey("messaging.message.id");
- /** The compressed size of the message payload in bytes. */
- public static final AttributeKey MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES =
- longKey("messaging.message.payload_compressed_size_bytes");
+ /**
+ * A boolean that is true if the message destination is anonymous (could be unnamed or have
+ * auto-generated name).
+ */
+ public static final AttributeKey MESSAGING_DESTINATION_ANONYMOUS =
+ booleanKey("messaging.destination.anonymous");
/**
* The message destination name
@@ -1239,26 +1381,25 @@ public final class SemanticAttributes {
booleanKey("messaging.destination.temporary");
/**
- * A boolean that is true if the message destination is anonymous (could be unnamed or have
- * auto-generated name).
+ * A boolean that is true if the publish message destination is anonymous (could be unnamed or
+ * have auto-generated name).
*/
- public static final AttributeKey MESSAGING_DESTINATION_ANONYMOUS =
- booleanKey("messaging.destination.anonymous");
-
- /** A string identifying the messaging system. */
- public static final AttributeKey MESSAGING_SYSTEM = stringKey("messaging.system");
+ public static final AttributeKey MESSAGING_DESTINATION_PUBLISH_ANONYMOUS =
+ booleanKey("messaging.destination_publish.anonymous");
/**
- * A string identifying the kind of messaging operation as defined in the Operation names section above.
+ * The name of the original destination the message was published to
*
* Notes:
*
*
- * - If a custom value is used, it MUST be of low cardinality.
+ *
- The name SHOULD uniquely identify a specific queue, topic, or other entity within the
+ * broker. If the broker does not have such notion, the original destination name SHOULD
+ * uniquely identify the broker.
*
*/
- public static final AttributeKey MESSAGING_OPERATION = stringKey("messaging.operation");
+ public static final AttributeKey MESSAGING_DESTINATION_PUBLISH_NAME =
+ stringKey("messaging.destination_publish.name");
/**
* The number of messages sent, received, or processed in the scope of the batching operation.
@@ -1279,24 +1420,24 @@ public final class SemanticAttributes {
/** A unique identifier for the client that consumes or produces a message. */
public static final AttributeKey MESSAGING_CLIENT_ID = stringKey("messaging.client_id");
- /** RabbitMQ message routing key. */
- public static final AttributeKey MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY =
- stringKey("messaging.rabbitmq.destination.routing_key");
-
/**
- * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the
- * same partition. They differ from {@code messaging.message.id} in that they're not unique. If
- * the key is {@code null}, the attribute MUST NOT be set.
+ * A string identifying the kind of messaging operation as defined in the