diff --git a/api/include/opentelemetry/trace/semantic_conventions.h b/api/include/opentelemetry/trace/semantic_conventions.h
index ba783e2333..a9290bff44 100644
--- a/api/include/opentelemetry/trace/semantic_conventions.h
+++ b/api/include/opentelemetry/trace/semantic_conventions.h
@@ -22,89 +22,14 @@ namespace SemanticConventions
/**
* The URL of the OpenTelemetry schema for these keys and values.
*/
-static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.25.0";
+static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.26.0";
/**
- * Identifies the class / type of event.
- *
- *
Notes:
-
- Event names are subject to the same rules as attribute
- names. Notably, event names are namespaced to avoid collisions and provide a clean separation
- of semantics for events in separate domains like browser, mobile, and kubernetes.
- */
-static constexpr const char *kEventName = "event.name";
-
-/**
- * A unique identifier for the Log Record.
- *
- * Notes:
-
- If an id is provided, other log records with the same id will be considered duplicates
-and can be removed safely. This means, that two distinguishable log records MUST have different
-values. The id MAY be an Universally Unique Lexicographically
-Sortable Identifier (ULID), but other identifiers (e.g. UUID) may be used as needed.
- */
-static constexpr const char *kLogRecordUid = "log.record.uid";
-
-/**
- * The stream associated with the log. See below for a list of well-known values.
- */
-static constexpr const char *kLogIostream = "log.iostream";
-
-/**
- * The basename of the file.
- */
-static constexpr const char *kLogFileName = "log.file.name";
-
-/**
- * The basename of the file, with symlinks resolved.
- */
-static constexpr const char *kLogFileNameResolved = "log.file.name_resolved";
-
-/**
- * The full path to the file.
- */
-static constexpr const char *kLogFilePath = "log.file.path";
-
-/**
- * The full path to the file, with symlinks resolved.
- */
-static constexpr const char *kLogFilePathResolved = "log.file.path_resolved";
-
-/**
- * This attribute represents the state the application has transitioned into at the occurrence of
- the event.
- *
- * Notes:
-
- */
-static constexpr const char *kIosState = "ios.state";
-
-/**
- * This attribute represents the state the application has transitioned into at the occurrence of
- the event.
- *
- * Notes:
-
- */
-static constexpr const char *kAndroidState = "android.state";
-
-/**
- * The name of the connection pool; unique within the instrumented application. In case the
- * connection pool implementation doesn't provide a name, instrumentation should use a combination
- * of {@code server.address} and {@code server.port} attributes formatted as {@code
- * server.address:server.port}.
- */
-static constexpr const char *kPoolName = "pool.name";
-
-/**
- * The state of a connection in the pool
+ * Uniquely identifies the framework API revision offered by a version ({@code os.version}) of the
+ * android operating system. More information can be found here.
*/
-static constexpr const char *kState = "state";
+static constexpr const char *kAndroidOsApiLevel = "android.os.api_level";
/**
* Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
@@ -119,6 +44,12 @@ static constexpr const char *kAspnetcoreRateLimitingResult = "aspnetcore.rate_li
static constexpr const char *kAspnetcoreDiagnosticsHandlerType =
"aspnetcore.diagnostics.handler.type";
+/**
+ * ASP.NET Core exception middleware handling result
+ */
+static constexpr const char *kAspnetcoreDiagnosticsExceptionResult =
+ "aspnetcore.diagnostics.exception.result";
+
/**
* Rate limiting policy name.
*/
@@ -135,122 +66,15 @@ static constexpr const char *kAspnetcoreRequestIsUnhandled = "aspnetcore.request
static constexpr const char *kAspnetcoreRoutingIsFallback = "aspnetcore.routing.is_fallback";
/**
- * SignalR HTTP connection closure status.
- */
-static constexpr const char *kSignalrConnectionStatus = "signalr.connection.status";
-
-/**
- * SignalR
- * transport type
- */
-static constexpr const char *kSignalrTransport = "signalr.transport";
-
-/**
- * Name of the buffer pool.
- *
- * Notes:
-
- */
-static constexpr const char *kJvmBufferPoolName = "jvm.buffer.pool.name";
-
-/**
- * Name of the memory pool.
- *
- * Notes:
-
- */
-static constexpr const char *kJvmMemoryPoolName = "jvm.memory.pool.name";
-
-/**
- * The type of memory.
- */
-static constexpr const char *kJvmMemoryType = "jvm.memory.type";
-
-/**
- * The CPU state for this data point. A process SHOULD be characterized either by data
- * points with no {@code state} labels, or only data points with {@code state} labels.
- */
-static constexpr const char *kProcessCpuState = "process.cpu.state";
-
-/**
- * The device identifier
- */
-static constexpr const char *kSystemDevice = "system.device";
-
-/**
- * The logical CPU number [0..n-1]
- */
-static constexpr const char *kSystemCpuLogicalNumber = "system.cpu.logical_number";
-
-/**
- * The CPU state for this data point. A system's CPU SHOULD be characterized either by data
- * points with no {@code state} labels, or only data points with {@code state} labels.
- */
-static constexpr const char *kSystemCpuState = "system.cpu.state";
-
-/**
- * The memory state
- */
-static constexpr const char *kSystemMemoryState = "system.memory.state";
-
-/**
- * The paging access direction
- */
-static constexpr const char *kSystemPagingDirection = "system.paging.direction";
-
-/**
- * The memory paging state
- */
-static constexpr const char *kSystemPagingState = "system.paging.state";
-
-/**
- * The memory paging type
- */
-static constexpr const char *kSystemPagingType = "system.paging.type";
-
-/**
- * The filesystem mode
- */
-static constexpr const char *kSystemFilesystemMode = "system.filesystem.mode";
-
-/**
- * The filesystem mount path
- */
-static constexpr const char *kSystemFilesystemMountpoint = "system.filesystem.mountpoint";
-
-/**
- * The filesystem state
- */
-static constexpr const char *kSystemFilesystemState = "system.filesystem.state";
-
-/**
- * The filesystem type
- */
-static constexpr const char *kSystemFilesystemType = "system.filesystem.type";
-
-/**
- * A stateless protocol MUST NOT set this attribute
- */
-static constexpr const char *kSystemNetworkState = "system.network.state";
-
-/**
- * The process state, e.g., Linux Process State
- * Codes
+ * Match result - success or failure
*/
-static constexpr const char *kSystemProcessStatus = "system.process.status";
+static constexpr const char *kAspnetcoreRoutingMatchStatus = "aspnetcore.routing.match_status";
/**
- * Uniquely identifies the framework API revision offered by a version ({@code os.version}) of the
- * android operating system. More information can be found here.
+ * The AWS request ID as returned in the response headers {@code x-amz-request-id} or {@code
+ * x-amz-requestid}.
*/
-static constexpr const char *kAndroidOsApiLevel = "android.os.api_level";
+static constexpr const char *kAwsRequestId = "aws.request_id";
/**
* The JSON-serialized value of each item in the {@code AttributeDefinitions} request field.
@@ -370,95 +194,299 @@ static constexpr const char *kAwsDynamodbTableNames = "aws.dynamodb.table_names"
static constexpr const char *kAwsDynamodbTotalSegments = "aws.dynamodb.total_segments";
/**
- * Array of brand name and version separated by a space
- *
- * Notes:
-
- This value is intended to be taken from the UA client hints API ({@code
- navigator.userAgentData.brands}).
+ * The ID of a running ECS task. The ID MUST be extracted from {@code task.arn}.
*/
-static constexpr const char *kBrowserBrands = "browser.brands";
+static constexpr const char *kAwsEcsTaskId = "aws.ecs.task.id";
/**
- * Preferred language of the user using the browser
- *
- * Notes:
-
- This value is intended to be taken from the Navigator API {@code
- navigator.language}.
+ * The ARN of an ECS cluster.
*/
-static constexpr const char *kBrowserLanguage = "browser.language";
+static constexpr const char *kAwsEcsClusterArn = "aws.ecs.cluster.arn";
/**
- * A boolean that is true if the browser is running on a mobile device
- *
- * Notes:
-
- This value is intended to be taken from the UA client hints API ({@code
- navigator.userAgentData.mobile}). If unavailable, this attribute SHOULD be left unset.
+ * The Amazon Resource Name (ARN) of an ECS
+ * container instance.
*/
-static constexpr const char *kBrowserMobile = "browser.mobile";
+static constexpr const char *kAwsEcsContainerArn = "aws.ecs.container.arn";
/**
- * The platform on which the browser is running
- *
- * Notes:
-
- This value is intended to be taken from the UA client hints API ({@code
-navigator.userAgentData.platform}). If unavailable, the legacy {@code navigator.platform} API SHOULD
-NOT be used instead and this attribute SHOULD be left unset in order for the values to be
-consistent. The list of possible values is defined in the W3C User-Agent Client Hints
-specification. Note that some (but not all) of these values can overlap with values in the {@code os.type} and {@code os.name} attributes. However, for consistency, the
-values in the {@code browser.platform} attribute should capture the exact value that the user agent
-provides.
+ * The launch
+ * type for an ECS task.
*/
-static constexpr const char *kBrowserPlatform = "browser.platform";
+static constexpr const char *kAwsEcsLaunchtype = "aws.ecs.launchtype";
/**
- * Client address - domain name if available without reverse DNS lookup; otherwise, IP address or
- Unix domain socket name.
- *
- * Notes:
-
- When observed from the server side, and when communicating through an intermediary,
- {@code client.address} SHOULD represent the client address behind any intermediaries, for example
- proxies, if it's available.
+ * The ARN of a running ECS
+ * task.
*/
-static constexpr const char *kClientAddress = "client.address";
+static constexpr const char *kAwsEcsTaskArn = "aws.ecs.task.arn";
/**
- * Client port number.
- *
- * Notes:
-
- When observed from the server side, and when communicating through an intermediary,
- {@code client.port} SHOULD represent the client port behind any intermediaries, for example
- proxies, if it's available.
+ * The family name of the ECS task
+ * definition used to create the ECS task.
*/
-static constexpr const char *kClientPort = "client.port";
+static constexpr const char *kAwsEcsTaskFamily = "aws.ecs.task.family";
/**
- * The cloud account ID the resource is assigned to.
+ * The revision for the task definition used to create the ECS task.
*/
-static constexpr const char *kCloudAccountId = "cloud.account.id";
+static constexpr const char *kAwsEcsTaskRevision = "aws.ecs.task.revision";
/**
- * Cloud regions often have multiple, isolated locations known as zones to increase availability.
- Availability zone represents the zone where the resource is running.
+ * The ARN of an EKS cluster.
+ */
+static constexpr const char *kAwsEksClusterArn = "aws.eks.cluster.arn";
+
+/**
+ * The Amazon Resource Name(s) (ARN) of the AWS log group(s).
*
* Notes:
-
- Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
-
+
*/
-static constexpr const char *kCloudAvailabilityZone = "cloud.availability_zone";
+static constexpr const char *kAwsLogGroupArns = "aws.log.group.arns";
/**
- * The cloud platform in use.
+ * The name(s) of the AWS log group(s) an application is writing to.
*
* Notes:
-
- The prefix of the service SHOULD match the one specified in {@code cloud.provider}.
-
+ - Multiple log groups must be supported for cases like multi-container applications, where
+ a single application has sidecar containers, and each write to their own log group.
*/
-static constexpr const char *kCloudPlatform = "cloud.platform";
+static constexpr const char *kAwsLogGroupNames = "aws.log.group.names";
+
+/**
+ * The ARN(s) of the AWS log stream(s).
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsLogStreamArns = "aws.log.stream.arns";
+
+/**
+ * The name(s) of the AWS log stream(s) an application is writing to.
+ */
+static constexpr const char *kAwsLogStreamNames = "aws.log.stream.names";
+
+/**
+ * The full invoked ARN as provided on the {@code Context} passed to the function ({@code
+ Lambda-Runtime-Invoked-Function-Arn} header on the {@code /runtime/invocation/next} applicable).
+ *
+ * Notes:
+
- This may be different from {@code cloud.resource_id} if an alias is involved.
+ */
+static constexpr const char *kAwsLambdaInvokedArn = "aws.lambda.invoked_arn";
+
+/**
+ * The S3 bucket name the request refers to. Corresponds to the {@code --bucket} parameter of the S3 API operations.
+ *
+ * Notes:
+
- The {@code bucket} attribute is applicable to all S3 operations that reference a bucket,
+i.e. that require the bucket name as a mandatory parameter. This applies to almost all S3 operations
+except {@code list-buckets}.
+ */
+static constexpr const char *kAwsS3Bucket = "aws.s3.bucket";
+
+/**
+ * The source object (in the form {@code bucket}/{@code key}) for the copy operation.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsS3CopySource = "aws.s3.copy_source";
+
+/**
+ * The delete request container that specifies the objects to be deleted.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsS3Delete = "aws.s3.delete";
+
+/**
+ * The S3 object key the request refers to. Corresponds to the {@code --key} parameter of the S3 API operations.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsS3Key = "aws.s3.key";
+
+/**
+ * The part number of the part being uploaded in a multipart-upload operation. This is a positive
+integer between 1 and 10,000.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsS3PartNumber = "aws.s3.part_number";
+
+/**
+ * Upload ID that identifies the multipart upload.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsS3UploadId = "aws.s3.upload_id";
+
+/**
+ * Array of brand name and version separated by a space
+ *
+ * Notes:
+
- This value is intended to be taken from the UA client hints API ({@code
+ navigator.userAgentData.brands}).
+ */
+static constexpr const char *kBrowserBrands = "browser.brands";
+
+/**
+ * Preferred language of the user using the browser
+ *
+ * Notes:
+
- This value is intended to be taken from the Navigator API {@code
+ navigator.language}.
+ */
+static constexpr const char *kBrowserLanguage = "browser.language";
+
+/**
+ * A boolean that is true if the browser is running on a mobile device
+ *
+ * Notes:
+
- This value is intended to be taken from the UA client hints API ({@code
+ navigator.userAgentData.mobile}). If unavailable, this attribute SHOULD be left unset.
+ */
+static constexpr const char *kBrowserMobile = "browser.mobile";
+
+/**
+ * The platform on which the browser is running
+ *
+ * Notes:
+
- This value is intended to be taken from the UA client hints API ({@code
+navigator.userAgentData.platform}). If unavailable, the legacy {@code navigator.platform} API SHOULD
+NOT be used instead and this attribute SHOULD be left unset in order for the values to be
+consistent. The list of possible values is defined in the W3C User-Agent Client Hints
+specification. Note that some (but not all) of these values can overlap with values in the {@code os.type} and {@code os.name} attributes. However, for consistency, the
+values in the {@code browser.platform} attribute should capture the exact value that the user agent
+provides.
+ */
+static constexpr const char *kBrowserPlatform = "browser.platform";
+
+/**
+ * Client address - domain name if available without reverse DNS lookup; otherwise, IP address or
+ Unix domain socket name.
+ *
+ * Notes:
+
- When observed from the server side, and when communicating through an intermediary,
+ {@code client.address} SHOULD represent the client address behind any intermediaries, for example
+ proxies, if it's available.
+ */
+static constexpr const char *kClientAddress = "client.address";
+
+/**
+ * Client port number.
+ *
+ * Notes:
+
- When observed from the server side, and when communicating through an intermediary,
+ {@code client.port} SHOULD represent the client port behind any intermediaries, for example
+ proxies, if it's available.
+ */
+static constexpr const char *kClientPort = "client.port";
+
+/**
+ * The cloud account ID the resource is assigned to.
+ */
+static constexpr const char *kCloudAccountId = "cloud.account.id";
+
+/**
+ * Cloud regions often have multiple, isolated locations known as zones to increase availability.
+ Availability zone represents the zone where the resource is running.
+ *
+ * Notes:
+
- Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
+
+ */
+static constexpr const char *kCloudAvailabilityZone = "cloud.availability_zone";
+
+/**
+ * The cloud platform in use.
+ *
+ * Notes:
+
- The prefix of the service SHOULD match the one specified in {@code cloud.provider}.
+
+ */
+static constexpr const char *kCloudPlatform = "cloud.platform";
/**
* Name of the cloud provider.
@@ -620,7 +648,7 @@ href="https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/Containe
endpoint. K8s defines a link to the container registry repository with digest {@code "imageID":
"registry.azurecr.io
/namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"}.
-The ID is assinged by the container runtime and can vary in different environments. Consider using
+The ID is assigned by the container runtime and can vary in different environments. Consider using
{@code oci.manifest.digest} if it is important to identify the same image in different
environments/runtimes.
*/
@@ -660,6 +688,67 @@ static constexpr const char *kContainerName = "container.name";
*/
static constexpr const char *kContainerRuntime = "container.runtime";
+/**
+ * The name of the connection pool; unique within the instrumented application. In case the
+ * connection pool implementation doesn't provide a name, instrumentation should use a combination
+ * of {@code server.address} and {@code server.port} attributes formatted as {@code
+ * server.address:server.port}.
+ */
+static constexpr const char *kDbClientConnectionsPoolName = "db.client.connections.pool.name";
+
+/**
+ * The state of a connection in the pool
+ */
+static constexpr const char *kDbClientConnectionsState = "db.client.connections.state";
+
+/**
+ * The name of a collection (table, container) within the database.
+ *
+ * Notes:
+
- If the collection name is parsed from the query, it SHOULD match the value provided in
+the query and may be qualified with the schema and database name. It is RECOMMENDED to capture the
+value as provided by the application without attempting to do any case normalization.
+ */
+static constexpr const char *kDbCollectionName = "db.collection.name";
+
+/**
+ * The name of the database, fully qualified within the server address and port.
+ *
+ * Notes:
+
- If a database system has multiple namespace components, they SHOULD be concatenated
+(potentially using database system specific conventions) from most general to most specific
+namespace component, and more specific namespaces SHOULD NOT be captured without the more general
+namespaces, to ensure that "startswith" queries for the more general namespaces will be
+valid. Semantic conventions for individual database systems SHOULD document what {@code
+db.namespace} means in the context of that system. It is RECOMMENDED to capture the value as
+provided by the application without attempting to do any case normalization.
+ */
+static constexpr const char *kDbNamespace = "db.namespace";
+
+/**
+ * The name of the operation or command being executed.
+ *
+ * Notes:
+
- It is RECOMMENDED to capture the value as provided by the application without attempting
+ to do any case normalization.
+ */
+static constexpr const char *kDbOperationName = "db.operation.name";
+
+/**
+ * The database query being executed.
+ */
+static constexpr const char *kDbQueryText = "db.query.text";
+
+/**
+ * The database management system (DBMS) product as identified by the client instrumentation.
+ *
+ * Notes:
+
- The actual DBMS may differ from the one identified by the client. For example, when using
+ PostgreSQL client libraries to connect to a CockroachDB, the {@code db.system} is set to {@code
+ postgresql} based on the instrumentation's best knowledge.
+ */
+static constexpr const char *kDbSystem = "db.system";
+
/**
* The consistency level of the query. Based on consistency values from CQL.
@@ -693,19 +782,6 @@ static constexpr const char *kDbCassandraPageSize = "db.cassandra.page_size";
static constexpr const char *kDbCassandraSpeculativeExecutionCount =
"db.cassandra.speculative_execution_count";
-/**
- * The name of the primary Cassandra table that the operation is acting upon, including the keyspace
- name (if applicable).
- *
- * Notes:
-
- This mirrors the db.sql.table attribute but references cassandra rather than sql. It is
- not recommended to attempt any client-side parsing of {@code db.statement} just to get this
- property, but it should be set if it is provided by the library being instrumented. If the
- operation is acting upon an anonymous table, or more than one table, this value MUST NOT be
- set.
- */
-static constexpr const char *kDbCassandraTable = "db.cassandra.table";
-
/**
* Unique Cosmos client instance id.
*/
@@ -716,11 +792,6 @@ static constexpr const char *kDbCosmosdbClientId = "db.cosmosdb.client_id";
*/
static constexpr const char *kDbCosmosdbConnectionMode = "db.cosmosdb.connection_mode";
-/**
- * Cosmos DB container name.
- */
-static constexpr const char *kDbCosmosdbContainer = "db.cosmosdb.container";
-
/**
* CosmosDB Operation Type.
*/
@@ -752,136 +823,184 @@ static constexpr const char *kDbCosmosdbSubStatusCode = "db.cosmosdb.sub_status_
static constexpr const char *kDbElasticsearchClusterName = "db.elasticsearch.cluster.name";
/**
- * An identifier (address, unique name, or any other identifier) of the database instance that is
- * executing queries or mutations on the current connection. This is useful in cases where the
- * database is running in a clustered environment and the instrumentation is able to record the node
- * executing the query. The client may obtain this value in databases like MySQL using queries like
- * {@code select @@hostname}.
+ * Represents the human-readable identifier of the node/instance to which a request was routed.
+ */
+static constexpr const char *kDbElasticsearchNodeName = "db.elasticsearch.node.name";
+
+/**
+ * Name of the deployment
+environment (aka deployment tier).
+ *
+ * Notes:
+
- {@code deployment.environment} does not affect the uniqueness constraints defined through
+the {@code service.namespace}, {@code service.name} and {@code service.instance.id} resource
+attributes. This implies that resources carrying the following attribute combinations MUST be
+considered to be identifying the same service:
- {@code service.name=frontend}, {@code
+deployment.environment=production}
- {@code service.name=frontend}, {@code
+deployment.environment=staging}.
+
+ */
+static constexpr const char *kDeploymentEnvironment = "deployment.environment";
+
+/**
+ * Deprecated use the {@code device.app.lifecycle} event definition including {@code android.state}
+ as a payload field instead.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAndroidState = "android.state";
+
+/**
+ * Deprecated, use {@code db.collection.name} instead.
+ *
+ * @deprecated Deprecated, use `db.collection.name` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbCassandraTable = "db.cassandra.table";
+
+/**
+ * Deprecated, use {@code server.address}, {@code server.port} attributes instead.
+ *
+ * @deprecated Deprecated, use `server.address`, `server.port` attributes instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbConnectionString = "db.connection_string";
+
+/**
+ * Deprecated, use {@code db.collection.name} instead.
+ *
+ * @deprecated Deprecated, use `db.collection.name` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbCosmosdbContainer = "db.cosmosdb.container";
+
+/**
+ * Deprecated, no general replacement at this time. For Elasticsearch, use {@code
+ * db.elasticsearch.node.name} instead.
+ *
+ * @deprecated Deprecated, no general replacement at this time. For Elasticsearch, use
+ * `db.elasticsearch.node.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbInstanceId = "db.instance.id";
/**
- * The MongoDB collection being accessed within the database stated in {@code db.name}.
+ * Removed, no replacement at this time.
+ *
+ * @deprecated Removed, no replacement at this time.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbJdbcDriverClassname = "db.jdbc.driver_classname";
+
+/**
+ * Deprecated, use {@code db.collection.name} instead.
+ *
+ * @deprecated Deprecated, use `db.collection.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbMongodbCollection = "db.mongodb.collection";
/**
- * The Microsoft SQL Server instance
- name connecting to. This name is used to determine the port of a named instance.
+ * Deprecated, SQL Server instance is now populated as a part of {@code db.namespace} attribute.
*
- * Notes:
-
- If setting a {@code db.mssql.instance_name}, {@code server.port} is no longer required
- (but still recommended if non-standard).
+ * @deprecated Deprecated, SQL Server instance is now populated as a part of `db.namespace`
+ * attribute.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbMssqlInstanceName = "db.mssql.instance_name";
/**
- * This attribute is used to report the name of the database being accessed. For commands that
- switch the database, this should be set to the target database (even if the command fails).
+ * Deprecated, use {@code db.namespace} instead.
*
- * Notes:
-
- In some SQL databases, the database name to be used is called "schema name". In
- case there are multiple layers that could be considered for database name (e.g. Oracle instance
- name and schema name), the database name to be used is the more specific layer (e.g. Oracle schema
- name).
+ * @deprecated Deprecated, use `db.namespace` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbName = "db.name";
/**
- * The name of the operation being executed, e.g. the MongoDB command
- name such as {@code findAndModify}, or the SQL keyword.
+ * Deprecated, use {@code db.operation.name} instead.
*
- * Notes:
-
- When setting this to an SQL keyword, it is not recommended to attempt any client-side
- parsing of {@code db.statement} just to get this property, but it should be set if the operation
- name is provided by the library being instrumented. If the SQL statement has an ambiguous
- operation, or performs more than one operation, this value may be omitted.
+ * @deprecated Deprecated, use `db.operation.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbOperation = "db.operation";
/**
- * The index of the database being accessed as used in the {@code SELECT} command, provided as an integer. To be
- * used instead of the generic {@code db.name} attribute.
+ * Deprecated, use {@code db.namespace} instead.
+ *
+ * @deprecated Deprecated, use `db.namespace` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbRedisDatabaseIndex = "db.redis.database_index";
/**
- * The name of the primary table that the operation is acting upon, including the database name (if
- applicable).
+ * Deprecated, use {@code db.collection.name} instead.
*
- * Notes:
-
- It is not recommended to attempt any client-side parsing of {@code db.statement} just to
- get this property, but it should be set if it is provided by the library being instrumented. If the
- operation is acting upon an anonymous table, or more than one table, this value MUST NOT be
- set.
+ * @deprecated Deprecated, use `db.collection.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbSqlTable = "db.sql.table";
/**
* The database statement being executed.
+ *
+ * @deprecated The database statement being executed.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbStatement = "db.statement";
/**
- * An identifier for the database management system (DBMS) product being used. See below for a list
- * of well-known identifiers.
- */
-static constexpr const char *kDbSystem = "db.system";
-
-/**
- * Username for accessing the database.
+ * Deprecated, no replacement at this time.
+ *
+ * @deprecated Deprecated, no replacement at this time.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbUser = "db.user";
/**
- * Name of the deployment
-environment (aka deployment tier).
+ * Deprecated, use {@code db.client.connections.pool.name} instead.
*
- * Notes:
-
- {@code deployment.environment} does not affect the uniqueness constraints defined through
-the {@code service.namespace}, {@code service.name} and {@code service.instance.id} resource
-attributes. This implies that resources carrying the following attribute combinations MUST be
-considered to be identifying the same service:
- {@code service.name=frontend}, {@code
-deployment.environment=production}
- {@code service.name=frontend}, {@code
-deployment.environment=staging}.
-
+ * @deprecated Deprecated, use `db.client.connections.pool.name` instead.
*/
-static constexpr const char *kDeploymentEnvironment = "deployment.environment";
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kPoolName = "pool.name";
/**
- * Deprecated, use {@code server.address}, {@code server.port} attributes instead.
+ * Deprecated, use {@code db.client.connections.state} instead.
*
- * @deprecated Deprecated, use `server.address`, `server.port` attributes instead.
+ * @deprecated Deprecated, use `db.client.connections.state` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kDbConnectionString = "db.connection_string";
+static constexpr const char *kState = "state";
/**
- * Deprecated, use {@code db.instance.id} instead.
+ * Deprecated, use {@code client.address} instead.
*
- * @deprecated Deprecated, use `db.instance.id` instead.
+ * @deprecated Deprecated, use `client.address` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kDbElasticsearchNodeName = "db.elasticsearch.node.name";
+static constexpr const char *kHttpClientIp = "http.client_ip";
/**
- * Removed, no replacement at this time.
+ * Deprecated, use {@code network.protocol.name} instead.
*
- * @deprecated Removed, no replacement at this time.
+ * @deprecated Deprecated, use `network.protocol.name` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kDbJdbcDriverClassname = "db.jdbc.driver_classname";
+static constexpr const char *kHttpFlavor = "http.flavor";
/**
- * Deprecated, use {@code network.protocol.name} instead.
+ * Deprecated, use one of {@code server.address}, {@code client.address} or {@code
+ * http.request.header.host} instead, depending on the usage.
*
- * @deprecated Deprecated, use `network.protocol.name` instead.
+ * @deprecated Deprecated, use one of `server.address`, `client.address` or
+ * `http.request.header.host` instead, depending on the usage.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kHttpFlavor = "http.flavor";
+static constexpr const char *kHttpHost = "http.host";
/**
* Deprecated, use {@code http.request.method} instead.
@@ -899,6 +1018,15 @@ static constexpr const char *kHttpMethod = "http.method";
OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpRequestContentLength = "http.request_content_length";
+/**
+ * Deprecated, use {@code http.request.body.size} instead.
+ *
+ * @deprecated Deprecated, use `http.request.body.size` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kHttpRequestContentLengthUncompressed =
+ "http.request_content_length_uncompressed";
+
/**
* Deprecated, use {@code http.response.header.content-length} instead.
*
@@ -907,6 +1035,15 @@ static constexpr const char *kHttpRequestContentLength = "http.request_content_l
OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpResponseContentLength = "http.response_content_length";
+/**
+ * Deprecated, use {@code http.response.body.size} instead.
+ *
+ * @deprecated Deprecated, use `http.response.body.size` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kHttpResponseContentLengthUncompressed =
+ "http.response_content_length_uncompressed";
+
/**
* Deprecated, use {@code url.scheme} instead.
*
@@ -915,6 +1052,14 @@ static constexpr const char *kHttpResponseContentLength = "http.response_content
OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpScheme = "http.scheme";
+/**
+ * Deprecated, use {@code server.address} instead.
+ *
+ * @deprecated Deprecated, use `server.address` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kHttpServerName = "http.server_name";
+
/**
* Deprecated, use {@code http.response.status_code} instead.
*
@@ -948,14 +1093,45 @@ OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpUserAgent = "http.user_agent";
/**
- * "Deprecated, use {@code messaging.destination.partition.id} instead."
+ * Deprecated use the {@code device.app.lifecycle} event definition including {@code ios.state} as a
+ payload field instead.
+ *
+ * Notes:
+
+ *
+ * @deprecated Deprecated use the `device.app.lifecycle` event definition including `ios.state` as a
+ payload field instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kIosState = "ios.state";
+
+/**
+ * Deprecated, use {@code messaging.destination.partition.id} instead.
*
- * @deprecated "Deprecated, use `messaging.destination.partition.id` instead.".
+ * @deprecated Deprecated, use `messaging.destination.partition.id` instead.
*/
OPENTELEMETRY_DEPRECATED
static constexpr const char *kMessagingKafkaDestinationPartition =
"messaging.kafka.destination.partition";
+/**
+ * Deprecated, use {@code messaging.operation.type} instead.
+ *
+ * @deprecated Deprecated, use `messaging.operation.type` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kMessagingOperation = "messaging.operation";
+
+/**
+ * Deprecated, use {@code network.local.address}.
+ *
+ * @deprecated Deprecated, use `network.local.address`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetHostIp = "net.host.ip";
+
/**
* Deprecated, use {@code server.address}.
*
@@ -972,6 +1148,14 @@ static constexpr const char *kNetHostName = "net.host.name";
OPENTELEMETRY_DEPRECATED
static constexpr const char *kNetHostPort = "net.host.port";
+/**
+ * Deprecated, use {@code network.peer.address}.
+ *
+ * @deprecated Deprecated, use `network.peer.address`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetPeerIp = "net.peer.ip";
+
/**
* Deprecated, use {@code server.address} on client spans and {@code client.address} on server
* spans.
@@ -1062,6 +1246,54 @@ static constexpr const char *kNetSockPeerPort = "net.sock.peer.port";
OPENTELEMETRY_DEPRECATED
static constexpr const char *kNetTransport = "net.transport";
+/**
+ * None
+ *
+ * @deprecated None.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kOtelLibraryName = "otel.library.name";
+
+/**
+ * None
+ *
+ * @deprecated None.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kOtelLibraryVersion = "otel.library.version";
+
+/**
+ * Deprecated, use {@code rpc.message.compressed_size} instead.
+ *
+ * @deprecated Deprecated, use `rpc.message.compressed_size` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kMessageCompressedSize = "message.compressed_size";
+
+/**
+ * Deprecated, use {@code rpc.message.id} instead.
+ *
+ * @deprecated Deprecated, use `rpc.message.id` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kMessageId = "message.id";
+
+/**
+ * Deprecated, use {@code rpc.message.type} instead.
+ *
+ * @deprecated Deprecated, use `rpc.message.type` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kMessageType = "message.type";
+
+/**
+ * Deprecated, use {@code rpc.message.uncompressed_size} instead.
+ *
+ * @deprecated Deprecated, use `rpc.message.uncompressed_size` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kMessageUncompressedSize = "message.uncompressed_size";
+
/**
* Deprecated, use {@code system.process.status} instead.
*
@@ -1175,20 +1407,33 @@ static constexpr const char *kEnduserScope = "enduser.scope";
* Describes a class of error the operation ended with.
*
* Notes:
-
- The {@code error.type} SHOULD be predictable and SHOULD have low cardinality.
-Instrumentations SHOULD document the list of errors they report.
- The cardinality of {@code
-error.type} within one instrumentation library SHOULD be low. Telemetry consumers that aggregate
-data from multiple instrumentation libraries and applications should be prepared for {@code
-error.type} to have high cardinality at query time when no additional filters are
-applied.
- If the operation has completed successfully, instrumentations SHOULD NOT set {@code
-error.type}.
- If a specific domain defines its own set of error identifiers (such as HTTP or
-gRPC status codes), it's RECOMMENDED to:
- Use a domain-specific attribute
- Set {@code
-error.type} to capture all errors, regardless of whether they are defined within the domain-specific
-set or not.
+ - The {@code error.type} SHOULD be predictable, and SHOULD have low
+cardinality.
- When {@code error.type} is set to a type (e.g., an exception type), its
+canonical class name identifying the type within the artifact SHOULD be
+used.
- Instrumentations SHOULD document the list of errors they report.
- The
+cardinality of {@code error.type} within one instrumentation library SHOULD be low. Telemetry
+consumers that aggregate data from multiple instrumentation libraries and applications should be
+prepared for {@code error.type} to have high cardinality at query time when no additional filters
+are applied.
- If the operation has completed successfully, instrumentations SHOULD NOT set
+{@code error.type}.
- If a specific domain defines its own set of error identifiers (such as
+HTTP or gRPC status codes), it's RECOMMENDED to:
- Use a domain-specific attribute
+- Set {@code error.type} to capture all errors, regardless of whether they are defined within the
+domain-specific set or not.
*/
static constexpr const char *kErrorType = "error.type";
+/**
+ * Identifies the class / type of event.
+ *
+ * Notes:
+
- Event names are subject to the same rules as attribute
+ names. Notably, event names are namespaced to avoid collisions and provide a clean separation
+ of semantics for events in separate domains like browser, mobile, and kubernetes.
+ */
+static constexpr const char *kEventName = "event.name";
+
/**
* SHOULD be set to true if the exception event is recorded at a point where it is known that the
exception is escaping the scope of the span.
@@ -1201,9 +1446,10 @@ is passed to a Context manager's {@code __exit__} method in Python) but will
usually be caught at the point of recording the exception in most languages.- It is usually
not possible to determine at the point where an exception is thrown whether it will escape the scope
of a span. However, it is trivial to know that an exception will escape, if one checks for an active
-exception just before ending the span, as done in the example for
-recording span exceptions.
- It follows that an exception may still escape the scope of
-the span even if the {@code exception.escaped} attribute was not set or set to false, since the
+exception just before ending the span, as done in the example
+for recording span exceptions.
- It follows that an exception may still escape the scope
+of the span even if the {@code exception.escaped} attribute was not set or set to false, since the
event might have been recorded at a time where it was not clear whether the exception will
escape.
*/
@@ -1451,84 +1697,192 @@ static constexpr const char *kGcpGceInstanceHostname = "gcp.gce.instance.hostnam
static constexpr const char *kGcpGceInstanceName = "gcp.gce.instance.name";
/**
- * The CPU architecture the host system is running on.
+ * The full response received from the LLM.
+ *
+ * Notes:
+
*/
-static constexpr const char *kHostArch = "host.arch";
+static constexpr const char *kGenAiCompletion = "gen_ai.completion";
/**
- * The amount of level 2 memory cache available to the processor (in Bytes).
+ * The full prompt sent to an LLM.
+ *
+ * Notes:
+
*/
-static constexpr const char *kHostCpuCacheL2Size = "host.cpu.cache.l2.size";
+static constexpr const char *kGenAiPrompt = "gen_ai.prompt";
/**
- * Family or generation of the CPU.
+ * The maximum number of tokens the LLM generates for a request.
*/
-static constexpr const char *kHostCpuFamily = "host.cpu.family";
+static constexpr const char *kGenAiRequestMaxTokens = "gen_ai.request.max_tokens";
/**
- * Model identifier. It provides more granular information about the CPU, distinguishing it from
- * other CPUs within the same family.
+ * The name of the LLM a request is being made to.
*/
-static constexpr const char *kHostCpuModelId = "host.cpu.model.id";
+static constexpr const char *kGenAiRequestModel = "gen_ai.request.model";
/**
- * Model designation of the processor.
+ * The temperature setting for the LLM request.
*/
-static constexpr const char *kHostCpuModelName = "host.cpu.model.name";
+static constexpr const char *kGenAiRequestTemperature = "gen_ai.request.temperature";
/**
- * Stepping or core revisions.
+ * The top_p sampling setting for the LLM request.
*/
-static constexpr const char *kHostCpuStepping = "host.cpu.stepping";
+static constexpr const char *kGenAiRequestTopP = "gen_ai.request.top_p";
/**
- * Processor manufacturer identifier. A maximum 12-character string.
- *
- * Notes:
-
- CPUID command returns the vendor ID string in
- EBX, EDX and ECX registers. Writing these to memory in this order results in a 12-character
- string.
+ * Array of reasons the model stopped generating tokens, corresponding to each generation received.
*/
-static constexpr const char *kHostCpuVendorId = "host.cpu.vendor.id";
+static constexpr const char *kGenAiResponseFinishReasons = "gen_ai.response.finish_reasons";
/**
- * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. For
- * non-containerized systems, this should be the {@code machine-id}. See the table below for the
- * sources to use to determine the {@code machine-id} based on operating system.
+ * The unique identifier for the completion.
*/
-static constexpr const char *kHostId = "host.id";
+static constexpr const char *kGenAiResponseId = "gen_ai.response.id";
/**
- * VM image ID or host OS image ID. For Cloud, this value is from the provider.
+ * The name of the LLM a response was generated from.
*/
-static constexpr const char *kHostImageId = "host.image.id";
+static constexpr const char *kGenAiResponseModel = "gen_ai.response.model";
/**
- * Name of the VM image or OS install the host was instantiated from.
+ * The Generative AI product as identified by the client instrumentation.
+ *
+ * Notes:
+
- The actual GenAI product may differ from the one identified by the client. For example,
+ when using OpenAI client libraries to communicate with Mistral, the {@code gen_ai.system} is set to
+ {@code openai} based on the instrumentation's best knowledge.
*/
-static constexpr const char *kHostImageName = "host.image.name";
+static constexpr const char *kGenAiSystem = "gen_ai.system";
/**
- * The version string of the VM image or host OS as defined in Version Attributes.
+ * The number of tokens used in the LLM response (completion).
*/
-static constexpr const char *kHostImageVersion = "host.image.version";
+static constexpr const char *kGenAiUsageCompletionTokens = "gen_ai.usage.completion_tokens";
/**
- * Available IP addresses of the host, excluding loopback interfaces.
- *
- * Notes:
-
- IPv4 Addresses MUST be specified in dotted-quad notation. IPv6 addresses MUST be
- specified in the RFC 5952 format.
-
+ * The number of tokens used in the LLM prompt.
*/
-static constexpr const char *kHostIp = "host.ip";
+static constexpr const char *kGenAiUsagePromptTokens = "gen_ai.usage.prompt_tokens";
/**
- * Available MAC addresses of the host, excluding loopback interfaces.
+ * The GraphQL document being executed.
*
* Notes:
-
+ */
+static constexpr const char *kGraphqlDocument = "graphql.document";
+
+/**
+ * The name of the operation being executed.
+ */
+static constexpr const char *kGraphqlOperationName = "graphql.operation.name";
+
+/**
+ * The type of the operation being executed.
+ */
+static constexpr const char *kGraphqlOperationType = "graphql.operation.type";
+
+/**
+ * Unique identifier for the application
+ */
+static constexpr const char *kHerokuAppId = "heroku.app.id";
+
+/**
+ * Commit hash for the current release
+ */
+static constexpr const char *kHerokuReleaseCommit = "heroku.release.commit";
+
+/**
+ * Time and date the release was created
+ */
+static constexpr const char *kHerokuReleaseCreationTimestamp = "heroku.release.creation_timestamp";
+
+/**
+ * The CPU architecture the host system is running on.
+ */
+static constexpr const char *kHostArch = "host.arch";
+
+/**
+ * The amount of level 2 memory cache available to the processor (in Bytes).
+ */
+static constexpr const char *kHostCpuCacheL2Size = "host.cpu.cache.l2.size";
+
+/**
+ * Family or generation of the CPU.
+ */
+static constexpr const char *kHostCpuFamily = "host.cpu.family";
+
+/**
+ * Model identifier. It provides more granular information about the CPU, distinguishing it from
+ * other CPUs within the same family.
+ */
+static constexpr const char *kHostCpuModelId = "host.cpu.model.id";
+
+/**
+ * Model designation of the processor.
+ */
+static constexpr const char *kHostCpuModelName = "host.cpu.model.name";
+
+/**
+ * Stepping or core revisions.
+ */
+static constexpr const char *kHostCpuStepping = "host.cpu.stepping";
+
+/**
+ * Processor manufacturer identifier. A maximum 12-character string.
+ *
+ * Notes:
+
- CPUID command returns the vendor ID string in
+ EBX, EDX and ECX registers. Writing these to memory in this order results in a 12-character
+ string.
+ */
+static constexpr const char *kHostCpuVendorId = "host.cpu.vendor.id";
+
+/**
+ * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. For
+ * non-containerized systems, this should be the {@code machine-id}. See the table below for the
+ * sources to use to determine the {@code machine-id} based on operating system.
+ */
+static constexpr const char *kHostId = "host.id";
+
+/**
+ * VM image ID or host OS image ID. For Cloud, this value is from the provider.
+ */
+static constexpr const char *kHostImageId = "host.image.id";
+
+/**
+ * Name of the VM image or OS install the host was instantiated from.
+ */
+static constexpr const char *kHostImageName = "host.image.name";
+
+/**
+ * The version string of the VM image or host OS as defined in Version Attributes.
+ */
+static constexpr const char *kHostImageVersion = "host.image.version";
+
+/**
+ * Available IP addresses of the host, excluding loopback interfaces.
+ *
+ * Notes:
+
- IPv4 Addresses MUST be specified in dotted-quad notation. IPv6 addresses MUST be
+ specified in the RFC 5952 format.
+
+ */
+static constexpr const char *kHostIp = "host.ip";
+
+/**
+ * Available MAC addresses of the host, excluding loopback interfaces.
+ *
+ * Notes:
+
- MAC Addresses MUST be represented in IEEE RA
hexadecimal form: as hyphen-separated octets in uppercase hexadecimal form from most to least
significant.
@@ -1635,6 +1989,61 @@ one.
*/
static constexpr const char *kHttpRoute = "http.route";
+/**
+ * Name of the buffer pool.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmBufferPoolName = "jvm.buffer.pool.name";
+
+/**
+ * Name of the garbage collector action.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmGcAction = "jvm.gc.action";
+
+/**
+ * Name of the garbage collector.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmGcName = "jvm.gc.name";
+
+/**
+ * Name of the memory pool.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmMemoryPoolName = "jvm.memory.pool.name";
+
+/**
+ * The type of memory.
+ */
+static constexpr const char *kJvmMemoryType = "jvm.memory.type";
+
+/**
+ * Whether the thread is daemon or not.
+ */
+static constexpr const char *kJvmThreadDaemon = "jvm.thread.daemon";
+
+/**
+ * State of the thread.
+ */
+static constexpr const char *kJvmThreadState = "jvm.thread.state";
+
/**
* The name of the cluster.
*/
@@ -1676,6 +2085,12 @@ static constexpr const char *kK8sContainerName = "k8s.container.name";
*/
static constexpr const char *kK8sContainerRestartCount = "k8s.container.restart_count";
+/**
+ * Last terminated reason of the Container.
+ */
+static constexpr const char *kK8sContainerStatusLastTerminatedReason =
+ "k8s.container.status.last_terminated_reason";
+
/**
* The name of the CronJob.
*/
@@ -1761,6 +2176,42 @@ static constexpr const char *kK8sStatefulsetName = "k8s.statefulset.name";
*/
static constexpr const char *kK8sStatefulsetUid = "k8s.statefulset.uid";
+/**
+ * The stream associated with the log. See below for a list of well-known values.
+ */
+static constexpr const char *kLogIostream = "log.iostream";
+
+/**
+ * The basename of the file.
+ */
+static constexpr const char *kLogFileName = "log.file.name";
+
+/**
+ * The basename of the file, with symlinks resolved.
+ */
+static constexpr const char *kLogFileNameResolved = "log.file.name_resolved";
+
+/**
+ * The full path to the file.
+ */
+static constexpr const char *kLogFilePath = "log.file.path";
+
+/**
+ * The full path to the file, with symlinks resolved.
+ */
+static constexpr const char *kLogFilePathResolved = "log.file.path_resolved";
+
+/**
+ * A unique identifier for the Log Record.
+ *
+ * Notes:
+
- If an id is provided, other log records with the same id will be considered duplicates
+and can be removed safely. This means, that two distinguishable log records MUST have different
+values. The id MAY be an Universally Unique Lexicographically
+Sortable Identifier (ULID), but other identifiers (e.g. UUID) may be used as needed.
+ */
+static constexpr const char *kLogRecordUid = "log.record.uid";
+
/**
* The number of messages sent, received, or processed in the scope of the batching operation.
*
@@ -1776,7 +2227,7 @@ static constexpr const char *kMessagingBatchMessageCount = "messaging.batch.mess
/**
* A unique identifier for the client that consumes or produces a message.
*/
-static constexpr const char *kMessagingClientId = "messaging.client_id";
+static constexpr const char *kMessagingClientId = "messaging.client.id";
/**
* A boolean that is true if the message destination is anonymous (could be unnamed or have
@@ -1837,23 +2288,56 @@ static constexpr const char *kMessagingDestinationPublishName =
"messaging.destination_publish.name";
/**
- * The name of the consumer group the event consumer is associated with.
+ * The size of the message body in bytes.
+ *
+ * Notes:
+
- This can refer to both the compressed or uncompressed body size. If both sizes are known,
+the uncompressed body size should be used.
*/
-static constexpr const char *kMessagingEventhubsConsumerGroup =
- "messaging.eventhubs.consumer.group";
+static constexpr const char *kMessagingMessageBodySize = "messaging.message.body.size";
/**
- * The UTC epoch seconds at which the message has been accepted and stored in the entity.
+ * The conversation ID identifying the conversation to which the message belongs, represented as a
+ * string. Sometimes called "Correlation ID".
*/
-static constexpr const char *kMessagingEventhubsMessageEnqueuedTime =
- "messaging.eventhubs.message.enqueued_time";
+static constexpr const char *kMessagingMessageConversationId = "messaging.message.conversation_id";
/**
- * The ordering key for a given message. If the attribute is not present, the message does not have
- * an ordering key.
+ * 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.
*/
-static constexpr const char *kMessagingGcpPubsubMessageOrderingKey =
- "messaging.gcp_pubsub.message.ordering_key";
+static constexpr const char *kMessagingMessageEnvelopeSize = "messaging.message.envelope.size";
+
+/**
+ * A value used by the messaging system as an identifier for the message, represented as a string.
+ */
+static constexpr const char *kMessagingMessageId = "messaging.message.id";
+
+/**
+ * The system-specific name of the messaging operation.
+ */
+static constexpr const char *kMessagingOperationName = "messaging.operation.name";
+
+/**
+ * A string identifying the type of the messaging operation.
+ *
+ * Notes:
+
- If a custom value is used, it MUST be of low cardinality.
+ */
+static constexpr const char *kMessagingOperationType = "messaging.operation.type";
+
+/**
+ * The messaging system as identified by the client instrumentation.
+ *
+ * Notes:
+
- The actual messaging system may differ from the one known by the client. For example,
+ when using Kafka client libraries to communicate with Azure Event Hubs, the {@code
+ messaging.system} is set to {@code kafka} based on the instrumentation's best knowledge.
+ */
+static constexpr const char *kMessagingSystem = "messaging.system";
/**
* Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not
@@ -1884,62 +2368,25 @@ static constexpr const char *kMessagingKafkaMessageOffset = "messaging.kafka.mes
static constexpr const char *kMessagingKafkaMessageTombstone = "messaging.kafka.message.tombstone";
/**
- * The size of the message body in bytes.
- *
- * Notes:
-
- This can refer to both the compressed or uncompressed body size. If both sizes are known,
-the uncompressed body size should be used.
+ * RabbitMQ message routing key.
*/
-static constexpr const char *kMessagingMessageBodySize = "messaging.message.body.size";
+static constexpr const char *kMessagingRabbitmqDestinationRoutingKey =
+ "messaging.rabbitmq.destination.routing_key";
/**
- * The conversation ID identifying the conversation to which the message belongs, represented as a
- * string. Sometimes called "Correlation ID".
+ * RabbitMQ message delivery tag
*/
-static constexpr const char *kMessagingMessageConversationId = "messaging.message.conversation_id";
+static constexpr const char *kMessagingRabbitmqMessageDeliveryTag =
+ "messaging.rabbitmq.message.delivery_tag";
/**
- * 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.
+ * Name of the RocketMQ producer/consumer group that is handling the message. The client type is
+ * identified by the SpanKind.
*/
-static constexpr const char *kMessagingMessageEnvelopeSize = "messaging.message.envelope.size";
+static constexpr const char *kMessagingRocketmqClientGroup = "messaging.rocketmq.client_group";
/**
- * A value used by the messaging system as an identifier for the message, represented as a string.
- */
-static constexpr const char *kMessagingMessageId = "messaging.message.id";
-
-/**
- * A string identifying the kind of messaging operation.
- *
- * Notes:
-
- If a custom value is used, it MUST be of low cardinality.
- */
-static constexpr const char *kMessagingOperation = "messaging.operation";
-
-/**
- * RabbitMQ message routing key.
- */
-static constexpr const char *kMessagingRabbitmqDestinationRoutingKey =
- "messaging.rabbitmq.destination.routing_key";
-
-/**
- * RabbitMQ message delivery tag
- */
-static constexpr const char *kMessagingRabbitmqMessageDeliveryTag =
- "messaging.rabbitmq.message.delivery_tag";
-
-/**
- * Name of the RocketMQ producer/consumer group that is handling the message. The client type is
- * identified by the SpanKind.
- */
-static constexpr const char *kMessagingRocketmqClientGroup = "messaging.rocketmq.client_group";
-
-/**
- * Model of message consumption. This only applies to consumer spans.
+ * Model of message consumption. This only applies to consumer spans.
*/
static constexpr const char *kMessagingRocketmqConsumptionModel =
"messaging.rocketmq.consumption_model";
@@ -1982,6 +2429,31 @@ static constexpr const char *kMessagingRocketmqMessageType = "messaging.rocketmq
*/
static constexpr const char *kMessagingRocketmqNamespace = "messaging.rocketmq.namespace";
+/**
+ * The ack deadline in seconds set for the modify ack deadline request.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageAckDeadline =
+ "messaging.gcp_pubsub.message.ack_deadline";
+
+/**
+ * The ack id for a given message.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageAckId =
+ "messaging.gcp_pubsub.message.ack_id";
+
+/**
+ * The delivery attempt for a given message.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageDeliveryAttempt =
+ "messaging.gcp_pubsub.message.delivery_attempt";
+
+/**
+ * The ordering key for a given message. If the attribute is not present, the message does not have
+ * an ordering key.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageOrderingKey =
+ "messaging.gcp_pubsub.message.ordering_key";
+
/**
* The name of the subscription in the topic messages are received from.
*/
@@ -2009,10 +2481,16 @@ static constexpr const char *kMessagingServicebusMessageEnqueuedTime =
"messaging.servicebus.message.enqueued_time";
/**
- * An identifier for the messaging system being used. See below for a list of well-known
- * identifiers.
+ * The name of the consumer group the event consumer is associated with.
*/
-static constexpr const char *kMessagingSystem = "messaging.system";
+static constexpr const char *kMessagingEventhubsConsumerGroup =
+ "messaging.eventhubs.consumer.group";
+
+/**
+ * The UTC epoch seconds at which the message has been accepted and stored in the entity.
+ */
+static constexpr const char *kMessagingEventhubsMessageEnqueuedTime =
+ "messaging.eventhubs.message.enqueued_time";
/**
* The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
@@ -2125,6 +2603,14 @@ Manifest.
*/
static constexpr const char *kOciManifestDigest = "oci.manifest.digest";
+/**
+ * Parent-child Reference type
+ *
+ * Notes:
+
- The causal relationship between a child Span and a parent Span.
+ */
+static constexpr const char *kOpentracingRefType = "opentracing.ref_type";
+
/**
* Unique identifier for a particular build or compilation of the operating system.
*/
@@ -2152,6 +2638,27 @@ static constexpr const char *kOsType = "os.type";
*/
static constexpr const char *kOsVersion = "os.version";
+/**
+ * Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code
+ * is UNSET.
+ */
+static constexpr const char *kOtelStatusCode = "otel.status_code";
+
+/**
+ * Description of the Status if it has a value, otherwise not set.
+ */
+static constexpr const char *kOtelStatusDescription = "otel.status_description";
+
+/**
+ * The name of the instrumentation scope - ({@code InstrumentationScope.Name} in OTLP).
+ */
+static constexpr const char *kOtelScopeName = "otel.scope.name";
+
+/**
+ * The version of the instrumentation scope - ({@code InstrumentationScope.Version} in OTLP).
+ */
+static constexpr const char *kOtelScopeVersion = "otel.scope.version";
+
/**
* The {@code service.name} of the remote service.
* SHOULD be equal to the actual {@code service.name} resource attribute of the remote service if
@@ -2181,6 +2688,16 @@ static constexpr const char *kProcessCommandArgs = "process.command_args";
*/
static constexpr const char *kProcessCommandLine = "process.command_line";
+/**
+ * Specifies whether the context switches for this data point were voluntary or involuntary.
+ */
+static constexpr const char *kProcessContextSwitchType = "process.context_switch_type";
+
+/**
+ * The date and time the process was created, in ISO 8601 format.
+ */
+static constexpr const char *kProcessCreationTime = "process.creation.time";
+
/**
* The name of the process executable. On Linux based systems, can be set to the {@code Name} in
* {@code proc/[pid]/status}. On Windows, can be set to the base name of {@code
@@ -2194,11 +2711,37 @@ static constexpr const char *kProcessExecutableName = "process.executable.name";
*/
static constexpr const char *kProcessExecutablePath = "process.executable.path";
+/**
+ * The exit code of the process.
+ */
+static constexpr const char *kProcessExitCode = "process.exit.code";
+
+/**
+ * The date and time the process exited, in ISO 8601 format.
+ */
+static constexpr const char *kProcessExitTime = "process.exit.time";
+
+/**
+ * The PID of the process's group leader. This is also the process group ID (PGID) of the process.
+ */
+static constexpr const char *kProcessGroupLeaderPid = "process.group_leader.pid";
+
+/**
+ * Whether the process is connected to an interactive shell.
+ */
+static constexpr const char *kProcessInteractive = "process.interactive";
+
/**
* The username of the user that owns the process.
*/
static constexpr const char *kProcessOwner = "process.owner";
+/**
+ * The type of page fault for this data point. Type {@code major} is for major/hard page faults, and
+ * {@code minor} is for minor/soft page faults.
+ */
+static constexpr const char *kProcessPagingFaultType = "process.paging.fault_type";
+
/**
* Parent Process identifier (PPID).
*/
@@ -2209,6 +2752,16 @@ static constexpr const char *kProcessParentPid = "process.parent_pid";
*/
static constexpr const char *kProcessPid = "process.pid";
+/**
+ * The real user ID (RUID) of the process.
+ */
+static constexpr const char *kProcessRealUserId = "process.real_user.id";
+
+/**
+ * The username of the real user of the process.
+ */
+static constexpr const char *kProcessRealUserName = "process.real_user.name";
+
/**
* An additional description about the runtime of the process, for example a specific vendor
* customization of the runtime environment.
@@ -2226,6 +2779,46 @@ static constexpr const char *kProcessRuntimeName = "process.runtime.name";
*/
static constexpr const char *kProcessRuntimeVersion = "process.runtime.version";
+/**
+ * The saved user ID (SUID) of the process.
+ */
+static constexpr const char *kProcessSavedUserId = "process.saved_user.id";
+
+/**
+ * The username of the saved user.
+ */
+static constexpr const char *kProcessSavedUserName = "process.saved_user.name";
+
+/**
+ * The PID of the process's session leader. This is also the session ID (SID) of the process.
+ */
+static constexpr const char *kProcessSessionLeaderPid = "process.session_leader.pid";
+
+/**
+ * The effective user ID (EUID) of the process.
+ */
+static constexpr const char *kProcessUserId = "process.user.id";
+
+/**
+ * The username of the effective user of the process.
+ */
+static constexpr const char *kProcessUserName = "process.user.name";
+
+/**
+ * Virtual process identifier.
+ *
+ * Notes:
+
- The process ID within a PID namespace. This is not necessarily unique across all
+ processes on the host but it is unique within the process namespace that the process exists
+ within.
+ */
+static constexpr const char *kProcessVpid = "process.vpid";
+
+/**
+ * The CPU state of the process.
+ */
+static constexpr const char *kProcessCpuState = "process.cpu.state";
+
/**
* The error codes of the Connect
* request. Error codes are always string values.
@@ -2261,6 +2854,31 @@ static constexpr const char *kRpcJsonrpcRequestId = "rpc.jsonrpc.request_id";
*/
static constexpr const char *kRpcJsonrpcVersion = "rpc.jsonrpc.version";
+/**
+ * Compressed size of the message in bytes.
+ */
+static constexpr const char *kRpcMessageCompressedSize = "rpc.message.compressed_size";
+
+/**
+ * MUST be calculated as two different counters starting from {@code 1} one for sent messages and
+ one for received message.
+ *
+ * Notes:
+
- This way we guarantee that the values will be consistent between different
+ implementations.
+ */
+static constexpr const char *kRpcMessageId = "rpc.message.id";
+
+/**
+ * Whether this is a received or sent message.
+ */
+static constexpr const char *kRpcMessageType = "rpc.message.type";
+
+/**
+ * Uncompressed size of the message in bytes.
+ */
+static constexpr const char *kRpcMessageUncompressedSize = "rpc.message.uncompressed_size";
+
/**
* The name of the (logical) method being called, must be equal to the $method part in the span
name.
@@ -2347,9 +2965,9 @@ static constexpr const char *kServiceInstanceId = "service.instance.id";
* Notes:
- MUST be the same for all instances of horizontally scaled services. If the value was not
specified, SDKs MUST fallback to {@code unknown_service:} concatenated with {@code process.executable.name}, e.g. {@code unknown_service:bash}.
- If {@code process.executable.name} is not available, the value MUST be set to {@code
- unknown_service}.
+ href="process.md">{@code process.executable.name}, e.g. {@code unknown_service:bash}. If {@code
+ process.executable.name} is not available, the value MUST be set to {@code unknown_service}.
+
*/
static constexpr const char *kServiceName = "service.name";
@@ -2382,6 +3000,18 @@ static constexpr const char *kSessionId = "session.id";
*/
static constexpr const char *kSessionPreviousId = "session.previous_id";
+/**
+ * SignalR HTTP connection closure status.
+ */
+static constexpr const char *kSignalrConnectionStatus = "signalr.connection.status";
+
+/**
+ * SignalR
+ * transport type
+ */
+static constexpr const char *kSignalrTransport = "signalr.transport";
+
/**
* Source address - domain name if available without reverse DNS lookup; otherwise, IP address or
Unix domain socket name.
@@ -2398,6 +3028,73 @@ static constexpr const char *kSourceAddress = "source.address";
*/
static constexpr const char *kSourcePort = "source.port";
+/**
+ * The device identifier
+ */
+static constexpr const char *kSystemDevice = "system.device";
+
+/**
+ * The logical CPU number [0..n-1]
+ */
+static constexpr const char *kSystemCpuLogicalNumber = "system.cpu.logical_number";
+
+/**
+ * The state of the CPU
+ */
+static constexpr const char *kSystemCpuState = "system.cpu.state";
+
+/**
+ * The memory state
+ */
+static constexpr const char *kSystemMemoryState = "system.memory.state";
+
+/**
+ * The paging access direction
+ */
+static constexpr const char *kSystemPagingDirection = "system.paging.direction";
+
+/**
+ * The memory paging state
+ */
+static constexpr const char *kSystemPagingState = "system.paging.state";
+
+/**
+ * The memory paging type
+ */
+static constexpr const char *kSystemPagingType = "system.paging.type";
+
+/**
+ * The filesystem mode
+ */
+static constexpr const char *kSystemFilesystemMode = "system.filesystem.mode";
+
+/**
+ * The filesystem mount path
+ */
+static constexpr const char *kSystemFilesystemMountpoint = "system.filesystem.mountpoint";
+
+/**
+ * The filesystem state
+ */
+static constexpr const char *kSystemFilesystemState = "system.filesystem.state";
+
+/**
+ * The filesystem type
+ */
+static constexpr const char *kSystemFilesystemType = "system.filesystem.type";
+
+/**
+ * A stateless protocol MUST NOT set this attribute
+ */
+static constexpr const char *kSystemNetworkState = "system.network.state";
+
+/**
+ * The process state, e.g., Linux Process State
+ * Codes
+ */
+static constexpr const char *kSystemProcessStatus = "system.process.status";
+
/**
* The language of the telemetry SDK.
*/
@@ -2740,6 +3437,12 @@ static constexpr const char *kUrlScheme = "url.scheme";
*/
static constexpr const char *kUrlSubdomain = "url.subdomain";
+/**
+ * The low-cardinality template of an absolute path reference.
+ */
+static constexpr const char *kUrlTemplate = "url.template";
+
/**
* The effective top level domain (eTLD), also known as the domain suffix, is the last part of the
domain name. For example, the top level domain for example.com is {@code com}.
@@ -2779,410 +3482,60 @@ static constexpr const char *kUserAgentOriginal = "user_agent.original";
static constexpr const char *kUserAgentVersion = "user_agent.version";
/**
- * The full invoked ARN as provided on the {@code Context} passed to the function ({@code
- Lambda-Runtime-Invoked-Function-Arn} header on the {@code /runtime/invocation/next} applicable).
- *
- * Notes:
-
- This may be different from {@code cloud.resource_id} if an alias is involved.
- */
-static constexpr const char *kAwsLambdaInvokedArn = "aws.lambda.invoked_arn";
-
-/**
- * Parent-child Reference type
- *
- * Notes:
-
- The causal relationship between a child Span and a parent Span.
- */
-static constexpr const char *kOpentracingRefType = "opentracing.ref_type";
-
-/**
- * Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code
- * is UNSET.
+ * Additional description of the web engine (e.g. detailed version and edition information).
*/
-static constexpr const char *kOtelStatusCode = "otel.status_code";
+static constexpr const char *kWebengineDescription = "webengine.description";
-/**
- * Description of the Status if it has a value, otherwise not set.
- */
-static constexpr const char *kOtelStatusDescription = "otel.status_description";
-
-/**
- * The AWS request ID as returned in the response headers {@code x-amz-request-id} or {@code
- * x-amz-requestid}.
- */
-static constexpr const char *kAwsRequestId = "aws.request_id";
-
-/**
- * The S3 bucket name the request refers to. Corresponds to the {@code --bucket} parameter of the S3 API operations.
- *
- * Notes:
-
- The {@code bucket} attribute is applicable to all S3 operations that reference a bucket,
-i.e. that require the bucket name as a mandatory parameter. This applies to almost all S3 operations
-except {@code list-buckets}.
- */
-static constexpr const char *kAwsS3Bucket = "aws.s3.bucket";
-
-/**
- * The source object (in the form {@code bucket}/{@code key}) for the copy operation.
- *
- * Notes:
-
- */
-static constexpr const char *kAwsS3CopySource = "aws.s3.copy_source";
-
-/**
- * The delete request container that specifies the objects to be deleted.
- *
- * Notes:
-
- */
-static constexpr const char *kAwsS3Delete = "aws.s3.delete";
-
-/**
- * The S3 object key the request refers to. Corresponds to the {@code --key} parameter of the S3 API operations.
- *
- * Notes:
-
- */
-static constexpr const char *kAwsS3Key = "aws.s3.key";
-
-/**
- * The part number of the part being uploaded in a multipart-upload operation. This is a positive
-integer between 1 and 10,000.
- *
- * Notes:
-
- */
-static constexpr const char *kAwsS3PartNumber = "aws.s3.part_number";
-
-/**
- * Upload ID that identifies the multipart upload.
- *
- * Notes:
-
- */
-static constexpr const char *kAwsS3UploadId = "aws.s3.upload_id";
-
-/**
- * The GraphQL document being executed.
- *
- * Notes:
-
- The value may be sanitized to exclude sensitive information.
- */
-static constexpr const char *kGraphqlDocument = "graphql.document";
-
-/**
- * The name of the operation being executed.
- */
-static constexpr const char *kGraphqlOperationName = "graphql.operation.name";
-
-/**
- * The type of the operation being executed.
- */
-static constexpr const char *kGraphqlOperationType = "graphql.operation.type";
-
-/**
- * Compressed size of the message in bytes.
- */
-static constexpr const char *kMessageCompressedSize = "message.compressed_size";
-
-/**
- * MUST be calculated as two different counters starting from {@code 1} one for sent messages and
- one for received message.
- *
- * Notes:
-
- This way we guarantee that the values will be consistent between different
- implementations.
- */
-static constexpr const char *kMessageId = "message.id";
-
-/**
- * Whether this is a received or sent message.
- */
-static constexpr const char *kMessageType = "message.type";
-
-/**
- * Uncompressed size of the message in bytes.
- */
-static constexpr const char *kMessageUncompressedSize = "message.uncompressed_size";
-
-// Enum definitions
-namespace LogIostreamValues
-{
-/** Logs from stdout stream. */
-static constexpr const char *kStdout = "stdout";
-/** Events from stderr stream. */
-static constexpr const char *kStderr = "stderr";
-} // namespace LogIostreamValues
-
-namespace IosStateValues
-{
-/** The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`. */
-static constexpr const char *kActive = "active";
-/** The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`. */
-static constexpr const char *kInactive = "inactive";
-/** The app is now in the background. This value is associated with UIKit notification
- * `applicationDidEnterBackground`. */
-static constexpr const char *kBackground = "background";
-/** The app is now in the foreground. This value is associated with UIKit notification
- * `applicationWillEnterForeground`. */
-static constexpr const char *kForeground = "foreground";
-/** The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`. */
-static constexpr const char *kTerminate = "terminate";
-} // namespace IosStateValues
-
-namespace AndroidStateValues
-{
-/** Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has
- * been called in the app for the first time. */
-static constexpr const char *kCreated = "created";
-/** Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been
- * called when the app was in the foreground state. */
-static constexpr const char *kBackground = "background";
-/** Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has
- * been called when the app was in either the created or background states. */
-static constexpr const char *kForeground = "foreground";
-} // namespace AndroidStateValues
-
-namespace StateValues
-{
-/** idle. */
-static constexpr const char *kIdle = "idle";
-/** used. */
-static constexpr const char *kUsed = "used";
-} // namespace StateValues
-
-namespace AspnetcoreRateLimitingResultValues
-{
-/** Lease was acquired. */
-static constexpr const char *kAcquired = "acquired";
-/** Lease request was rejected by the endpoint limiter. */
-static constexpr const char *kEndpointLimiter = "endpoint_limiter";
-/** Lease request was rejected by the global limiter. */
-static constexpr const char *kGlobalLimiter = "global_limiter";
-/** Lease request was canceled. */
-static constexpr const char *kRequestCanceled = "request_canceled";
-} // namespace AspnetcoreRateLimitingResultValues
-
-namespace SignalrConnectionStatusValues
-{
-/** The connection was closed normally. */
-static constexpr const char *kNormalClosure = "normal_closure";
-/** The connection was closed due to a timeout. */
-static constexpr const char *kTimeout = "timeout";
-/** The connection was closed because the app is shutting down. */
-static constexpr const char *kAppShutdown = "app_shutdown";
-} // namespace SignalrConnectionStatusValues
-
-namespace SignalrTransportValues
-{
-/** ServerSentEvents protocol. */
-static constexpr const char *kServerSentEvents = "server_sent_events";
-/** LongPolling protocol. */
-static constexpr const char *kLongPolling = "long_polling";
-/** WebSockets protocol. */
-static constexpr const char *kWebSockets = "web_sockets";
-} // namespace SignalrTransportValues
-
-namespace JvmMemoryTypeValues
-{
-/** Heap memory. */
-static constexpr const char *kHeap = "heap";
-/** Non-heap memory. */
-static constexpr const char *kNonHeap = "non_heap";
-} // namespace JvmMemoryTypeValues
-
-namespace ProcessCpuStateValues
-{
-/** system. */
-static constexpr const char *kSystem = "system";
-/** user. */
-static constexpr const char *kUser = "user";
-/** wait. */
-static constexpr const char *kWait = "wait";
-} // namespace ProcessCpuStateValues
-
-namespace SystemCpuStateValues
-{
-/** user. */
-static constexpr const char *kUser = "user";
-/** system. */
-static constexpr const char *kSystem = "system";
-/** nice. */
-static constexpr const char *kNice = "nice";
-/** idle. */
-static constexpr const char *kIdle = "idle";
-/** iowait. */
-static constexpr const char *kIowait = "iowait";
-/** interrupt. */
-static constexpr const char *kInterrupt = "interrupt";
-/** steal. */
-static constexpr const char *kSteal = "steal";
-} // namespace SystemCpuStateValues
-
-namespace SystemMemoryStateValues
-{
-/** used. */
-static constexpr const char *kUsed = "used";
-/** free. */
-static constexpr const char *kFree = "free";
-/** shared. */
-static constexpr const char *kShared = "shared";
-/** buffers. */
-static constexpr const char *kBuffers = "buffers";
-/** cached. */
-static constexpr const char *kCached = "cached";
-} // namespace SystemMemoryStateValues
-
-namespace SystemPagingDirectionValues
-{
-/** in. */
-static constexpr const char *kIn = "in";
-/** out. */
-static constexpr const char *kOut = "out";
-} // namespace SystemPagingDirectionValues
-
-namespace SystemPagingStateValues
-{
-/** used. */
-static constexpr const char *kUsed = "used";
-/** free. */
-static constexpr const char *kFree = "free";
-} // namespace SystemPagingStateValues
-
-namespace SystemPagingTypeValues
-{
-/** major. */
-static constexpr const char *kMajor = "major";
-/** minor. */
-static constexpr const char *kMinor = "minor";
-} // namespace SystemPagingTypeValues
-
-namespace SystemFilesystemStateValues
-{
-/** used. */
-static constexpr const char *kUsed = "used";
-/** free. */
-static constexpr const char *kFree = "free";
-/** reserved. */
-static constexpr const char *kReserved = "reserved";
-} // namespace SystemFilesystemStateValues
-
-namespace SystemFilesystemTypeValues
-{
-/** fat32. */
-static constexpr const char *kFat32 = "fat32";
-/** exfat. */
-static constexpr const char *kExfat = "exfat";
-/** ntfs. */
-static constexpr const char *kNtfs = "ntfs";
-/** refs. */
-static constexpr const char *kRefs = "refs";
-/** hfsplus. */
-static constexpr const char *kHfsplus = "hfsplus";
-/** ext4. */
-static constexpr const char *kExt4 = "ext4";
-} // namespace SystemFilesystemTypeValues
-
-namespace SystemNetworkStateValues
-{
-/** close. */
-static constexpr const char *kClose = "close";
-/** close_wait. */
-static constexpr const char *kCloseWait = "close_wait";
-/** closing. */
-static constexpr const char *kClosing = "closing";
-/** delete. */
-static constexpr const char *kDelete = "delete";
-/** established. */
-static constexpr const char *kEstablished = "established";
-/** fin_wait_1. */
-static constexpr const char *kFinWait1 = "fin_wait_1";
-/** fin_wait_2. */
-static constexpr const char *kFinWait2 = "fin_wait_2";
-/** last_ack. */
-static constexpr const char *kLastAck = "last_ack";
-/** listen. */
-static constexpr const char *kListen = "listen";
-/** syn_recv. */
-static constexpr const char *kSynRecv = "syn_recv";
-/** syn_sent. */
-static constexpr const char *kSynSent = "syn_sent";
-/** time_wait. */
-static constexpr const char *kTimeWait = "time_wait";
-} // namespace SystemNetworkStateValues
+/**
+ * The name of the web engine.
+ */
+static constexpr const char *kWebengineName = "webengine.name";
-namespace SystemProcessStatusValues
+/**
+ * The version of the web engine.
+ */
+static constexpr const char *kWebengineVersion = "webengine.version";
+
+// Enum definitions
+namespace AspnetcoreRateLimitingResultValues
{
-/** running. */
-static constexpr const char *kRunning = "running";
-/** sleeping. */
-static constexpr const char *kSleeping = "sleeping";
-/** stopped. */
-static constexpr const char *kStopped = "stopped";
-/** defunct. */
-static constexpr const char *kDefunct = "defunct";
-} // namespace SystemProcessStatusValues
+/** Lease was acquired. */
+static constexpr const char *kAcquired = "acquired";
+/** Lease request was rejected by the endpoint limiter. */
+static constexpr const char *kEndpointLimiter = "endpoint_limiter";
+/** Lease request was rejected by the global limiter. */
+static constexpr const char *kGlobalLimiter = "global_limiter";
+/** Lease request was canceled. */
+static constexpr const char *kRequestCanceled = "request_canceled";
+} // namespace AspnetcoreRateLimitingResultValues
+
+namespace AspnetcoreDiagnosticsExceptionResultValues
+{
+/** Exception was handled by the exception handling middleware. */
+static constexpr const char *kHandled = "handled";
+/** Exception was not handled by the exception handling middleware. */
+static constexpr const char *kUnhandled = "unhandled";
+/** Exception handling was skipped because the response had started. */
+static constexpr const char *kSkipped = "skipped";
+/** Exception handling didn't run because the request was aborted. */
+static constexpr const char *kAborted = "aborted";
+} // namespace AspnetcoreDiagnosticsExceptionResultValues
+
+namespace AspnetcoreRoutingMatchStatusValues
+{
+/** Match succeeded. */
+static constexpr const char *kSuccess = "success";
+/** Match failed. */
+static constexpr const char *kFailure = "failure";
+} // namespace AspnetcoreRoutingMatchStatusValues
+
+namespace AwsEcsLaunchtypeValues
+{
+/** ec2. */
+static constexpr const char *kEc2 = "ec2";
+/** fargate. */
+static constexpr const char *kFargate = "fargate";
+} // namespace AwsEcsLaunchtypeValues
namespace CloudPlatformValues
{
@@ -3274,73 +3627,13 @@ static constexpr const char *kSystem = "system";
static constexpr const char *kKernel = "kernel";
} // namespace ContainerCpuStateValues
-namespace DbCassandraConsistencyLevelValues
-{
-/** all. */
-static constexpr const char *kAll = "all";
-/** each_quorum. */
-static constexpr const char *kEachQuorum = "each_quorum";
-/** quorum. */
-static constexpr const char *kQuorum = "quorum";
-/** local_quorum. */
-static constexpr const char *kLocalQuorum = "local_quorum";
-/** one. */
-static constexpr const char *kOne = "one";
-/** two. */
-static constexpr const char *kTwo = "two";
-/** three. */
-static constexpr const char *kThree = "three";
-/** local_one. */
-static constexpr const char *kLocalOne = "local_one";
-/** any. */
-static constexpr const char *kAny = "any";
-/** serial. */
-static constexpr const char *kSerial = "serial";
-/** local_serial. */
-static constexpr const char *kLocalSerial = "local_serial";
-} // namespace DbCassandraConsistencyLevelValues
-
-namespace DbCosmosdbConnectionModeValues
-{
-/** Gateway (HTTP) connections mode. */
-static constexpr const char *kGateway = "gateway";
-/** Direct connection. */
-static constexpr const char *kDirect = "direct";
-} // namespace DbCosmosdbConnectionModeValues
-
-namespace DbCosmosdbOperationTypeValues
+namespace DbClientConnectionsStateValues
{
-/** invalid. */
-static constexpr const char *kInvalid = "Invalid";
-/** create. */
-static constexpr const char *kCreate = "Create";
-/** patch. */
-static constexpr const char *kPatch = "Patch";
-/** read. */
-static constexpr const char *kRead = "Read";
-/** read_feed. */
-static constexpr const char *kReadFeed = "ReadFeed";
-/** delete. */
-static constexpr const char *kDelete = "Delete";
-/** replace. */
-static constexpr const char *kReplace = "Replace";
-/** execute. */
-static constexpr const char *kExecute = "Execute";
-/** query. */
-static constexpr const char *kQuery = "Query";
-/** head. */
-static constexpr const char *kHead = "Head";
-/** head_feed. */
-static constexpr const char *kHeadFeed = "HeadFeed";
-/** upsert. */
-static constexpr const char *kUpsert = "Upsert";
-/** batch. */
-static constexpr const char *kBatch = "Batch";
-/** query_plan. */
-static constexpr const char *kQueryPlan = "QueryPlan";
-/** execute_javascript. */
-static constexpr const char *kExecuteJavascript = "ExecuteJavaScript";
-} // namespace DbCosmosdbOperationTypeValues
+/** idle. */
+static constexpr const char *kIdle = "idle";
+/** used. */
+static constexpr const char *kUsed = "used";
+} // namespace DbClientConnectionsStateValues
namespace DbSystemValues
{
@@ -3450,6 +3743,95 @@ static constexpr const char *kSpanner = "spanner";
static constexpr const char *kTrino = "trino";
} // namespace DbSystemValues
+namespace DbCassandraConsistencyLevelValues
+{
+/** all. */
+static constexpr const char *kAll = "all";
+/** each_quorum. */
+static constexpr const char *kEachQuorum = "each_quorum";
+/** quorum. */
+static constexpr const char *kQuorum = "quorum";
+/** local_quorum. */
+static constexpr const char *kLocalQuorum = "local_quorum";
+/** one. */
+static constexpr const char *kOne = "one";
+/** two. */
+static constexpr const char *kTwo = "two";
+/** three. */
+static constexpr const char *kThree = "three";
+/** local_one. */
+static constexpr const char *kLocalOne = "local_one";
+/** any. */
+static constexpr const char *kAny = "any";
+/** serial. */
+static constexpr const char *kSerial = "serial";
+/** local_serial. */
+static constexpr const char *kLocalSerial = "local_serial";
+} // namespace DbCassandraConsistencyLevelValues
+
+namespace DbCosmosdbConnectionModeValues
+{
+/** Gateway (HTTP) connections mode. */
+static constexpr const char *kGateway = "gateway";
+/** Direct connection. */
+static constexpr const char *kDirect = "direct";
+} // namespace DbCosmosdbConnectionModeValues
+
+namespace DbCosmosdbOperationTypeValues
+{
+/** invalid. */
+static constexpr const char *kInvalid = "Invalid";
+/** create. */
+static constexpr const char *kCreate = "Create";
+/** patch. */
+static constexpr const char *kPatch = "Patch";
+/** read. */
+static constexpr const char *kRead = "Read";
+/** read_feed. */
+static constexpr const char *kReadFeed = "ReadFeed";
+/** delete. */
+static constexpr const char *kDelete = "Delete";
+/** replace. */
+static constexpr const char *kReplace = "Replace";
+/** execute. */
+static constexpr const char *kExecute = "Execute";
+/** query. */
+static constexpr const char *kQuery = "Query";
+/** head. */
+static constexpr const char *kHead = "Head";
+/** head_feed. */
+static constexpr const char *kHeadFeed = "HeadFeed";
+/** upsert. */
+static constexpr const char *kUpsert = "Upsert";
+/** batch. */
+static constexpr const char *kBatch = "Batch";
+/** query_plan. */
+static constexpr const char *kQueryPlan = "QueryPlan";
+/** execute_javascript. */
+static constexpr const char *kExecuteJavascript = "ExecuteJavaScript";
+} // namespace DbCosmosdbOperationTypeValues
+
+namespace AndroidStateValues
+{
+/** Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has
+ * been called in the app for the first time. */
+static constexpr const char *kCreated = "created";
+/** Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been
+ * called when the app was in the foreground state. */
+static constexpr const char *kBackground = "background";
+/** Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has
+ * been called when the app was in either the created or background states. */
+static constexpr const char *kForeground = "foreground";
+} // namespace AndroidStateValues
+
+namespace StateValues
+{
+/** idle. */
+static constexpr const char *kIdle = "idle";
+/** used. */
+static constexpr const char *kUsed = "used";
+} // namespace StateValues
+
namespace HttpFlavorValues
{
/** HTTP/1.0. */
@@ -3466,6 +3848,22 @@ static constexpr const char *kSpdy = "SPDY";
static constexpr const char *kQuic = "QUIC";
} // namespace HttpFlavorValues
+namespace IosStateValues
+{
+/** The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`. */
+static constexpr const char *kActive = "active";
+/** The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`. */
+static constexpr const char *kInactive = "inactive";
+/** The app is now in the background. This value is associated with UIKit notification
+ * `applicationDidEnterBackground`. */
+static constexpr const char *kBackground = "background";
+/** The app is now in the foreground. This value is associated with UIKit notification
+ * `applicationWillEnterForeground`. */
+static constexpr const char *kForeground = "foreground";
+/** The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`. */
+static constexpr const char *kTerminate = "terminate";
+} // namespace IosStateValues
+
namespace NetSockFamilyValues
{
/** IPv4 address. */
@@ -3490,6 +3888,14 @@ static constexpr const char *kInproc = "inproc";
static constexpr const char *kOther = "other";
} // namespace NetTransportValues
+namespace MessageTypeValues
+{
+/** sent. */
+static constexpr const char *kSent = "SENT";
+/** received. */
+static constexpr const char *kReceived = "RECEIVED";
+} // namespace MessageTypeValues
+
namespace SystemProcessesStatusValues
{
/** running. */
@@ -3554,6 +3960,22 @@ static constexpr const char *kTimer = "timer";
static constexpr const char *kOther = "other";
} // namespace FaasTriggerValues
+namespace GenAiSystemValues
+{
+/** OpenAI. */
+static constexpr const char *kOpenai = "openai";
+} // namespace GenAiSystemValues
+
+namespace GraphqlOperationTypeValues
+{
+/** GraphQL query. */
+static constexpr const char *kQuery = "query";
+/** GraphQL mutation. */
+static constexpr const char *kMutation = "mutation";
+/** GraphQL subscription. */
+static constexpr const char *kSubscription = "subscription";
+} // namespace GraphqlOperationTypeValues
+
namespace HostArchValues
{
/** AMD64. */
@@ -3606,7 +4028,41 @@ static constexpr const char *kTrace = "TRACE";
static constexpr const char *kOther = "_OTHER";
} // namespace HttpRequestMethodValues
-namespace MessagingOperationValues
+namespace JvmMemoryTypeValues
+{
+/** Heap memory. */
+static constexpr const char *kHeap = "heap";
+/** Non-heap memory. */
+static constexpr const char *kNonHeap = "non_heap";
+} // namespace JvmMemoryTypeValues
+
+namespace JvmThreadStateValues
+{
+/** A thread that has not yet started is in this state. */
+static constexpr const char *kNew = "new";
+/** A thread executing in the Java virtual machine is in this state. */
+static constexpr const char *kRunnable = "runnable";
+/** A thread that is blocked waiting for a monitor lock is in this state. */
+static constexpr const char *kBlocked = "blocked";
+/** A thread that is waiting indefinitely for another thread to perform a particular action is in
+ * this state. */
+static constexpr const char *kWaiting = "waiting";
+/** A thread that is waiting for another thread to perform an action for up to a specified waiting
+ * time is in this state. */
+static constexpr const char *kTimedWaiting = "timed_waiting";
+/** A thread that has exited is in this state. */
+static constexpr const char *kTerminated = "terminated";
+} // namespace JvmThreadStateValues
+
+namespace LogIostreamValues
+{
+/** Logs from stdout stream. */
+static constexpr const char *kStdout = "stdout";
+/** Events from stderr stream. */
+static constexpr const char *kStderr = "stderr";
+} // namespace LogIostreamValues
+
+namespace MessagingOperationTypeValues
{
/** One or more messages are provided for publishing to an intermediary. If a single message is
* published, the context of the "Publish" span can be used as the creation context and no
@@ -3622,7 +4078,31 @@ static constexpr const char *kReceive = "receive";
static constexpr const char *kDeliver = "process";
/** One or more messages are settled. */
static constexpr const char *kSettle = "settle";
-} // namespace MessagingOperationValues
+} // namespace MessagingOperationTypeValues
+
+namespace MessagingSystemValues
+{
+/** Apache ActiveMQ. */
+static constexpr const char *kActivemq = "activemq";
+/** Amazon Simple Queue Service (SQS). */
+static constexpr const char *kAwsSqs = "aws_sqs";
+/** Azure Event Grid. */
+static constexpr const char *kEventgrid = "eventgrid";
+/** Azure Event Hubs. */
+static constexpr const char *kEventhubs = "eventhubs";
+/** Azure Service Bus. */
+static constexpr const char *kServicebus = "servicebus";
+/** Google Cloud Pub/Sub. */
+static constexpr const char *kGcpPubsub = "gcp_pubsub";
+/** Java Message Service. */
+static constexpr const char *kJms = "jms";
+/** Apache Kafka. */
+static constexpr const char *kKafka = "kafka";
+/** RabbitMQ. */
+static constexpr const char *kRabbitmq = "rabbitmq";
+/** Apache RocketMQ. */
+static constexpr const char *kRocketmq = "rocketmq";
+} // namespace MessagingSystemValues
namespace MessagingRocketmqConsumptionModelValues
{
@@ -3656,30 +4136,6 @@ static constexpr const char *kDeadLetter = "dead_letter";
static constexpr const char *kDefer = "defer";
} // namespace MessagingServicebusDispositionStatusValues
-namespace MessagingSystemValues
-{
-/** Apache ActiveMQ. */
-static constexpr const char *kActivemq = "activemq";
-/** Amazon Simple Queue Service (SQS). */
-static constexpr const char *kAwsSqs = "aws_sqs";
-/** Azure Event Grid. */
-static constexpr const char *kEventgrid = "eventgrid";
-/** Azure Event Hubs. */
-static constexpr const char *kEventhubs = "eventhubs";
-/** Azure Service Bus. */
-static constexpr const char *kServicebus = "servicebus";
-/** Google Cloud Pub/Sub. */
-static constexpr const char *kGcpPubsub = "gcp_pubsub";
-/** Java Message Service. */
-static constexpr const char *kJms = "jms";
-/** Apache Kafka. */
-static constexpr const char *kKafka = "kafka";
-/** RabbitMQ. */
-static constexpr const char *kRabbitmq = "rabbitmq";
-/** Apache RocketMQ. */
-static constexpr const char *kRocketmq = "rocketmq";
-} // namespace MessagingSystemValues
-
namespace NetworkConnectionSubtypeValues
{
/** GPRS. */
@@ -3768,6 +4224,14 @@ static constexpr const char *kIpv4 = "ipv4";
static constexpr const char *kIpv6 = "ipv6";
} // namespace NetworkTypeValues
+namespace OpentracingRefTypeValues
+{
+/** The parent Span depends on the child Span in some capacity. */
+static constexpr const char *kChildOf = "child_of";
+/** The parent Span doesn't depend in any way on the result of the child Span. */
+static constexpr const char *kFollowsFrom = "follows_from";
+} // namespace OpentracingRefTypeValues
+
namespace OsTypeValues
{
/** Microsoft Windows. */
@@ -3794,6 +4258,41 @@ static constexpr const char *kSolaris = "solaris";
static constexpr const char *kZOs = "z_os";
} // namespace OsTypeValues
+namespace OtelStatusCodeValues
+{
+/** The operation has been validated by an Application developer or Operator to have completed
+ * successfully. */
+static constexpr const char *kOk = "OK";
+/** The operation contains an error. */
+static constexpr const char *kError = "ERROR";
+} // namespace OtelStatusCodeValues
+
+namespace ProcessContextSwitchTypeValues
+{
+/** voluntary. */
+static constexpr const char *kVoluntary = "voluntary";
+/** involuntary. */
+static constexpr const char *kInvoluntary = "involuntary";
+} // namespace ProcessContextSwitchTypeValues
+
+namespace ProcessPagingFaultTypeValues
+{
+/** major. */
+static constexpr const char *kMajor = "major";
+/** minor. */
+static constexpr const char *kMinor = "minor";
+} // namespace ProcessPagingFaultTypeValues
+
+namespace ProcessCpuStateValues
+{
+/** system. */
+static constexpr const char *kSystem = "system";
+/** user. */
+static constexpr const char *kUser = "user";
+/** wait. */
+static constexpr const char *kWait = "wait";
+} // namespace ProcessCpuStateValues
+
namespace RpcConnectRpcErrorCodeValues
{
/** cancelled. */
@@ -3868,6 +4367,14 @@ static constexpr const int kDataLoss = 15;
static constexpr const int kUnauthenticated = 16;
} // namespace RpcGrpcStatusCodeValues
+namespace RpcMessageTypeValues
+{
+/** sent. */
+static constexpr const char *kSent = "SENT";
+/** received. */
+static constexpr const char *kReceived = "RECEIVED";
+} // namespace RpcMessageTypeValues
+
namespace RpcSystemValues
{
/** gRPC. */
@@ -3882,6 +4389,148 @@ static constexpr const char *kApacheDubbo = "apache_dubbo";
static constexpr const char *kConnectRpc = "connect_rpc";
} // namespace RpcSystemValues
+namespace SignalrConnectionStatusValues
+{
+/** The connection was closed normally. */
+static constexpr const char *kNormalClosure = "normal_closure";
+/** The connection was closed due to a timeout. */
+static constexpr const char *kTimeout = "timeout";
+/** The connection was closed because the app is shutting down. */
+static constexpr const char *kAppShutdown = "app_shutdown";
+} // namespace SignalrConnectionStatusValues
+
+namespace SignalrTransportValues
+{
+/** ServerSentEvents protocol. */
+static constexpr const char *kServerSentEvents = "server_sent_events";
+/** LongPolling protocol. */
+static constexpr const char *kLongPolling = "long_polling";
+/** WebSockets protocol. */
+static constexpr const char *kWebSockets = "web_sockets";
+} // namespace SignalrTransportValues
+
+namespace SystemCpuStateValues
+{
+/** user. */
+static constexpr const char *kUser = "user";
+/** system. */
+static constexpr const char *kSystem = "system";
+/** nice. */
+static constexpr const char *kNice = "nice";
+/** idle. */
+static constexpr const char *kIdle = "idle";
+/** iowait. */
+static constexpr const char *kIowait = "iowait";
+/** interrupt. */
+static constexpr const char *kInterrupt = "interrupt";
+/** steal. */
+static constexpr const char *kSteal = "steal";
+} // namespace SystemCpuStateValues
+
+namespace SystemMemoryStateValues
+{
+/** used. */
+static constexpr const char *kUsed = "used";
+/** free. */
+static constexpr const char *kFree = "free";
+/** shared. */
+static constexpr const char *kShared = "shared";
+/** buffers. */
+static constexpr const char *kBuffers = "buffers";
+/** cached. */
+static constexpr const char *kCached = "cached";
+} // namespace SystemMemoryStateValues
+
+namespace SystemPagingDirectionValues
+{
+/** in. */
+static constexpr const char *kIn = "in";
+/** out. */
+static constexpr const char *kOut = "out";
+} // namespace SystemPagingDirectionValues
+
+namespace SystemPagingStateValues
+{
+/** used. */
+static constexpr const char *kUsed = "used";
+/** free. */
+static constexpr const char *kFree = "free";
+} // namespace SystemPagingStateValues
+
+namespace SystemPagingTypeValues
+{
+/** major. */
+static constexpr const char *kMajor = "major";
+/** minor. */
+static constexpr const char *kMinor = "minor";
+} // namespace SystemPagingTypeValues
+
+namespace SystemFilesystemStateValues
+{
+/** used. */
+static constexpr const char *kUsed = "used";
+/** free. */
+static constexpr const char *kFree = "free";
+/** reserved. */
+static constexpr const char *kReserved = "reserved";
+} // namespace SystemFilesystemStateValues
+
+namespace SystemFilesystemTypeValues
+{
+/** fat32. */
+static constexpr const char *kFat32 = "fat32";
+/** exfat. */
+static constexpr const char *kExfat = "exfat";
+/** ntfs. */
+static constexpr const char *kNtfs = "ntfs";
+/** refs. */
+static constexpr const char *kRefs = "refs";
+/** hfsplus. */
+static constexpr const char *kHfsplus = "hfsplus";
+/** ext4. */
+static constexpr const char *kExt4 = "ext4";
+} // namespace SystemFilesystemTypeValues
+
+namespace SystemNetworkStateValues
+{
+/** close. */
+static constexpr const char *kClose = "close";
+/** close_wait. */
+static constexpr const char *kCloseWait = "close_wait";
+/** closing. */
+static constexpr const char *kClosing = "closing";
+/** delete. */
+static constexpr const char *kDelete = "delete";
+/** established. */
+static constexpr const char *kEstablished = "established";
+/** fin_wait_1. */
+static constexpr const char *kFinWait1 = "fin_wait_1";
+/** fin_wait_2. */
+static constexpr const char *kFinWait2 = "fin_wait_2";
+/** last_ack. */
+static constexpr const char *kLastAck = "last_ack";
+/** listen. */
+static constexpr const char *kListen = "listen";
+/** syn_recv. */
+static constexpr const char *kSynRecv = "syn_recv";
+/** syn_sent. */
+static constexpr const char *kSynSent = "syn_sent";
+/** time_wait. */
+static constexpr const char *kTimeWait = "time_wait";
+} // namespace SystemNetworkStateValues
+
+namespace SystemProcessStatusValues
+{
+/** running. */
+static constexpr const char *kRunning = "running";
+/** sleeping. */
+static constexpr const char *kSleeping = "sleeping";
+/** stopped. */
+static constexpr const char *kStopped = "stopped";
+/** defunct. */
+static constexpr const char *kDefunct = "defunct";
+} // namespace SystemProcessStatusValues
+
namespace TelemetrySdkLanguageValues
{
/** cpp. */
@@ -3918,41 +4567,6 @@ static constexpr const char *kSsl = "ssl";
static constexpr const char *kTls = "tls";
} // namespace TlsProtocolNameValues
-namespace OpentracingRefTypeValues
-{
-/** The parent Span depends on the child Span in some capacity. */
-static constexpr const char *kChildOf = "child_of";
-/** The parent Span doesn't depend in any way on the result of the child Span. */
-static constexpr const char *kFollowsFrom = "follows_from";
-} // namespace OpentracingRefTypeValues
-
-namespace OtelStatusCodeValues
-{
-/** The operation has been validated by an Application developer or Operator to have completed
- * successfully. */
-static constexpr const char *kOk = "OK";
-/** The operation contains an error. */
-static constexpr const char *kError = "ERROR";
-} // namespace OtelStatusCodeValues
-
-namespace GraphqlOperationTypeValues
-{
-/** GraphQL query. */
-static constexpr const char *kQuery = "query";
-/** GraphQL mutation. */
-static constexpr const char *kMutation = "mutation";
-/** GraphQL subscription. */
-static constexpr const char *kSubscription = "subscription";
-} // namespace GraphqlOperationTypeValues
-
-namespace MessageTypeValues
-{
-/** sent. */
-static constexpr const char *kSent = "SENT";
-/** received. */
-static constexpr const char *kReceived = "RECEIVED";
-} // namespace MessageTypeValues
-
} // namespace SemanticConventions
} // namespace trace
OPENTELEMETRY_END_NAMESPACE
diff --git a/buildscripts/semantic-convention/generate.sh b/buildscripts/semantic-convention/generate.sh
index eccc066c1c..2bcd07e2f9 100755
--- a/buildscripts/semantic-convention/generate.sh
+++ b/buildscripts/semantic-convention/generate.sh
@@ -19,7 +19,7 @@ ROOT_DIR="${SCRIPT_DIR}/../../"
# https://github.com/open-telemetry/opentelemetry-specification
# Repository from 1.21.0:
# https://github.com/open-telemetry/semantic-conventions
-SEMCONV_VERSION=1.25.0
+SEMCONV_VERSION=1.26.0
# repository: https://github.com/open-telemetry/build-tools
GENERATOR_VERSION=0.24.0
diff --git a/buildscripts/semantic-convention/templates/SemanticAttributes.h.j2 b/buildscripts/semantic-convention/templates/SemanticAttributes.h.j2
index 3ec0317d4d..0ed9ce8dab 100644
--- a/buildscripts/semantic-convention/templates/SemanticAttributes.h.j2
+++ b/buildscripts/semantic-convention/templates/SemanticAttributes.h.j2
@@ -58,7 +58,17 @@ namespace {{class}}
*/
static constexpr const char *kSchemaUrl = "{{schemaUrl}}";
{%- for attribute in attributes if attribute.is_local and not attribute.ref %}
+{#
+ MAINTAINER:
+ semconv "messaging.client_id" is deprecated
+ semconv "messaging.client.id" is to be used instead
+
+ Now, because we use k{{attribute.fqn | to_camelcase(True)}},
+ both names collide on C++ symbol kMessagingClientId.
+ Do not generate code for semconv "messaging.client_id"
+#}
+{%- if (attribute.fqn != "messaging.client_id") %}
/**
* {{attribute.brief | render_markdown(code="{{@code {0}}}", paragraph="{0}")}}
{%- if attribute.note %}
@@ -75,6 +85,7 @@ static constexpr const char *kSchemaUrl = "{{schemaUrl}}";
OPENTELEMETRY_DEPRECATED
{%- endif %}
static constexpr const char *k{{attribute.fqn | to_camelcase(True)}} = "{{attribute.fqn}}";
+{%- endif %}
{%- endfor %}
// Enum definitions
diff --git a/sdk/include/opentelemetry/sdk/resource/semantic_conventions.h b/sdk/include/opentelemetry/sdk/resource/semantic_conventions.h
index 7e550f238a..03996f2621 100644
--- a/sdk/include/opentelemetry/sdk/resource/semantic_conventions.h
+++ b/sdk/include/opentelemetry/sdk/resource/semantic_conventions.h
@@ -24,67 +24,14 @@ namespace SemanticConventions
/**
* The URL of the OpenTelemetry schema for these keys and values.
*/
-static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.25.0";
+static constexpr const char *kSchemaUrl = "https://opentelemetry.io/schemas/1.26.0";
/**
- * Identifies the class / type of event.
- *
- * Notes:
-
- Event names are subject to the same rules as attribute
- names. Notably, event names are namespaced to avoid collisions and provide a clean separation
- of semantics for events in separate domains like browser, mobile, and kubernetes.
- */
-static constexpr const char *kEventName = "event.name";
-
-/**
- * A unique identifier for the Log Record.
- *
- * Notes:
-
- If an id is provided, other log records with the same id will be considered duplicates
-and can be removed safely. This means, that two distinguishable log records MUST have different
-values. The id MAY be an Universally Unique Lexicographically
-Sortable Identifier (ULID), but other identifiers (e.g. UUID) may be used as needed.
- */
-static constexpr const char *kLogRecordUid = "log.record.uid";
-
-/**
- * The stream associated with the log. See below for a list of well-known values.
- */
-static constexpr const char *kLogIostream = "log.iostream";
-
-/**
- * The basename of the file.
- */
-static constexpr const char *kLogFileName = "log.file.name";
-
-/**
- * The basename of the file, with symlinks resolved.
- */
-static constexpr const char *kLogFileNameResolved = "log.file.name_resolved";
-
-/**
- * The full path to the file.
- */
-static constexpr const char *kLogFilePath = "log.file.path";
-
-/**
- * The full path to the file, with symlinks resolved.
- */
-static constexpr const char *kLogFilePathResolved = "log.file.path_resolved";
-
-/**
- * The name of the connection pool; unique within the instrumented application. In case the
- * connection pool implementation doesn't provide a name, instrumentation should use a combination
- * of {@code server.address} and {@code server.port} attributes formatted as {@code
- * server.address:server.port}.
- */
-static constexpr const char *kPoolName = "pool.name";
-
-/**
- * The state of a connection in the pool
+ * Uniquely identifies the framework API revision offered by a version ({@code os.version}) of the
+ * android operating system. More information can be found here.
*/
-static constexpr const char *kState = "state";
+static constexpr const char *kAndroidOsApiLevel = "android.os.api_level";
/**
* Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
@@ -99,6 +46,12 @@ static constexpr const char *kAspnetcoreRateLimitingResult = "aspnetcore.rate_li
static constexpr const char *kAspnetcoreDiagnosticsHandlerType =
"aspnetcore.diagnostics.handler.type";
+/**
+ * ASP.NET Core exception middleware handling result
+ */
+static constexpr const char *kAspnetcoreDiagnosticsExceptionResult =
+ "aspnetcore.diagnostics.exception.result";
+
/**
* Rate limiting policy name.
*/
@@ -115,239 +68,336 @@ static constexpr const char *kAspnetcoreRequestIsUnhandled = "aspnetcore.request
static constexpr const char *kAspnetcoreRoutingIsFallback = "aspnetcore.routing.is_fallback";
/**
- * SignalR HTTP connection closure status.
+ * Match result - success or failure
*/
-static constexpr const char *kSignalrConnectionStatus = "signalr.connection.status";
+static constexpr const char *kAspnetcoreRoutingMatchStatus = "aspnetcore.routing.match_status";
/**
- * SignalR
- * transport type
+ * The AWS request ID as returned in the response headers {@code x-amz-request-id} or {@code
+ * x-amz-requestid}.
*/
-static constexpr const char *kSignalrTransport = "signalr.transport";
+static constexpr const char *kAwsRequestId = "aws.request_id";
/**
- * Name of the buffer pool.
- *
- * Notes:
-
+ * The JSON-serialized value of each item in the {@code AttributeDefinitions} request field.
*/
-static constexpr const char *kJvmBufferPoolName = "jvm.buffer.pool.name";
+static constexpr const char *kAwsDynamodbAttributeDefinitions =
+ "aws.dynamodb.attribute_definitions";
/**
- * Name of the memory pool.
- *
- * Notes:
-
+ * The value of the {@code AttributesToGet} request parameter.
*/
-static constexpr const char *kJvmMemoryPoolName = "jvm.memory.pool.name";
+static constexpr const char *kAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get";
/**
- * The type of memory.
+ * The value of the {@code ConsistentRead} request parameter.
*/
-static constexpr const char *kJvmMemoryType = "jvm.memory.type";
+static constexpr const char *kAwsDynamodbConsistentRead = "aws.dynamodb.consistent_read";
/**
- * The CPU state for this data point. A process SHOULD be characterized either by data
- * points with no {@code state} labels, or only data points with {@code state} labels.
+ * The JSON-serialized value of each item in the {@code ConsumedCapacity} response field.
*/
-static constexpr const char *kProcessCpuState = "process.cpu.state";
+static constexpr const char *kAwsDynamodbConsumedCapacity = "aws.dynamodb.consumed_capacity";
/**
- * The device identifier
+ * The value of the {@code Count} response parameter.
*/
-static constexpr const char *kSystemDevice = "system.device";
+static constexpr const char *kAwsDynamodbCount = "aws.dynamodb.count";
/**
- * The logical CPU number [0..n-1]
+ * The value of the {@code ExclusiveStartTableName} request parameter.
*/
-static constexpr const char *kSystemCpuLogicalNumber = "system.cpu.logical_number";
+static constexpr const char *kAwsDynamodbExclusiveStartTable = "aws.dynamodb.exclusive_start_table";
/**
- * The CPU state for this data point. A system's CPU SHOULD be characterized either by data
- * points with no {@code state} labels, or only data points with {@code state} labels.
+ * The JSON-serialized value of each item in the {@code GlobalSecondaryIndexUpdates} request field.
*/
-static constexpr const char *kSystemCpuState = "system.cpu.state";
+static constexpr const char *kAwsDynamodbGlobalSecondaryIndexUpdates =
+ "aws.dynamodb.global_secondary_index_updates";
/**
- * The memory state
+ * The JSON-serialized value of each item of the {@code GlobalSecondaryIndexes} request field
*/
-static constexpr const char *kSystemMemoryState = "system.memory.state";
+static constexpr const char *kAwsDynamodbGlobalSecondaryIndexes =
+ "aws.dynamodb.global_secondary_indexes";
/**
- * The paging access direction
+ * The value of the {@code IndexName} request parameter.
*/
-static constexpr const char *kSystemPagingDirection = "system.paging.direction";
+static constexpr const char *kAwsDynamodbIndexName = "aws.dynamodb.index_name";
/**
- * The memory paging state
+ * The JSON-serialized value of the {@code ItemCollectionMetrics} response field.
*/
-static constexpr const char *kSystemPagingState = "system.paging.state";
+static constexpr const char *kAwsDynamodbItemCollectionMetrics =
+ "aws.dynamodb.item_collection_metrics";
/**
- * The memory paging type
+ * The value of the {@code Limit} request parameter.
*/
-static constexpr const char *kSystemPagingType = "system.paging.type";
+static constexpr const char *kAwsDynamodbLimit = "aws.dynamodb.limit";
/**
- * The filesystem mode
+ * The JSON-serialized value of each item of the {@code LocalSecondaryIndexes} request field.
*/
-static constexpr const char *kSystemFilesystemMode = "system.filesystem.mode";
+static constexpr const char *kAwsDynamodbLocalSecondaryIndexes =
+ "aws.dynamodb.local_secondary_indexes";
/**
- * The filesystem mount path
+ * The value of the {@code ProjectionExpression} request parameter.
*/
-static constexpr const char *kSystemFilesystemMountpoint = "system.filesystem.mountpoint";
+static constexpr const char *kAwsDynamodbProjection = "aws.dynamodb.projection";
/**
- * The filesystem state
+ * The value of the {@code ProvisionedThroughput.ReadCapacityUnits} request parameter.
*/
-static constexpr const char *kSystemFilesystemState = "system.filesystem.state";
+static constexpr const char *kAwsDynamodbProvisionedReadCapacity =
+ "aws.dynamodb.provisioned_read_capacity";
/**
- * The filesystem type
+ * The value of the {@code ProvisionedThroughput.WriteCapacityUnits} request parameter.
*/
-static constexpr const char *kSystemFilesystemType = "system.filesystem.type";
+static constexpr const char *kAwsDynamodbProvisionedWriteCapacity =
+ "aws.dynamodb.provisioned_write_capacity";
/**
- * A stateless protocol MUST NOT set this attribute
+ * The value of the {@code ScanIndexForward} request parameter.
*/
-static constexpr const char *kSystemNetworkState = "system.network.state";
+static constexpr const char *kAwsDynamodbScanForward = "aws.dynamodb.scan_forward";
/**
- * The process state, e.g., Linux Process State
- * Codes
+ * The value of the {@code ScannedCount} response parameter.
*/
-static constexpr const char *kSystemProcessStatus = "system.process.status";
+static constexpr const char *kAwsDynamodbScannedCount = "aws.dynamodb.scanned_count";
/**
- * Uniquely identifies the framework API revision offered by a version ({@code os.version}) of the
- * android operating system. More information can be found here.
+ * The value of the {@code Segment} request parameter.
*/
-static constexpr const char *kAndroidOsApiLevel = "android.os.api_level";
+static constexpr const char *kAwsDynamodbSegment = "aws.dynamodb.segment";
/**
- * The JSON-serialized value of each item in the {@code AttributeDefinitions} request field.
+ * The value of the {@code Select} request parameter.
*/
-static constexpr const char *kAwsDynamodbAttributeDefinitions =
- "aws.dynamodb.attribute_definitions";
+static constexpr const char *kAwsDynamodbSelect = "aws.dynamodb.select";
/**
- * The value of the {@code AttributesToGet} request parameter.
+ * The number of items in the {@code TableNames} response parameter.
*/
-static constexpr const char *kAwsDynamodbAttributesToGet = "aws.dynamodb.attributes_to_get";
+static constexpr const char *kAwsDynamodbTableCount = "aws.dynamodb.table_count";
/**
- * The value of the {@code ConsistentRead} request parameter.
+ * The keys in the {@code RequestItems} object field.
*/
-static constexpr const char *kAwsDynamodbConsistentRead = "aws.dynamodb.consistent_read";
+static constexpr const char *kAwsDynamodbTableNames = "aws.dynamodb.table_names";
/**
- * The JSON-serialized value of each item in the {@code ConsumedCapacity} response field.
+ * The value of the {@code TotalSegments} request parameter.
*/
-static constexpr const char *kAwsDynamodbConsumedCapacity = "aws.dynamodb.consumed_capacity";
+static constexpr const char *kAwsDynamodbTotalSegments = "aws.dynamodb.total_segments";
/**
- * The value of the {@code Count} response parameter.
+ * The ID of a running ECS task. The ID MUST be extracted from {@code task.arn}.
*/
-static constexpr const char *kAwsDynamodbCount = "aws.dynamodb.count";
+static constexpr const char *kAwsEcsTaskId = "aws.ecs.task.id";
/**
- * The value of the {@code ExclusiveStartTableName} request parameter.
+ * The ARN of an ECS cluster.
*/
-static constexpr const char *kAwsDynamodbExclusiveStartTable = "aws.dynamodb.exclusive_start_table";
+static constexpr const char *kAwsEcsClusterArn = "aws.ecs.cluster.arn";
/**
- * The JSON-serialized value of each item in the {@code GlobalSecondaryIndexUpdates} request field.
+ * The Amazon Resource Name (ARN) of an ECS
+ * container instance.
*/
-static constexpr const char *kAwsDynamodbGlobalSecondaryIndexUpdates =
- "aws.dynamodb.global_secondary_index_updates";
+static constexpr const char *kAwsEcsContainerArn = "aws.ecs.container.arn";
/**
- * The JSON-serialized value of each item of the {@code GlobalSecondaryIndexes} request field
+ * The launch
+ * type for an ECS task.
*/
-static constexpr const char *kAwsDynamodbGlobalSecondaryIndexes =
- "aws.dynamodb.global_secondary_indexes";
+static constexpr const char *kAwsEcsLaunchtype = "aws.ecs.launchtype";
/**
- * The value of the {@code IndexName} request parameter.
+ * The ARN of a running ECS
+ * task.
*/
-static constexpr const char *kAwsDynamodbIndexName = "aws.dynamodb.index_name";
+static constexpr const char *kAwsEcsTaskArn = "aws.ecs.task.arn";
/**
- * The JSON-serialized value of the {@code ItemCollectionMetrics} response field.
+ * The family name of the ECS task
+ * definition used to create the ECS task.
*/
-static constexpr const char *kAwsDynamodbItemCollectionMetrics =
- "aws.dynamodb.item_collection_metrics";
+static constexpr const char *kAwsEcsTaskFamily = "aws.ecs.task.family";
/**
- * The value of the {@code Limit} request parameter.
+ * The revision for the task definition used to create the ECS task.
*/
-static constexpr const char *kAwsDynamodbLimit = "aws.dynamodb.limit";
+static constexpr const char *kAwsEcsTaskRevision = "aws.ecs.task.revision";
/**
- * The JSON-serialized value of each item of the {@code LocalSecondaryIndexes} request field.
+ * The ARN of an EKS cluster.
*/
-static constexpr const char *kAwsDynamodbLocalSecondaryIndexes =
- "aws.dynamodb.local_secondary_indexes";
+static constexpr const char *kAwsEksClusterArn = "aws.eks.cluster.arn";
/**
- * The value of the {@code ProjectionExpression} request parameter.
+ * The Amazon Resource Name(s) (ARN) of the AWS log group(s).
+ *
+ * Notes:
+
*/
-static constexpr const char *kAwsDynamodbProjection = "aws.dynamodb.projection";
+static constexpr const char *kAwsLogGroupArns = "aws.log.group.arns";
/**
- * The value of the {@code ProvisionedThroughput.ReadCapacityUnits} request parameter.
+ * The name(s) of the AWS log group(s) an application is writing to.
+ *
+ * Notes:
+
- Multiple log groups must be supported for cases like multi-container applications, where
+ a single application has sidecar containers, and each write to their own log group.
*/
-static constexpr const char *kAwsDynamodbProvisionedReadCapacity =
- "aws.dynamodb.provisioned_read_capacity";
+static constexpr const char *kAwsLogGroupNames = "aws.log.group.names";
/**
- * The value of the {@code ProvisionedThroughput.WriteCapacityUnits} request parameter.
+ * The ARN(s) of the AWS log stream(s).
+ *
+ * Notes:
+
*/
-static constexpr const char *kAwsDynamodbProvisionedWriteCapacity =
- "aws.dynamodb.provisioned_write_capacity";
+static constexpr const char *kAwsLogStreamArns = "aws.log.stream.arns";
/**
- * The value of the {@code ScanIndexForward} request parameter.
+ * The name(s) of the AWS log stream(s) an application is writing to.
*/
-static constexpr const char *kAwsDynamodbScanForward = "aws.dynamodb.scan_forward";
+static constexpr const char *kAwsLogStreamNames = "aws.log.stream.names";
/**
- * The value of the {@code ScannedCount} response parameter.
+ * The full invoked ARN as provided on the {@code Context} passed to the function ({@code
+ Lambda-Runtime-Invoked-Function-Arn} header on the {@code /runtime/invocation/next} applicable).
+ *
+ * Notes:
+
- This may be different from {@code cloud.resource_id} if an alias is involved.
*/
-static constexpr const char *kAwsDynamodbScannedCount = "aws.dynamodb.scanned_count";
+static constexpr const char *kAwsLambdaInvokedArn = "aws.lambda.invoked_arn";
/**
- * The value of the {@code Segment} request parameter.
+ * The S3 bucket name the request refers to. Corresponds to the {@code --bucket} parameter of the S3 API operations.
+ *
+ * Notes:
+
- The {@code bucket} attribute is applicable to all S3 operations that reference a bucket,
+i.e. that require the bucket name as a mandatory parameter. This applies to almost all S3 operations
+except {@code list-buckets}.
*/
-static constexpr const char *kAwsDynamodbSegment = "aws.dynamodb.segment";
+static constexpr const char *kAwsS3Bucket = "aws.s3.bucket";
/**
- * The value of the {@code Select} request parameter.
+ * The source object (in the form {@code bucket}/{@code key}) for the copy operation.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAwsS3CopySource = "aws.s3.copy_source";
+
+/**
+ * The delete request container that specifies the objects to be deleted.
+ *
+ * Notes:
+
*/
-static constexpr const char *kAwsDynamodbSelect = "aws.dynamodb.select";
+static constexpr const char *kAwsS3Delete = "aws.s3.delete";
/**
- * The number of items in the {@code TableNames} response parameter.
+ * The S3 object key the request refers to. Corresponds to the {@code --key} parameter of the S3 API operations.
+ *
+ * Notes:
+
*/
-static constexpr const char *kAwsDynamodbTableCount = "aws.dynamodb.table_count";
+static constexpr const char *kAwsS3Key = "aws.s3.key";
/**
- * The keys in the {@code RequestItems} object field.
+ * The part number of the part being uploaded in a multipart-upload operation. This is a positive
+integer between 1 and 10,000.
+ *
+ * Notes:
+
*/
-static constexpr const char *kAwsDynamodbTableNames = "aws.dynamodb.table_names";
+static constexpr const char *kAwsS3PartNumber = "aws.s3.part_number";
/**
- * The value of the {@code TotalSegments} request parameter.
+ * Upload ID that identifies the multipart upload.
+ *
+ * Notes:
+
*/
-static constexpr const char *kAwsDynamodbTotalSegments = "aws.dynamodb.total_segments";
+static constexpr const char *kAwsS3UploadId = "aws.s3.upload_id";
/**
* Array of brand name and version separated by a space
@@ -600,7 +650,7 @@ href="https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/Containe
endpoint. K8s defines a link to the container registry repository with digest {@code "imageID":
"registry.azurecr.io
/namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"}.
-The ID is assinged by the container runtime and can vary in different environments. Consider using
+The ID is assigned by the container runtime and can vary in different environments. Consider using
{@code oci.manifest.digest} if it is important to identify the same image in different
environments/runtimes.
*/
@@ -640,6 +690,67 @@ static constexpr const char *kContainerName = "container.name";
*/
static constexpr const char *kContainerRuntime = "container.runtime";
+/**
+ * The name of the connection pool; unique within the instrumented application. In case the
+ * connection pool implementation doesn't provide a name, instrumentation should use a combination
+ * of {@code server.address} and {@code server.port} attributes formatted as {@code
+ * server.address:server.port}.
+ */
+static constexpr const char *kDbClientConnectionsPoolName = "db.client.connections.pool.name";
+
+/**
+ * The state of a connection in the pool
+ */
+static constexpr const char *kDbClientConnectionsState = "db.client.connections.state";
+
+/**
+ * The name of a collection (table, container) within the database.
+ *
+ * Notes:
+
- If the collection name is parsed from the query, it SHOULD match the value provided in
+the query and may be qualified with the schema and database name. It is RECOMMENDED to capture the
+value as provided by the application without attempting to do any case normalization.
+ */
+static constexpr const char *kDbCollectionName = "db.collection.name";
+
+/**
+ * The name of the database, fully qualified within the server address and port.
+ *
+ * Notes:
+
- If a database system has multiple namespace components, they SHOULD be concatenated
+(potentially using database system specific conventions) from most general to most specific
+namespace component, and more specific namespaces SHOULD NOT be captured without the more general
+namespaces, to ensure that "startswith" queries for the more general namespaces will be
+valid. Semantic conventions for individual database systems SHOULD document what {@code
+db.namespace} means in the context of that system. It is RECOMMENDED to capture the value as
+provided by the application without attempting to do any case normalization.
+ */
+static constexpr const char *kDbNamespace = "db.namespace";
+
+/**
+ * The name of the operation or command being executed.
+ *
+ * Notes:
+
- It is RECOMMENDED to capture the value as provided by the application without attempting
+ to do any case normalization.
+ */
+static constexpr const char *kDbOperationName = "db.operation.name";
+
+/**
+ * The database query being executed.
+ */
+static constexpr const char *kDbQueryText = "db.query.text";
+
+/**
+ * The database management system (DBMS) product as identified by the client instrumentation.
+ *
+ * Notes:
+
- The actual DBMS may differ from the one identified by the client. For example, when using
+ PostgreSQL client libraries to connect to a CockroachDB, the {@code db.system} is set to {@code
+ postgresql} based on the instrumentation's best knowledge.
+ */
+static constexpr const char *kDbSystem = "db.system";
+
/**
* The consistency level of the query. Based on consistency values from CQL.
@@ -673,19 +784,6 @@ static constexpr const char *kDbCassandraPageSize = "db.cassandra.page_size";
static constexpr const char *kDbCassandraSpeculativeExecutionCount =
"db.cassandra.speculative_execution_count";
-/**
- * The name of the primary Cassandra table that the operation is acting upon, including the keyspace
- name (if applicable).
- *
- * Notes:
-
- This mirrors the db.sql.table attribute but references cassandra rather than sql. It is
- not recommended to attempt any client-side parsing of {@code db.statement} just to get this
- property, but it should be set if it is provided by the library being instrumented. If the
- operation is acting upon an anonymous table, or more than one table, this value MUST NOT be
- set.
- */
-static constexpr const char *kDbCassandraTable = "db.cassandra.table";
-
/**
* Unique Cosmos client instance id.
*/
@@ -696,11 +794,6 @@ static constexpr const char *kDbCosmosdbClientId = "db.cosmosdb.client_id";
*/
static constexpr const char *kDbCosmosdbConnectionMode = "db.cosmosdb.connection_mode";
-/**
- * Cosmos DB container name.
- */
-static constexpr const char *kDbCosmosdbContainer = "db.cosmosdb.container";
-
/**
* CosmosDB Operation Type.
*/
@@ -732,136 +825,184 @@ static constexpr const char *kDbCosmosdbSubStatusCode = "db.cosmosdb.sub_status_
static constexpr const char *kDbElasticsearchClusterName = "db.elasticsearch.cluster.name";
/**
- * An identifier (address, unique name, or any other identifier) of the database instance that is
- * executing queries or mutations on the current connection. This is useful in cases where the
- * database is running in a clustered environment and the instrumentation is able to record the node
- * executing the query. The client may obtain this value in databases like MySQL using queries like
- * {@code select @@hostname}.
+ * Represents the human-readable identifier of the node/instance to which a request was routed.
+ */
+static constexpr const char *kDbElasticsearchNodeName = "db.elasticsearch.node.name";
+
+/**
+ * Name of the deployment
+environment (aka deployment tier).
+ *
+ * Notes:
+
- {@code deployment.environment} does not affect the uniqueness constraints defined through
+the {@code service.namespace}, {@code service.name} and {@code service.instance.id} resource
+attributes. This implies that resources carrying the following attribute combinations MUST be
+considered to be identifying the same service:
- {@code service.name=frontend}, {@code
+deployment.environment=production}
- {@code service.name=frontend}, {@code
+deployment.environment=staging}.
+
+ */
+static constexpr const char *kDeploymentEnvironment = "deployment.environment";
+
+/**
+ * Deprecated use the {@code device.app.lifecycle} event definition including {@code android.state}
+ as a payload field instead.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kAndroidState = "android.state";
+
+/**
+ * Deprecated, use {@code db.collection.name} instead.
+ *
+ * @deprecated Deprecated, use `db.collection.name` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbCassandraTable = "db.cassandra.table";
+
+/**
+ * Deprecated, use {@code server.address}, {@code server.port} attributes instead.
+ *
+ * @deprecated Deprecated, use `server.address`, `server.port` attributes instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbConnectionString = "db.connection_string";
+
+/**
+ * Deprecated, use {@code db.collection.name} instead.
+ *
+ * @deprecated Deprecated, use `db.collection.name` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbCosmosdbContainer = "db.cosmosdb.container";
+
+/**
+ * Deprecated, no general replacement at this time. For Elasticsearch, use {@code
+ * db.elasticsearch.node.name} instead.
+ *
+ * @deprecated Deprecated, no general replacement at this time. For Elasticsearch, use
+ * `db.elasticsearch.node.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbInstanceId = "db.instance.id";
/**
- * The MongoDB collection being accessed within the database stated in {@code db.name}.
+ * Removed, no replacement at this time.
+ *
+ * @deprecated Removed, no replacement at this time.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kDbJdbcDriverClassname = "db.jdbc.driver_classname";
+
+/**
+ * Deprecated, use {@code db.collection.name} instead.
+ *
+ * @deprecated Deprecated, use `db.collection.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbMongodbCollection = "db.mongodb.collection";
/**
- * The Microsoft SQL Server instance
- name connecting to. This name is used to determine the port of a named instance.
+ * Deprecated, SQL Server instance is now populated as a part of {@code db.namespace} attribute.
*
- * Notes:
-
- If setting a {@code db.mssql.instance_name}, {@code server.port} is no longer required
- (but still recommended if non-standard).
+ * @deprecated Deprecated, SQL Server instance is now populated as a part of `db.namespace`
+ * attribute.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbMssqlInstanceName = "db.mssql.instance_name";
/**
- * This attribute is used to report the name of the database being accessed. For commands that
- switch the database, this should be set to the target database (even if the command fails).
+ * Deprecated, use {@code db.namespace} instead.
*
- * Notes:
-
- In some SQL databases, the database name to be used is called "schema name". In
- case there are multiple layers that could be considered for database name (e.g. Oracle instance
- name and schema name), the database name to be used is the more specific layer (e.g. Oracle schema
- name).
+ * @deprecated Deprecated, use `db.namespace` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbName = "db.name";
/**
- * The name of the operation being executed, e.g. the MongoDB command
- name such as {@code findAndModify}, or the SQL keyword.
+ * Deprecated, use {@code db.operation.name} instead.
*
- * Notes:
-
- When setting this to an SQL keyword, it is not recommended to attempt any client-side
- parsing of {@code db.statement} just to get this property, but it should be set if the operation
- name is provided by the library being instrumented. If the SQL statement has an ambiguous
- operation, or performs more than one operation, this value may be omitted.
+ * @deprecated Deprecated, use `db.operation.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbOperation = "db.operation";
/**
- * The index of the database being accessed as used in the {@code SELECT} command, provided as an integer. To be
- * used instead of the generic {@code db.name} attribute.
+ * Deprecated, use {@code db.namespace} instead.
+ *
+ * @deprecated Deprecated, use `db.namespace` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbRedisDatabaseIndex = "db.redis.database_index";
/**
- * The name of the primary table that the operation is acting upon, including the database name (if
- applicable).
+ * Deprecated, use {@code db.collection.name} instead.
*
- * Notes:
-
- It is not recommended to attempt any client-side parsing of {@code db.statement} just to
- get this property, but it should be set if it is provided by the library being instrumented. If the
- operation is acting upon an anonymous table, or more than one table, this value MUST NOT be
- set.
+ * @deprecated Deprecated, use `db.collection.name` instead.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbSqlTable = "db.sql.table";
/**
* The database statement being executed.
+ *
+ * @deprecated The database statement being executed.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbStatement = "db.statement";
/**
- * An identifier for the database management system (DBMS) product being used. See below for a list
- * of well-known identifiers.
- */
-static constexpr const char *kDbSystem = "db.system";
-
-/**
- * Username for accessing the database.
+ * Deprecated, no replacement at this time.
+ *
+ * @deprecated Deprecated, no replacement at this time.
*/
+OPENTELEMETRY_DEPRECATED
static constexpr const char *kDbUser = "db.user";
/**
- * Name of the deployment
-environment (aka deployment tier).
+ * Deprecated, use {@code db.client.connections.pool.name} instead.
*
- * Notes:
-
- {@code deployment.environment} does not affect the uniqueness constraints defined through
-the {@code service.namespace}, {@code service.name} and {@code service.instance.id} resource
-attributes. This implies that resources carrying the following attribute combinations MUST be
-considered to be identifying the same service:
- {@code service.name=frontend}, {@code
-deployment.environment=production}
- {@code service.name=frontend}, {@code
-deployment.environment=staging}.
-
+ * @deprecated Deprecated, use `db.client.connections.pool.name` instead.
*/
-static constexpr const char *kDeploymentEnvironment = "deployment.environment";
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kPoolName = "pool.name";
/**
- * Deprecated, use {@code server.address}, {@code server.port} attributes instead.
+ * Deprecated, use {@code db.client.connections.state} instead.
*
- * @deprecated Deprecated, use `server.address`, `server.port` attributes instead.
+ * @deprecated Deprecated, use `db.client.connections.state` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kDbConnectionString = "db.connection_string";
+static constexpr const char *kState = "state";
/**
- * Deprecated, use {@code db.instance.id} instead.
+ * Deprecated, use {@code client.address} instead.
*
- * @deprecated Deprecated, use `db.instance.id` instead.
+ * @deprecated Deprecated, use `client.address` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kDbElasticsearchNodeName = "db.elasticsearch.node.name";
+static constexpr const char *kHttpClientIp = "http.client_ip";
/**
- * Removed, no replacement at this time.
+ * Deprecated, use {@code network.protocol.name} instead.
*
- * @deprecated Removed, no replacement at this time.
+ * @deprecated Deprecated, use `network.protocol.name` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kDbJdbcDriverClassname = "db.jdbc.driver_classname";
+static constexpr const char *kHttpFlavor = "http.flavor";
/**
- * Deprecated, use {@code network.protocol.name} instead.
+ * Deprecated, use one of {@code server.address}, {@code client.address} or {@code
+ * http.request.header.host} instead, depending on the usage.
*
- * @deprecated Deprecated, use `network.protocol.name` instead.
+ * @deprecated Deprecated, use one of `server.address`, `client.address` or
+ * `http.request.header.host` instead, depending on the usage.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kHttpFlavor = "http.flavor";
+static constexpr const char *kHttpHost = "http.host";
/**
* Deprecated, use {@code http.request.method} instead.
@@ -879,6 +1020,15 @@ static constexpr const char *kHttpMethod = "http.method";
OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpRequestContentLength = "http.request_content_length";
+/**
+ * Deprecated, use {@code http.request.body.size} instead.
+ *
+ * @deprecated Deprecated, use `http.request.body.size` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kHttpRequestContentLengthUncompressed =
+ "http.request_content_length_uncompressed";
+
/**
* Deprecated, use {@code http.response.header.content-length} instead.
*
@@ -887,6 +1037,15 @@ static constexpr const char *kHttpRequestContentLength = "http.request_content_l
OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpResponseContentLength = "http.response_content_length";
+/**
+ * Deprecated, use {@code http.response.body.size} instead.
+ *
+ * @deprecated Deprecated, use `http.response.body.size` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kHttpResponseContentLengthUncompressed =
+ "http.response_content_length_uncompressed";
+
/**
* Deprecated, use {@code url.scheme} instead.
*
@@ -895,6 +1054,14 @@ static constexpr const char *kHttpResponseContentLength = "http.response_content
OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpScheme = "http.scheme";
+/**
+ * Deprecated, use {@code server.address} instead.
+ *
+ * @deprecated Deprecated, use `server.address` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kHttpServerName = "http.server_name";
+
/**
* Deprecated, use {@code http.response.status_code} instead.
*
@@ -928,14 +1095,45 @@ OPENTELEMETRY_DEPRECATED
static constexpr const char *kHttpUserAgent = "http.user_agent";
/**
- * "Deprecated, use {@code messaging.destination.partition.id} instead."
+ * Deprecated use the {@code device.app.lifecycle} event definition including {@code ios.state} as a
+ payload field instead.
+ *
+ * Notes:
+
+ *
+ * @deprecated Deprecated use the `device.app.lifecycle` event definition including `ios.state` as a
+ payload field instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kIosState = "ios.state";
+
+/**
+ * Deprecated, use {@code messaging.destination.partition.id} instead.
*
- * @deprecated "Deprecated, use `messaging.destination.partition.id` instead.".
+ * @deprecated Deprecated, use `messaging.destination.partition.id` instead.
*/
OPENTELEMETRY_DEPRECATED
static constexpr const char *kMessagingKafkaDestinationPartition =
"messaging.kafka.destination.partition";
+/**
+ * Deprecated, use {@code messaging.operation.type} instead.
+ *
+ * @deprecated Deprecated, use `messaging.operation.type` instead.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kMessagingOperation = "messaging.operation";
+
+/**
+ * Deprecated, use {@code network.local.address}.
+ *
+ * @deprecated Deprecated, use `network.local.address`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetHostIp = "net.host.ip";
+
/**
* Deprecated, use {@code server.address}.
*
@@ -952,6 +1150,14 @@ static constexpr const char *kNetHostName = "net.host.name";
OPENTELEMETRY_DEPRECATED
static constexpr const char *kNetHostPort = "net.host.port";
+/**
+ * Deprecated, use {@code network.peer.address}.
+ *
+ * @deprecated Deprecated, use `network.peer.address`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetPeerIp = "net.peer.ip";
+
/**
* Deprecated, use {@code server.address} on client spans and {@code client.address} on server
* spans.
@@ -987,60 +1193,108 @@ OPENTELEMETRY_DEPRECATED
static constexpr const char *kNetProtocolVersion = "net.protocol.version";
/**
- * Deprecated, use {@code network.transport} and {@code network.type}.
+ * Deprecated, use {@code network.transport} and {@code network.type}.
+ *
+ * @deprecated Deprecated, use `network.transport` and `network.type`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetSockFamily = "net.sock.family";
+
+/**
+ * Deprecated, use {@code network.local.address}.
+ *
+ * @deprecated Deprecated, use `network.local.address`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetSockHostAddr = "net.sock.host.addr";
+
+/**
+ * Deprecated, use {@code network.local.port}.
+ *
+ * @deprecated Deprecated, use `network.local.port`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetSockHostPort = "net.sock.host.port";
+
+/**
+ * Deprecated, use {@code network.peer.address}.
+ *
+ * @deprecated Deprecated, use `network.peer.address`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetSockPeerAddr = "net.sock.peer.addr";
+
+/**
+ * Deprecated, no replacement at this time.
+ *
+ * @deprecated Deprecated, no replacement at this time.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetSockPeerName = "net.sock.peer.name";
+
+/**
+ * Deprecated, use {@code network.peer.port}.
+ *
+ * @deprecated Deprecated, use `network.peer.port`.
+ */
+OPENTELEMETRY_DEPRECATED
+static constexpr const char *kNetSockPeerPort = "net.sock.peer.port";
+
+/**
+ * Deprecated, use {@code network.transport}.
*
- * @deprecated Deprecated, use `network.transport` and `network.type`.
+ * @deprecated Deprecated, use `network.transport`.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetSockFamily = "net.sock.family";
+static constexpr const char *kNetTransport = "net.transport";
/**
- * Deprecated, use {@code network.local.address}.
+ * None
*
- * @deprecated Deprecated, use `network.local.address`.
+ * @deprecated None.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetSockHostAddr = "net.sock.host.addr";
+static constexpr const char *kOtelLibraryName = "otel.library.name";
/**
- * Deprecated, use {@code network.local.port}.
+ * None
*
- * @deprecated Deprecated, use `network.local.port`.
+ * @deprecated None.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetSockHostPort = "net.sock.host.port";
+static constexpr const char *kOtelLibraryVersion = "otel.library.version";
/**
- * Deprecated, use {@code network.peer.address}.
+ * Deprecated, use {@code rpc.message.compressed_size} instead.
*
- * @deprecated Deprecated, use `network.peer.address`.
+ * @deprecated Deprecated, use `rpc.message.compressed_size` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetSockPeerAddr = "net.sock.peer.addr";
+static constexpr const char *kMessageCompressedSize = "message.compressed_size";
/**
- * Deprecated, no replacement at this time.
+ * Deprecated, use {@code rpc.message.id} instead.
*
- * @deprecated Deprecated, no replacement at this time.
+ * @deprecated Deprecated, use `rpc.message.id` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetSockPeerName = "net.sock.peer.name";
+static constexpr const char *kMessageId = "message.id";
/**
- * Deprecated, use {@code network.peer.port}.
+ * Deprecated, use {@code rpc.message.type} instead.
*
- * @deprecated Deprecated, use `network.peer.port`.
+ * @deprecated Deprecated, use `rpc.message.type` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetSockPeerPort = "net.sock.peer.port";
+static constexpr const char *kMessageType = "message.type";
/**
- * Deprecated, use {@code network.transport}.
+ * Deprecated, use {@code rpc.message.uncompressed_size} instead.
*
- * @deprecated Deprecated, use `network.transport`.
+ * @deprecated Deprecated, use `rpc.message.uncompressed_size` instead.
*/
OPENTELEMETRY_DEPRECATED
-static constexpr const char *kNetTransport = "net.transport";
+static constexpr const char *kMessageUncompressedSize = "message.uncompressed_size";
/**
* Deprecated, use {@code system.process.status} instead.
@@ -1155,20 +1409,33 @@ static constexpr const char *kEnduserScope = "enduser.scope";
* Describes a class of error the operation ended with.
*
* Notes:
-
- The {@code error.type} SHOULD be predictable and SHOULD have low cardinality.
-Instrumentations SHOULD document the list of errors they report.
- The cardinality of {@code
-error.type} within one instrumentation library SHOULD be low. Telemetry consumers that aggregate
-data from multiple instrumentation libraries and applications should be prepared for {@code
-error.type} to have high cardinality at query time when no additional filters are
-applied.
- If the operation has completed successfully, instrumentations SHOULD NOT set {@code
-error.type}.
- If a specific domain defines its own set of error identifiers (such as HTTP or
-gRPC status codes), it's RECOMMENDED to:
- Use a domain-specific attribute
- Set {@code
-error.type} to capture all errors, regardless of whether they are defined within the domain-specific
-set or not.
+ - The {@code error.type} SHOULD be predictable, and SHOULD have low
+cardinality.
- When {@code error.type} is set to a type (e.g., an exception type), its
+canonical class name identifying the type within the artifact SHOULD be
+used.
- Instrumentations SHOULD document the list of errors they report.
- The
+cardinality of {@code error.type} within one instrumentation library SHOULD be low. Telemetry
+consumers that aggregate data from multiple instrumentation libraries and applications should be
+prepared for {@code error.type} to have high cardinality at query time when no additional filters
+are applied.
- If the operation has completed successfully, instrumentations SHOULD NOT set
+{@code error.type}.
- If a specific domain defines its own set of error identifiers (such as
+HTTP or gRPC status codes), it's RECOMMENDED to:
- Use a domain-specific attribute
+- Set {@code error.type} to capture all errors, regardless of whether they are defined within the
+domain-specific set or not.
*/
static constexpr const char *kErrorType = "error.type";
+/**
+ * Identifies the class / type of event.
+ *
+ * Notes:
+
- Event names are subject to the same rules as attribute
+ names. Notably, event names are namespaced to avoid collisions and provide a clean separation
+ of semantics for events in separate domains like browser, mobile, and kubernetes.
+ */
+static constexpr const char *kEventName = "event.name";
+
/**
* SHOULD be set to true if the exception event is recorded at a point where it is known that the
exception is escaping the scope of the span.
@@ -1181,9 +1448,10 @@ is passed to a Context manager's {@code __exit__} method in Python) but will
usually be caught at the point of recording the exception in most languages.- It is usually
not possible to determine at the point where an exception is thrown whether it will escape the scope
of a span. However, it is trivial to know that an exception will escape, if one checks for an active
-exception just before ending the span, as done in the example for
-recording span exceptions.
- It follows that an exception may still escape the scope of
-the span even if the {@code exception.escaped} attribute was not set or set to false, since the
+exception just before ending the span, as done in the example
+for recording span exceptions.
- It follows that an exception may still escape the scope
+of the span even if the {@code exception.escaped} attribute was not set or set to false, since the
event might have been recorded at a time where it was not clear whether the exception will
escape.
*/
@@ -1430,6 +1698,114 @@ static constexpr const char *kGcpGceInstanceHostname = "gcp.gce.instance.hostnam
*/
static constexpr const char *kGcpGceInstanceName = "gcp.gce.instance.name";
+/**
+ * The full response received from the LLM.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kGenAiCompletion = "gen_ai.completion";
+
+/**
+ * The full prompt sent to an LLM.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kGenAiPrompt = "gen_ai.prompt";
+
+/**
+ * The maximum number of tokens the LLM generates for a request.
+ */
+static constexpr const char *kGenAiRequestMaxTokens = "gen_ai.request.max_tokens";
+
+/**
+ * The name of the LLM a request is being made to.
+ */
+static constexpr const char *kGenAiRequestModel = "gen_ai.request.model";
+
+/**
+ * The temperature setting for the LLM request.
+ */
+static constexpr const char *kGenAiRequestTemperature = "gen_ai.request.temperature";
+
+/**
+ * The top_p sampling setting for the LLM request.
+ */
+static constexpr const char *kGenAiRequestTopP = "gen_ai.request.top_p";
+
+/**
+ * Array of reasons the model stopped generating tokens, corresponding to each generation received.
+ */
+static constexpr const char *kGenAiResponseFinishReasons = "gen_ai.response.finish_reasons";
+
+/**
+ * The unique identifier for the completion.
+ */
+static constexpr const char *kGenAiResponseId = "gen_ai.response.id";
+
+/**
+ * The name of the LLM a response was generated from.
+ */
+static constexpr const char *kGenAiResponseModel = "gen_ai.response.model";
+
+/**
+ * The Generative AI product as identified by the client instrumentation.
+ *
+ * Notes:
+
- The actual GenAI product may differ from the one identified by the client. For example,
+ when using OpenAI client libraries to communicate with Mistral, the {@code gen_ai.system} is set to
+ {@code openai} based on the instrumentation's best knowledge.
+ */
+static constexpr const char *kGenAiSystem = "gen_ai.system";
+
+/**
+ * The number of tokens used in the LLM response (completion).
+ */
+static constexpr const char *kGenAiUsageCompletionTokens = "gen_ai.usage.completion_tokens";
+
+/**
+ * The number of tokens used in the LLM prompt.
+ */
+static constexpr const char *kGenAiUsagePromptTokens = "gen_ai.usage.prompt_tokens";
+
+/**
+ * The GraphQL document being executed.
+ *
+ * Notes:
+
- The value may be sanitized to exclude sensitive information.
+ */
+static constexpr const char *kGraphqlDocument = "graphql.document";
+
+/**
+ * The name of the operation being executed.
+ */
+static constexpr const char *kGraphqlOperationName = "graphql.operation.name";
+
+/**
+ * The type of the operation being executed.
+ */
+static constexpr const char *kGraphqlOperationType = "graphql.operation.type";
+
+/**
+ * Unique identifier for the application
+ */
+static constexpr const char *kHerokuAppId = "heroku.app.id";
+
+/**
+ * Commit hash for the current release
+ */
+static constexpr const char *kHerokuReleaseCommit = "heroku.release.commit";
+
+/**
+ * Time and date the release was created
+ */
+static constexpr const char *kHerokuReleaseCreationTimestamp = "heroku.release.creation_timestamp";
+
/**
* The CPU architecture the host system is running on.
*/
@@ -1615,6 +1991,61 @@ one.
*/
static constexpr const char *kHttpRoute = "http.route";
+/**
+ * Name of the buffer pool.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmBufferPoolName = "jvm.buffer.pool.name";
+
+/**
+ * Name of the garbage collector action.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmGcAction = "jvm.gc.action";
+
+/**
+ * Name of the garbage collector.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmGcName = "jvm.gc.name";
+
+/**
+ * Name of the memory pool.
+ *
+ * Notes:
+
+ */
+static constexpr const char *kJvmMemoryPoolName = "jvm.memory.pool.name";
+
+/**
+ * The type of memory.
+ */
+static constexpr const char *kJvmMemoryType = "jvm.memory.type";
+
+/**
+ * Whether the thread is daemon or not.
+ */
+static constexpr const char *kJvmThreadDaemon = "jvm.thread.daemon";
+
+/**
+ * State of the thread.
+ */
+static constexpr const char *kJvmThreadState = "jvm.thread.state";
+
/**
* The name of the cluster.
*/
@@ -1656,6 +2087,12 @@ static constexpr const char *kK8sContainerName = "k8s.container.name";
*/
static constexpr const char *kK8sContainerRestartCount = "k8s.container.restart_count";
+/**
+ * Last terminated reason of the Container.
+ */
+static constexpr const char *kK8sContainerStatusLastTerminatedReason =
+ "k8s.container.status.last_terminated_reason";
+
/**
* The name of the CronJob.
*/
@@ -1741,6 +2178,42 @@ static constexpr const char *kK8sStatefulsetName = "k8s.statefulset.name";
*/
static constexpr const char *kK8sStatefulsetUid = "k8s.statefulset.uid";
+/**
+ * The stream associated with the log. See below for a list of well-known values.
+ */
+static constexpr const char *kLogIostream = "log.iostream";
+
+/**
+ * The basename of the file.
+ */
+static constexpr const char *kLogFileName = "log.file.name";
+
+/**
+ * The basename of the file, with symlinks resolved.
+ */
+static constexpr const char *kLogFileNameResolved = "log.file.name_resolved";
+
+/**
+ * The full path to the file.
+ */
+static constexpr const char *kLogFilePath = "log.file.path";
+
+/**
+ * The full path to the file, with symlinks resolved.
+ */
+static constexpr const char *kLogFilePathResolved = "log.file.path_resolved";
+
+/**
+ * A unique identifier for the Log Record.
+ *
+ * Notes:
+
- If an id is provided, other log records with the same id will be considered duplicates
+and can be removed safely. This means, that two distinguishable log records MUST have different
+values. The id MAY be an Universally Unique Lexicographically
+Sortable Identifier (ULID), but other identifiers (e.g. UUID) may be used as needed.
+ */
+static constexpr const char *kLogRecordUid = "log.record.uid";
+
/**
* The number of messages sent, received, or processed in the scope of the batching operation.
*
@@ -1756,7 +2229,7 @@ static constexpr const char *kMessagingBatchMessageCount = "messaging.batch.mess
/**
* A unique identifier for the client that consumes or produces a message.
*/
-static constexpr const char *kMessagingClientId = "messaging.client_id";
+static constexpr const char *kMessagingClientId = "messaging.client.id";
/**
* A boolean that is true if the message destination is anonymous (could be unnamed or have
@@ -1786,82 +2259,35 @@ static constexpr const char *kMessagingDestinationPartitionId =
*
* Notes:
- Destination names could be constructed from templates. An example would be a destination
- name involving a user name or product id. Although the destination name in this case is of high
- cardinality, the underlying template is of low cardinality and can be effectively used for grouping
- and aggregation.
- */
-static constexpr const char *kMessagingDestinationTemplate = "messaging.destination.template";
-
-/**
- * A boolean that is true if the message destination is temporary and might not exist anymore after
- * messages are processed.
- */
-static constexpr const char *kMessagingDestinationTemporary = "messaging.destination.temporary";
-
-/**
- * A boolean that is true if the publish message destination is anonymous (could be unnamed or have
- * auto-generated name).
- */
-static constexpr const char *kMessagingDestinationPublishAnonymous =
- "messaging.destination_publish.anonymous";
-
-/**
- * The name of the original destination the message was published to
- *
- * Notes:
-
- The name SHOULD uniquely identify a specific queue, topic, or other entity within the
-broker. If the broker doesn't have such notion, the original destination name SHOULD uniquely
-identify the broker.
- */
-static constexpr const char *kMessagingDestinationPublishName =
- "messaging.destination_publish.name";
-
-/**
- * The name of the consumer group the event consumer is associated with.
- */
-static constexpr const char *kMessagingEventhubsConsumerGroup =
- "messaging.eventhubs.consumer.group";
-
-/**
- * The UTC epoch seconds at which the message has been accepted and stored in the entity.
- */
-static constexpr const char *kMessagingEventhubsMessageEnqueuedTime =
- "messaging.eventhubs.message.enqueued_time";
-
-/**
- * The ordering key for a given message. If the attribute is not present, the message does not have
- * an ordering key.
- */
-static constexpr const char *kMessagingGcpPubsubMessageOrderingKey =
- "messaging.gcp_pubsub.message.ordering_key";
-
-/**
- * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not
- * producers.
- */
-static constexpr const char *kMessagingKafkaConsumerGroup = "messaging.kafka.consumer.group";
-
-/**
- * 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.
- *
- * Notes:
-
- If the key type is not string, it's string representation has to be supplied for the
- attribute. If the key has no unambiguous, canonical string form, don't include its value.
-
+ name involving a user name or product id. Although the destination name in this case is of high
+ cardinality, the underlying template is of low cardinality and can be effectively used for grouping
+ and aggregation.
*/
-static constexpr const char *kMessagingKafkaMessageKey = "messaging.kafka.message.key";
+static constexpr const char *kMessagingDestinationTemplate = "messaging.destination.template";
/**
- * The offset of a record in the corresponding Kafka partition.
+ * A boolean that is true if the message destination is temporary and might not exist anymore after
+ * messages are processed.
*/
-static constexpr const char *kMessagingKafkaMessageOffset = "messaging.kafka.message.offset";
+static constexpr const char *kMessagingDestinationTemporary = "messaging.destination.temporary";
/**
- * A boolean that is true if the message is a tombstone.
+ * A boolean that is true if the publish message destination is anonymous (could be unnamed or have
+ * auto-generated name).
*/
-static constexpr const char *kMessagingKafkaMessageTombstone = "messaging.kafka.message.tombstone";
+static constexpr const char *kMessagingDestinationPublishAnonymous =
+ "messaging.destination_publish.anonymous";
+
+/**
+ * The name of the original destination the message was published to
+ *
+ * Notes:
+
- The name SHOULD uniquely identify a specific queue, topic, or other entity within the
+broker. If the broker doesn't have such notion, the original destination name SHOULD uniquely
+identify the broker.
+ */
+static constexpr const char *kMessagingDestinationPublishName =
+ "messaging.destination_publish.name";
/**
* The size of the message body in bytes.
@@ -1893,12 +2319,55 @@ static constexpr const char *kMessagingMessageEnvelopeSize = "messaging.message.
static constexpr const char *kMessagingMessageId = "messaging.message.id";
/**
- * A string identifying the kind of messaging operation.
+ * The system-specific name of the messaging operation.
+ */
+static constexpr const char *kMessagingOperationName = "messaging.operation.name";
+
+/**
+ * A string identifying the type of the messaging operation.
*
* Notes:
- If a custom value is used, it MUST be of low cardinality.
*/
-static constexpr const char *kMessagingOperation = "messaging.operation";
+static constexpr const char *kMessagingOperationType = "messaging.operation.type";
+
+/**
+ * The messaging system as identified by the client instrumentation.
+ *
+ * Notes:
+
- The actual messaging system may differ from the one known by the client. For example,
+ when using Kafka client libraries to communicate with Azure Event Hubs, the {@code
+ messaging.system} is set to {@code kafka} based on the instrumentation's best knowledge.
+ */
+static constexpr const char *kMessagingSystem = "messaging.system";
+
+/**
+ * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not
+ * producers.
+ */
+static constexpr const char *kMessagingKafkaConsumerGroup = "messaging.kafka.consumer.group";
+
+/**
+ * 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.
+ *
+ * Notes:
+
- If the key type is not string, it's string representation has to be supplied for the
+ attribute. If the key has no unambiguous, canonical string form, don't include its value.
+
+ */
+static constexpr const char *kMessagingKafkaMessageKey = "messaging.kafka.message.key";
+
+/**
+ * The offset of a record in the corresponding Kafka partition.
+ */
+static constexpr const char *kMessagingKafkaMessageOffset = "messaging.kafka.message.offset";
+
+/**
+ * A boolean that is true if the message is a tombstone.
+ */
+static constexpr const char *kMessagingKafkaMessageTombstone = "messaging.kafka.message.tombstone";
/**
* RabbitMQ message routing key.
@@ -1962,6 +2431,31 @@ static constexpr const char *kMessagingRocketmqMessageType = "messaging.rocketmq
*/
static constexpr const char *kMessagingRocketmqNamespace = "messaging.rocketmq.namespace";
+/**
+ * The ack deadline in seconds set for the modify ack deadline request.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageAckDeadline =
+ "messaging.gcp_pubsub.message.ack_deadline";
+
+/**
+ * The ack id for a given message.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageAckId =
+ "messaging.gcp_pubsub.message.ack_id";
+
+/**
+ * The delivery attempt for a given message.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageDeliveryAttempt =
+ "messaging.gcp_pubsub.message.delivery_attempt";
+
+/**
+ * The ordering key for a given message. If the attribute is not present, the message does not have
+ * an ordering key.
+ */
+static constexpr const char *kMessagingGcpPubsubMessageOrderingKey =
+ "messaging.gcp_pubsub.message.ordering_key";
+
/**
* The name of the subscription in the topic messages are received from.
*/
@@ -1989,10 +2483,16 @@ static constexpr const char *kMessagingServicebusMessageEnqueuedTime =
"messaging.servicebus.message.enqueued_time";
/**
- * An identifier for the messaging system being used. See below for a list of well-known
- * identifiers.
+ * The name of the consumer group the event consumer is associated with.
*/
-static constexpr const char *kMessagingSystem = "messaging.system";
+static constexpr const char *kMessagingEventhubsConsumerGroup =
+ "messaging.eventhubs.consumer.group";
+
+/**
+ * The UTC epoch seconds at which the message has been accepted and stored in the entity.
+ */
+static constexpr const char *kMessagingEventhubsMessageEnqueuedTime =
+ "messaging.eventhubs.message.enqueued_time";
/**
* The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
@@ -2105,6 +2605,14 @@ Manifest.
*/
static constexpr const char *kOciManifestDigest = "oci.manifest.digest";
+/**
+ * Parent-child Reference type
+ *
+ * Notes:
+
- The causal relationship between a child Span and a parent Span.
+ */
+static constexpr const char *kOpentracingRefType = "opentracing.ref_type";
+
/**
* Unique identifier for a particular build or compilation of the operating system.
*/
@@ -2132,6 +2640,34 @@ static constexpr const char *kOsType = "os.type";
*/
static constexpr const char *kOsVersion = "os.version";
+/**
+ * Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code
+ * is UNSET.
+ */
+static constexpr const char *kOtelStatusCode = "otel.status_code";
+
+/**
+ * Description of the Status if it has a value, otherwise not set.
+ */
+static constexpr const char *kOtelStatusDescription = "otel.status_description";
+
+/**
+ * The name of the instrumentation scope - ({@code InstrumentationScope.Name} in OTLP).
+ */
+static constexpr const char *kOtelScopeName = "otel.scope.name";
+
+/**
+ * The version of the instrumentation scope - ({@code InstrumentationScope.Version} in OTLP).
+ */
+static constexpr const char *kOtelScopeVersion = "otel.scope.version";
+
+/**
+ * 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.
+ */
+static constexpr const char *kPeerService = "peer.service";
+
/**
* The command used to launch the process (i.e. the command name). On Linux based systems, can be
* set to the zeroth string in {@code proc/[pid]/cmdline}. On Windows, can be set to the first
@@ -2154,6 +2690,16 @@ static constexpr const char *kProcessCommandArgs = "process.command_args";
*/
static constexpr const char *kProcessCommandLine = "process.command_line";
+/**
+ * Specifies whether the context switches for this data point were voluntary or involuntary.
+ */
+static constexpr const char *kProcessContextSwitchType = "process.context_switch_type";
+
+/**
+ * The date and time the process was created, in ISO 8601 format.
+ */
+static constexpr const char *kProcessCreationTime = "process.creation.time";
+
/**
* The name of the process executable. On Linux based systems, can be set to the {@code Name} in
* {@code proc/[pid]/status}. On Windows, can be set to the base name of {@code
@@ -2167,11 +2713,37 @@ static constexpr const char *kProcessExecutableName = "process.executable.name";
*/
static constexpr const char *kProcessExecutablePath = "process.executable.path";
+/**
+ * The exit code of the process.
+ */
+static constexpr const char *kProcessExitCode = "process.exit.code";
+
+/**
+ * The date and time the process exited, in ISO 8601 format.
+ */
+static constexpr const char *kProcessExitTime = "process.exit.time";
+
+/**
+ * The PID of the process's group leader. This is also the process group ID (PGID) of the process.
+ */
+static constexpr const char *kProcessGroupLeaderPid = "process.group_leader.pid";
+
+/**
+ * Whether the process is connected to an interactive shell.
+ */
+static constexpr const char *kProcessInteractive = "process.interactive";
+
/**
* The username of the user that owns the process.
*/
static constexpr const char *kProcessOwner = "process.owner";
+/**
+ * The type of page fault for this data point. Type {@code major} is for major/hard page faults, and
+ * {@code minor} is for minor/soft page faults.
+ */
+static constexpr const char *kProcessPagingFaultType = "process.paging.fault_type";
+
/**
* Parent Process identifier (PPID).
*/
@@ -2182,6 +2754,16 @@ static constexpr const char *kProcessParentPid = "process.parent_pid";
*/
static constexpr const char *kProcessPid = "process.pid";
+/**
+ * The real user ID (RUID) of the process.
+ */
+static constexpr const char *kProcessRealUserId = "process.real_user.id";
+
+/**
+ * The username of the real user of the process.
+ */
+static constexpr const char *kProcessRealUserName = "process.real_user.name";
+
/**
* An additional description about the runtime of the process, for example a specific vendor
* customization of the runtime environment.
@@ -2199,6 +2781,46 @@ static constexpr const char *kProcessRuntimeName = "process.runtime.name";
*/
static constexpr const char *kProcessRuntimeVersion = "process.runtime.version";
+/**
+ * The saved user ID (SUID) of the process.
+ */
+static constexpr const char *kProcessSavedUserId = "process.saved_user.id";
+
+/**
+ * The username of the saved user.
+ */
+static constexpr const char *kProcessSavedUserName = "process.saved_user.name";
+
+/**
+ * The PID of the process's session leader. This is also the session ID (SID) of the process.
+ */
+static constexpr const char *kProcessSessionLeaderPid = "process.session_leader.pid";
+
+/**
+ * The effective user ID (EUID) of the process.
+ */
+static constexpr const char *kProcessUserId = "process.user.id";
+
+/**
+ * The username of the effective user of the process.
+ */
+static constexpr const char *kProcessUserName = "process.user.name";
+
+/**
+ * Virtual process identifier.
+ *
+ * Notes:
+
- The process ID within a PID namespace. This is not necessarily unique across all
+ processes on the host but it is unique within the process namespace that the process exists
+ within.
+ */
+static constexpr const char *kProcessVpid = "process.vpid";
+
+/**
+ * The CPU state of the process.
+ */
+static constexpr const char *kProcessCpuState = "process.cpu.state";
+
/**
* The error codes of the Connect
* request. Error codes are always string values.
@@ -2234,6 +2856,31 @@ static constexpr const char *kRpcJsonrpcRequestId = "rpc.jsonrpc.request_id";
*/
static constexpr const char *kRpcJsonrpcVersion = "rpc.jsonrpc.version";
+/**
+ * Compressed size of the message in bytes.
+ */
+static constexpr const char *kRpcMessageCompressedSize = "rpc.message.compressed_size";
+
+/**
+ * MUST be calculated as two different counters starting from {@code 1} one for sent messages and
+ one for received message.
+ *
+ * Notes:
+
- This way we guarantee that the values will be consistent between different
+ implementations.
+ */
+static constexpr const char *kRpcMessageId = "rpc.message.id";
+
+/**
+ * Whether this is a received or sent message.
+ */
+static constexpr const char *kRpcMessageType = "rpc.message.type";
+
+/**
+ * Uncompressed size of the message in bytes.
+ */
+static constexpr const char *kRpcMessageUncompressedSize = "rpc.message.uncompressed_size";
+
/**
* The name of the (logical) method being called, must be equal to the $method part in the span
name.
@@ -2320,9 +2967,9 @@ static constexpr const char *kServiceInstanceId = "service.instance.id";
* Notes:
- MUST be the same for all instances of horizontally scaled services. If the value was not
specified, SDKs MUST fallback to {@code unknown_service:} concatenated with {@code process.executable.name}, e.g. {@code unknown_service:bash}.
- If {@code process.executable.name} is not available, the value MUST be set to {@code
- unknown_service}.
+ href="process.md">{@code process.executable.name}, e.g. {@code unknown_service:bash}. If {@code
+ process.executable.name} is not available, the value MUST be set to {@code unknown_service}.
+
*/
static constexpr const char *kServiceName = "service.name";
@@ -2355,6 +3002,18 @@ static constexpr const char *kSessionId = "session.id";
*/
static constexpr const char *kSessionPreviousId = "session.previous_id";
+/**
+ * SignalR HTTP connection closure status.
+ */
+static constexpr const char *kSignalrConnectionStatus = "signalr.connection.status";
+
+/**
+ * SignalR
+ * transport type
+ */
+static constexpr const char *kSignalrTransport = "signalr.transport";
+
/**
* Source address - domain name if available without reverse DNS lookup; otherwise, IP address or
Unix domain socket name.
@@ -2367,9 +3026,76 @@ static constexpr const char *kSessionPreviousId = "session.previous_id";
static constexpr const char *kSourceAddress = "source.address";
/**
- * Source port number
+ * Source port number
+ */
+static constexpr const char *kSourcePort = "source.port";
+
+/**
+ * The device identifier
+ */
+static constexpr const char *kSystemDevice = "system.device";
+
+/**
+ * The logical CPU number [0..n-1]
+ */
+static constexpr const char *kSystemCpuLogicalNumber = "system.cpu.logical_number";
+
+/**
+ * The state of the CPU
+ */
+static constexpr const char *kSystemCpuState = "system.cpu.state";
+
+/**
+ * The memory state
+ */
+static constexpr const char *kSystemMemoryState = "system.memory.state";
+
+/**
+ * The paging access direction
+ */
+static constexpr const char *kSystemPagingDirection = "system.paging.direction";
+
+/**
+ * The memory paging state
+ */
+static constexpr const char *kSystemPagingState = "system.paging.state";
+
+/**
+ * The memory paging type
+ */
+static constexpr const char *kSystemPagingType = "system.paging.type";
+
+/**
+ * The filesystem mode
+ */
+static constexpr const char *kSystemFilesystemMode = "system.filesystem.mode";
+
+/**
+ * The filesystem mount path
+ */
+static constexpr const char *kSystemFilesystemMountpoint = "system.filesystem.mountpoint";
+
+/**
+ * The filesystem state
+ */
+static constexpr const char *kSystemFilesystemState = "system.filesystem.state";
+
+/**
+ * The filesystem type
+ */
+static constexpr const char *kSystemFilesystemType = "system.filesystem.type";
+
+/**
+ * A stateless protocol MUST NOT set this attribute
+ */
+static constexpr const char *kSystemNetworkState = "system.network.state";
+
+/**
+ * The process state, e.g., Linux Process State
+ * Codes
*/
-static constexpr const char *kSourcePort = "source.port";
+static constexpr const char *kSystemProcessStatus = "system.process.status";
/**
* The language of the telemetry SDK.
@@ -2713,6 +3439,12 @@ static constexpr const char *kUrlScheme = "url.scheme";
*/
static constexpr const char *kUrlSubdomain = "url.subdomain";
+/**
+ * The low-cardinality template of an absolute path reference.
+ */
+static constexpr const char *kUrlTemplate = "url.template";
+
/**
* The effective top level domain (eTLD), also known as the domain suffix, is the last part of the
domain name. For example, the top level domain for example.com is {@code com}.
@@ -2743,342 +3475,69 @@ static constexpr const char *kUserAgentOriginal = "user_agent.original";
/**
* Version of the user-agent extracted from original. Usually refers to the browser's version
*
- * Notes:
-
- Example of extracting browser's version from
- original string. In the case of using a user-agent for non-browser products, such as microservices
- with multiple names/versions inside the {@code user_agent.original}, the most significant version
- SHOULD be selected. In such a scenario it should align with {@code user_agent.name}
- */
-static constexpr const char *kUserAgentVersion = "user_agent.version";
-
-/**
- * The ID of a running ECS task. The ID MUST be extracted from {@code task.arn}.
- */
-static constexpr const char *kAwsEcsTaskId = "aws.ecs.task.id";
-
-/**
- * The ARN of an ECS cluster.
- */
-static constexpr const char *kAwsEcsClusterArn = "aws.ecs.cluster.arn";
-
-/**
- * The Amazon Resource Name (ARN) of an ECS
- * container instance.
- */
-static constexpr const char *kAwsEcsContainerArn = "aws.ecs.container.arn";
-
-/**
- * The launch
- * type for an ECS task.
- */
-static constexpr const char *kAwsEcsLaunchtype = "aws.ecs.launchtype";
-
-/**
- * The ARN of a running ECS
- * task.
- */
-static constexpr const char *kAwsEcsTaskArn = "aws.ecs.task.arn";
-
-/**
- * The family name of the ECS task
- * definition used to create the ECS task.
- */
-static constexpr const char *kAwsEcsTaskFamily = "aws.ecs.task.family";
-
-/**
- * The revision for the task definition used to create the ECS task.
- */
-static constexpr const char *kAwsEcsTaskRevision = "aws.ecs.task.revision";
-
-/**
- * The ARN of an EKS cluster.
- */
-static constexpr const char *kAwsEksClusterArn = "aws.eks.cluster.arn";
-
-/**
- * The Amazon Resource Name(s) (ARN) of the AWS log group(s).
- *
- * Notes:
-
- */
-static constexpr const char *kAwsLogGroupArns = "aws.log.group.arns";
-
-/**
- * The name(s) of the AWS log group(s) an application is writing to.
- *
- * Notes:
-
- Multiple log groups must be supported for cases like multi-container applications, where
- a single application has sidecar containers, and each write to their own log group.
- */
-static constexpr const char *kAwsLogGroupNames = "aws.log.group.names";
-
-/**
- * The ARN(s) of the AWS log stream(s).
- *
- * Notes:
-
- */
-static constexpr const char *kAwsLogStreamArns = "aws.log.stream.arns";
-
-/**
- * The name(s) of the AWS log stream(s) an application is writing to.
- */
-static constexpr const char *kAwsLogStreamNames = "aws.log.stream.names";
-
-/**
- * Unique identifier for the application
- */
-static constexpr const char *kHerokuAppId = "heroku.app.id";
-
-/**
- * Commit hash for the current release
- */
-static constexpr const char *kHerokuReleaseCommit = "heroku.release.commit";
-
-/**
- * Time and date the release was created
- */
-static constexpr const char *kHerokuReleaseCreationTimestamp = "heroku.release.creation_timestamp";
-
-/**
- * The name of the web engine.
- */
-static constexpr const char *kWebengineName = "webengine.name";
-
-/**
- * Additional description of the web engine (e.g. detailed version and edition information).
- */
-static constexpr const char *kWebengineDescription = "webengine.description";
-
-/**
- * The version of the web engine.
- */
-static constexpr const char *kWebengineVersion = "webengine.version";
-
-/**
- * The name of the instrumentation scope - ({@code InstrumentationScope.Name} in OTLP).
- */
-static constexpr const char *kOtelScopeName = "otel.scope.name";
-
-/**
- * The version of the instrumentation scope - ({@code InstrumentationScope.Version} in OTLP).
- */
-static constexpr const char *kOtelScopeVersion = "otel.scope.version";
-
-/**
- * None
- *
- * @deprecated None.
- */
-OPENTELEMETRY_DEPRECATED
-static constexpr const char *kOtelLibraryName = "otel.library.name";
-
-/**
- * None
- *
- * @deprecated None.
- */
-OPENTELEMETRY_DEPRECATED
-static constexpr const char *kOtelLibraryVersion = "otel.library.version";
-
-// Enum definitions
-namespace LogIostreamValues
-{
-/** Logs from stdout stream. */
-static constexpr const char *kStdout = "stdout";
-/** Events from stderr stream. */
-static constexpr const char *kStderr = "stderr";
-} // namespace LogIostreamValues
-
-namespace StateValues
-{
-/** idle. */
-static constexpr const char *kIdle = "idle";
-/** used. */
-static constexpr const char *kUsed = "used";
-} // namespace StateValues
-
-namespace AspnetcoreRateLimitingResultValues
-{
-/** Lease was acquired. */
-static constexpr const char *kAcquired = "acquired";
-/** Lease request was rejected by the endpoint limiter. */
-static constexpr const char *kEndpointLimiter = "endpoint_limiter";
-/** Lease request was rejected by the global limiter. */
-static constexpr const char *kGlobalLimiter = "global_limiter";
-/** Lease request was canceled. */
-static constexpr const char *kRequestCanceled = "request_canceled";
-} // namespace AspnetcoreRateLimitingResultValues
-
-namespace SignalrConnectionStatusValues
-{
-/** The connection was closed normally. */
-static constexpr const char *kNormalClosure = "normal_closure";
-/** The connection was closed due to a timeout. */
-static constexpr const char *kTimeout = "timeout";
-/** The connection was closed because the app is shutting down. */
-static constexpr const char *kAppShutdown = "app_shutdown";
-} // namespace SignalrConnectionStatusValues
-
-namespace SignalrTransportValues
-{
-/** ServerSentEvents protocol. */
-static constexpr const char *kServerSentEvents = "server_sent_events";
-/** LongPolling protocol. */
-static constexpr const char *kLongPolling = "long_polling";
-/** WebSockets protocol. */
-static constexpr const char *kWebSockets = "web_sockets";
-} // namespace SignalrTransportValues
-
-namespace JvmMemoryTypeValues
-{
-/** Heap memory. */
-static constexpr const char *kHeap = "heap";
-/** Non-heap memory. */
-static constexpr const char *kNonHeap = "non_heap";
-} // namespace JvmMemoryTypeValues
-
-namespace ProcessCpuStateValues
-{
-/** system. */
-static constexpr const char *kSystem = "system";
-/** user. */
-static constexpr const char *kUser = "user";
-/** wait. */
-static constexpr const char *kWait = "wait";
-} // namespace ProcessCpuStateValues
-
-namespace SystemCpuStateValues
-{
-/** user. */
-static constexpr const char *kUser = "user";
-/** system. */
-static constexpr const char *kSystem = "system";
-/** nice. */
-static constexpr const char *kNice = "nice";
-/** idle. */
-static constexpr const char *kIdle = "idle";
-/** iowait. */
-static constexpr const char *kIowait = "iowait";
-/** interrupt. */
-static constexpr const char *kInterrupt = "interrupt";
-/** steal. */
-static constexpr const char *kSteal = "steal";
-} // namespace SystemCpuStateValues
-
-namespace SystemMemoryStateValues
-{
-/** used. */
-static constexpr const char *kUsed = "used";
-/** free. */
-static constexpr const char *kFree = "free";
-/** shared. */
-static constexpr const char *kShared = "shared";
-/** buffers. */
-static constexpr const char *kBuffers = "buffers";
-/** cached. */
-static constexpr const char *kCached = "cached";
-} // namespace SystemMemoryStateValues
+ * Notes:
+
- Example of extracting browser's version from
+ original string. In the case of using a user-agent for non-browser products, such as microservices
+ with multiple names/versions inside the {@code user_agent.original}, the most significant version
+ SHOULD be selected. In such a scenario it should align with {@code user_agent.name}
+ */
+static constexpr const char *kUserAgentVersion = "user_agent.version";
-namespace SystemPagingDirectionValues
-{
-/** in. */
-static constexpr const char *kIn = "in";
-/** out. */
-static constexpr const char *kOut = "out";
-} // namespace SystemPagingDirectionValues
+/**
+ * Additional description of the web engine (e.g. detailed version and edition information).
+ */
+static constexpr const char *kWebengineDescription = "webengine.description";
-namespace SystemPagingStateValues
-{
-/** used. */
-static constexpr const char *kUsed = "used";
-/** free. */
-static constexpr const char *kFree = "free";
-} // namespace SystemPagingStateValues
+/**
+ * The name of the web engine.
+ */
+static constexpr const char *kWebengineName = "webengine.name";
-namespace SystemPagingTypeValues
-{
-/** major. */
-static constexpr const char *kMajor = "major";
-/** minor. */
-static constexpr const char *kMinor = "minor";
-} // namespace SystemPagingTypeValues
+/**
+ * The version of the web engine.
+ */
+static constexpr const char *kWebengineVersion = "webengine.version";
-namespace SystemFilesystemStateValues
+// Enum definitions
+namespace AspnetcoreRateLimitingResultValues
{
-/** used. */
-static constexpr const char *kUsed = "used";
-/** free. */
-static constexpr const char *kFree = "free";
-/** reserved. */
-static constexpr const char *kReserved = "reserved";
-} // namespace SystemFilesystemStateValues
+/** Lease was acquired. */
+static constexpr const char *kAcquired = "acquired";
+/** Lease request was rejected by the endpoint limiter. */
+static constexpr const char *kEndpointLimiter = "endpoint_limiter";
+/** Lease request was rejected by the global limiter. */
+static constexpr const char *kGlobalLimiter = "global_limiter";
+/** Lease request was canceled. */
+static constexpr const char *kRequestCanceled = "request_canceled";
+} // namespace AspnetcoreRateLimitingResultValues
-namespace SystemFilesystemTypeValues
+namespace AspnetcoreDiagnosticsExceptionResultValues
{
-/** fat32. */
-static constexpr const char *kFat32 = "fat32";
-/** exfat. */
-static constexpr const char *kExfat = "exfat";
-/** ntfs. */
-static constexpr const char *kNtfs = "ntfs";
-/** refs. */
-static constexpr const char *kRefs = "refs";
-/** hfsplus. */
-static constexpr const char *kHfsplus = "hfsplus";
-/** ext4. */
-static constexpr const char *kExt4 = "ext4";
-} // namespace SystemFilesystemTypeValues
+/** Exception was handled by the exception handling middleware. */
+static constexpr const char *kHandled = "handled";
+/** Exception was not handled by the exception handling middleware. */
+static constexpr const char *kUnhandled = "unhandled";
+/** Exception handling was skipped because the response had started. */
+static constexpr const char *kSkipped = "skipped";
+/** Exception handling didn't run because the request was aborted. */
+static constexpr const char *kAborted = "aborted";
+} // namespace AspnetcoreDiagnosticsExceptionResultValues
-namespace SystemNetworkStateValues
+namespace AspnetcoreRoutingMatchStatusValues
{
-/** close. */
-static constexpr const char *kClose = "close";
-/** close_wait. */
-static constexpr const char *kCloseWait = "close_wait";
-/** closing. */
-static constexpr const char *kClosing = "closing";
-/** delete. */
-static constexpr const char *kDelete = "delete";
-/** established. */
-static constexpr const char *kEstablished = "established";
-/** fin_wait_1. */
-static constexpr const char *kFinWait1 = "fin_wait_1";
-/** fin_wait_2. */
-static constexpr const char *kFinWait2 = "fin_wait_2";
-/** last_ack. */
-static constexpr const char *kLastAck = "last_ack";
-/** listen. */
-static constexpr const char *kListen = "listen";
-/** syn_recv. */
-static constexpr const char *kSynRecv = "syn_recv";
-/** syn_sent. */
-static constexpr const char *kSynSent = "syn_sent";
-/** time_wait. */
-static constexpr const char *kTimeWait = "time_wait";
-} // namespace SystemNetworkStateValues
+/** Match succeeded. */
+static constexpr const char *kSuccess = "success";
+/** Match failed. */
+static constexpr const char *kFailure = "failure";
+} // namespace AspnetcoreRoutingMatchStatusValues
-namespace SystemProcessStatusValues
+namespace AwsEcsLaunchtypeValues
{
-/** running. */
-static constexpr const char *kRunning = "running";
-/** sleeping. */
-static constexpr const char *kSleeping = "sleeping";
-/** stopped. */
-static constexpr const char *kStopped = "stopped";
-/** defunct. */
-static constexpr const char *kDefunct = "defunct";
-} // namespace SystemProcessStatusValues
+/** ec2. */
+static constexpr const char *kEc2 = "ec2";
+/** fargate. */
+static constexpr const char *kFargate = "fargate";
+} // namespace AwsEcsLaunchtypeValues
namespace CloudPlatformValues
{
@@ -3170,73 +3629,13 @@ static constexpr const char *kSystem = "system";
static constexpr const char *kKernel = "kernel";
} // namespace ContainerCpuStateValues
-namespace DbCassandraConsistencyLevelValues
-{
-/** all. */
-static constexpr const char *kAll = "all";
-/** each_quorum. */
-static constexpr const char *kEachQuorum = "each_quorum";
-/** quorum. */
-static constexpr const char *kQuorum = "quorum";
-/** local_quorum. */
-static constexpr const char *kLocalQuorum = "local_quorum";
-/** one. */
-static constexpr const char *kOne = "one";
-/** two. */
-static constexpr const char *kTwo = "two";
-/** three. */
-static constexpr const char *kThree = "three";
-/** local_one. */
-static constexpr const char *kLocalOne = "local_one";
-/** any. */
-static constexpr const char *kAny = "any";
-/** serial. */
-static constexpr const char *kSerial = "serial";
-/** local_serial. */
-static constexpr const char *kLocalSerial = "local_serial";
-} // namespace DbCassandraConsistencyLevelValues
-
-namespace DbCosmosdbConnectionModeValues
-{
-/** Gateway (HTTP) connections mode. */
-static constexpr const char *kGateway = "gateway";
-/** Direct connection. */
-static constexpr const char *kDirect = "direct";
-} // namespace DbCosmosdbConnectionModeValues
-
-namespace DbCosmosdbOperationTypeValues
+namespace DbClientConnectionsStateValues
{
-/** invalid. */
-static constexpr const char *kInvalid = "Invalid";
-/** create. */
-static constexpr const char *kCreate = "Create";
-/** patch. */
-static constexpr const char *kPatch = "Patch";
-/** read. */
-static constexpr const char *kRead = "Read";
-/** read_feed. */
-static constexpr const char *kReadFeed = "ReadFeed";
-/** delete. */
-static constexpr const char *kDelete = "Delete";
-/** replace. */
-static constexpr const char *kReplace = "Replace";
-/** execute. */
-static constexpr const char *kExecute = "Execute";
-/** query. */
-static constexpr const char *kQuery = "Query";
-/** head. */
-static constexpr const char *kHead = "Head";
-/** head_feed. */
-static constexpr const char *kHeadFeed = "HeadFeed";
-/** upsert. */
-static constexpr const char *kUpsert = "Upsert";
-/** batch. */
-static constexpr const char *kBatch = "Batch";
-/** query_plan. */
-static constexpr const char *kQueryPlan = "QueryPlan";
-/** execute_javascript. */
-static constexpr const char *kExecuteJavascript = "ExecuteJavaScript";
-} // namespace DbCosmosdbOperationTypeValues
+/** idle. */
+static constexpr const char *kIdle = "idle";
+/** used. */
+static constexpr const char *kUsed = "used";
+} // namespace DbClientConnectionsStateValues
namespace DbSystemValues
{
@@ -3346,6 +3745,95 @@ static constexpr const char *kSpanner = "spanner";
static constexpr const char *kTrino = "trino";
} // namespace DbSystemValues
+namespace DbCassandraConsistencyLevelValues
+{
+/** all. */
+static constexpr const char *kAll = "all";
+/** each_quorum. */
+static constexpr const char *kEachQuorum = "each_quorum";
+/** quorum. */
+static constexpr const char *kQuorum = "quorum";
+/** local_quorum. */
+static constexpr const char *kLocalQuorum = "local_quorum";
+/** one. */
+static constexpr const char *kOne = "one";
+/** two. */
+static constexpr const char *kTwo = "two";
+/** three. */
+static constexpr const char *kThree = "three";
+/** local_one. */
+static constexpr const char *kLocalOne = "local_one";
+/** any. */
+static constexpr const char *kAny = "any";
+/** serial. */
+static constexpr const char *kSerial = "serial";
+/** local_serial. */
+static constexpr const char *kLocalSerial = "local_serial";
+} // namespace DbCassandraConsistencyLevelValues
+
+namespace DbCosmosdbConnectionModeValues
+{
+/** Gateway (HTTP) connections mode. */
+static constexpr const char *kGateway = "gateway";
+/** Direct connection. */
+static constexpr const char *kDirect = "direct";
+} // namespace DbCosmosdbConnectionModeValues
+
+namespace DbCosmosdbOperationTypeValues
+{
+/** invalid. */
+static constexpr const char *kInvalid = "Invalid";
+/** create. */
+static constexpr const char *kCreate = "Create";
+/** patch. */
+static constexpr const char *kPatch = "Patch";
+/** read. */
+static constexpr const char *kRead = "Read";
+/** read_feed. */
+static constexpr const char *kReadFeed = "ReadFeed";
+/** delete. */
+static constexpr const char *kDelete = "Delete";
+/** replace. */
+static constexpr const char *kReplace = "Replace";
+/** execute. */
+static constexpr const char *kExecute = "Execute";
+/** query. */
+static constexpr const char *kQuery = "Query";
+/** head. */
+static constexpr const char *kHead = "Head";
+/** head_feed. */
+static constexpr const char *kHeadFeed = "HeadFeed";
+/** upsert. */
+static constexpr const char *kUpsert = "Upsert";
+/** batch. */
+static constexpr const char *kBatch = "Batch";
+/** query_plan. */
+static constexpr const char *kQueryPlan = "QueryPlan";
+/** execute_javascript. */
+static constexpr const char *kExecuteJavascript = "ExecuteJavaScript";
+} // namespace DbCosmosdbOperationTypeValues
+
+namespace AndroidStateValues
+{
+/** Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has
+ * been called in the app for the first time. */
+static constexpr const char *kCreated = "created";
+/** Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been
+ * called when the app was in the foreground state. */
+static constexpr const char *kBackground = "background";
+/** Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has
+ * been called when the app was in either the created or background states. */
+static constexpr const char *kForeground = "foreground";
+} // namespace AndroidStateValues
+
+namespace StateValues
+{
+/** idle. */
+static constexpr const char *kIdle = "idle";
+/** used. */
+static constexpr const char *kUsed = "used";
+} // namespace StateValues
+
namespace HttpFlavorValues
{
/** HTTP/1.0. */
@@ -3362,6 +3850,22 @@ static constexpr const char *kSpdy = "SPDY";
static constexpr const char *kQuic = "QUIC";
} // namespace HttpFlavorValues
+namespace IosStateValues
+{
+/** The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`. */
+static constexpr const char *kActive = "active";
+/** The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`. */
+static constexpr const char *kInactive = "inactive";
+/** The app is now in the background. This value is associated with UIKit notification
+ * `applicationDidEnterBackground`. */
+static constexpr const char *kBackground = "background";
+/** The app is now in the foreground. This value is associated with UIKit notification
+ * `applicationWillEnterForeground`. */
+static constexpr const char *kForeground = "foreground";
+/** The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`. */
+static constexpr const char *kTerminate = "terminate";
+} // namespace IosStateValues
+
namespace NetSockFamilyValues
{
/** IPv4 address. */
@@ -3386,6 +3890,14 @@ static constexpr const char *kInproc = "inproc";
static constexpr const char *kOther = "other";
} // namespace NetTransportValues
+namespace MessageTypeValues
+{
+/** sent. */
+static constexpr const char *kSent = "SENT";
+/** received. */
+static constexpr const char *kReceived = "RECEIVED";
+} // namespace MessageTypeValues
+
namespace SystemProcessesStatusValues
{
/** running. */
@@ -3450,6 +3962,22 @@ static constexpr const char *kTimer = "timer";
static constexpr const char *kOther = "other";
} // namespace FaasTriggerValues
+namespace GenAiSystemValues
+{
+/** OpenAI. */
+static constexpr const char *kOpenai = "openai";
+} // namespace GenAiSystemValues
+
+namespace GraphqlOperationTypeValues
+{
+/** GraphQL query. */
+static constexpr const char *kQuery = "query";
+/** GraphQL mutation. */
+static constexpr const char *kMutation = "mutation";
+/** GraphQL subscription. */
+static constexpr const char *kSubscription = "subscription";
+} // namespace GraphqlOperationTypeValues
+
namespace HostArchValues
{
/** AMD64. */
@@ -3502,7 +4030,41 @@ static constexpr const char *kTrace = "TRACE";
static constexpr const char *kOther = "_OTHER";
} // namespace HttpRequestMethodValues
-namespace MessagingOperationValues
+namespace JvmMemoryTypeValues
+{
+/** Heap memory. */
+static constexpr const char *kHeap = "heap";
+/** Non-heap memory. */
+static constexpr const char *kNonHeap = "non_heap";
+} // namespace JvmMemoryTypeValues
+
+namespace JvmThreadStateValues
+{
+/** A thread that has not yet started is in this state. */
+static constexpr const char *kNew = "new";
+/** A thread executing in the Java virtual machine is in this state. */
+static constexpr const char *kRunnable = "runnable";
+/** A thread that is blocked waiting for a monitor lock is in this state. */
+static constexpr const char *kBlocked = "blocked";
+/** A thread that is waiting indefinitely for another thread to perform a particular action is in
+ * this state. */
+static constexpr const char *kWaiting = "waiting";
+/** A thread that is waiting for another thread to perform an action for up to a specified waiting
+ * time is in this state. */
+static constexpr const char *kTimedWaiting = "timed_waiting";
+/** A thread that has exited is in this state. */
+static constexpr const char *kTerminated = "terminated";
+} // namespace JvmThreadStateValues
+
+namespace LogIostreamValues
+{
+/** Logs from stdout stream. */
+static constexpr const char *kStdout = "stdout";
+/** Events from stderr stream. */
+static constexpr const char *kStderr = "stderr";
+} // namespace LogIostreamValues
+
+namespace MessagingOperationTypeValues
{
/** One or more messages are provided for publishing to an intermediary. If a single message is
* published, the context of the "Publish" span can be used as the creation context and no
@@ -3518,7 +4080,31 @@ static constexpr const char *kReceive = "receive";
static constexpr const char *kDeliver = "process";
/** One or more messages are settled. */
static constexpr const char *kSettle = "settle";
-} // namespace MessagingOperationValues
+} // namespace MessagingOperationTypeValues
+
+namespace MessagingSystemValues
+{
+/** Apache ActiveMQ. */
+static constexpr const char *kActivemq = "activemq";
+/** Amazon Simple Queue Service (SQS). */
+static constexpr const char *kAwsSqs = "aws_sqs";
+/** Azure Event Grid. */
+static constexpr const char *kEventgrid = "eventgrid";
+/** Azure Event Hubs. */
+static constexpr const char *kEventhubs = "eventhubs";
+/** Azure Service Bus. */
+static constexpr const char *kServicebus = "servicebus";
+/** Google Cloud Pub/Sub. */
+static constexpr const char *kGcpPubsub = "gcp_pubsub";
+/** Java Message Service. */
+static constexpr const char *kJms = "jms";
+/** Apache Kafka. */
+static constexpr const char *kKafka = "kafka";
+/** RabbitMQ. */
+static constexpr const char *kRabbitmq = "rabbitmq";
+/** Apache RocketMQ. */
+static constexpr const char *kRocketmq = "rocketmq";
+} // namespace MessagingSystemValues
namespace MessagingRocketmqConsumptionModelValues
{
@@ -3552,30 +4138,6 @@ static constexpr const char *kDeadLetter = "dead_letter";
static constexpr const char *kDefer = "defer";
} // namespace MessagingServicebusDispositionStatusValues
-namespace MessagingSystemValues
-{
-/** Apache ActiveMQ. */
-static constexpr const char *kActivemq = "activemq";
-/** Amazon Simple Queue Service (SQS). */
-static constexpr const char *kAwsSqs = "aws_sqs";
-/** Azure Event Grid. */
-static constexpr const char *kEventgrid = "eventgrid";
-/** Azure Event Hubs. */
-static constexpr const char *kEventhubs = "eventhubs";
-/** Azure Service Bus. */
-static constexpr const char *kServicebus = "servicebus";
-/** Google Cloud Pub/Sub. */
-static constexpr const char *kGcpPubsub = "gcp_pubsub";
-/** Java Message Service. */
-static constexpr const char *kJms = "jms";
-/** Apache Kafka. */
-static constexpr const char *kKafka = "kafka";
-/** RabbitMQ. */
-static constexpr const char *kRabbitmq = "rabbitmq";
-/** Apache RocketMQ. */
-static constexpr const char *kRocketmq = "rocketmq";
-} // namespace MessagingSystemValues
-
namespace NetworkConnectionSubtypeValues
{
/** GPRS. */
@@ -3664,6 +4226,14 @@ static constexpr const char *kIpv4 = "ipv4";
static constexpr const char *kIpv6 = "ipv6";
} // namespace NetworkTypeValues
+namespace OpentracingRefTypeValues
+{
+/** The parent Span depends on the child Span in some capacity. */
+static constexpr const char *kChildOf = "child_of";
+/** The parent Span doesn't depend in any way on the result of the child Span. */
+static constexpr const char *kFollowsFrom = "follows_from";
+} // namespace OpentracingRefTypeValues
+
namespace OsTypeValues
{
/** Microsoft Windows. */
@@ -3690,6 +4260,41 @@ static constexpr const char *kSolaris = "solaris";
static constexpr const char *kZOs = "z_os";
} // namespace OsTypeValues
+namespace OtelStatusCodeValues
+{
+/** The operation has been validated by an Application developer or Operator to have completed
+ * successfully. */
+static constexpr const char *kOk = "OK";
+/** The operation contains an error. */
+static constexpr const char *kError = "ERROR";
+} // namespace OtelStatusCodeValues
+
+namespace ProcessContextSwitchTypeValues
+{
+/** voluntary. */
+static constexpr const char *kVoluntary = "voluntary";
+/** involuntary. */
+static constexpr const char *kInvoluntary = "involuntary";
+} // namespace ProcessContextSwitchTypeValues
+
+namespace ProcessPagingFaultTypeValues
+{
+/** major. */
+static constexpr const char *kMajor = "major";
+/** minor. */
+static constexpr const char *kMinor = "minor";
+} // namespace ProcessPagingFaultTypeValues
+
+namespace ProcessCpuStateValues
+{
+/** system. */
+static constexpr const char *kSystem = "system";
+/** user. */
+static constexpr const char *kUser = "user";
+/** wait. */
+static constexpr const char *kWait = "wait";
+} // namespace ProcessCpuStateValues
+
namespace RpcConnectRpcErrorCodeValues
{
/** cancelled. */
@@ -3764,6 +4369,14 @@ static constexpr const int kDataLoss = 15;
static constexpr const int kUnauthenticated = 16;
} // namespace RpcGrpcStatusCodeValues
+namespace RpcMessageTypeValues
+{
+/** sent. */
+static constexpr const char *kSent = "SENT";
+/** received. */
+static constexpr const char *kReceived = "RECEIVED";
+} // namespace RpcMessageTypeValues
+
namespace RpcSystemValues
{
/** gRPC. */
@@ -3778,6 +4391,148 @@ static constexpr const char *kApacheDubbo = "apache_dubbo";
static constexpr const char *kConnectRpc = "connect_rpc";
} // namespace RpcSystemValues
+namespace SignalrConnectionStatusValues
+{
+/** The connection was closed normally. */
+static constexpr const char *kNormalClosure = "normal_closure";
+/** The connection was closed due to a timeout. */
+static constexpr const char *kTimeout = "timeout";
+/** The connection was closed because the app is shutting down. */
+static constexpr const char *kAppShutdown = "app_shutdown";
+} // namespace SignalrConnectionStatusValues
+
+namespace SignalrTransportValues
+{
+/** ServerSentEvents protocol. */
+static constexpr const char *kServerSentEvents = "server_sent_events";
+/** LongPolling protocol. */
+static constexpr const char *kLongPolling = "long_polling";
+/** WebSockets protocol. */
+static constexpr const char *kWebSockets = "web_sockets";
+} // namespace SignalrTransportValues
+
+namespace SystemCpuStateValues
+{
+/** user. */
+static constexpr const char *kUser = "user";
+/** system. */
+static constexpr const char *kSystem = "system";
+/** nice. */
+static constexpr const char *kNice = "nice";
+/** idle. */
+static constexpr const char *kIdle = "idle";
+/** iowait. */
+static constexpr const char *kIowait = "iowait";
+/** interrupt. */
+static constexpr const char *kInterrupt = "interrupt";
+/** steal. */
+static constexpr const char *kSteal = "steal";
+} // namespace SystemCpuStateValues
+
+namespace SystemMemoryStateValues
+{
+/** used. */
+static constexpr const char *kUsed = "used";
+/** free. */
+static constexpr const char *kFree = "free";
+/** shared. */
+static constexpr const char *kShared = "shared";
+/** buffers. */
+static constexpr const char *kBuffers = "buffers";
+/** cached. */
+static constexpr const char *kCached = "cached";
+} // namespace SystemMemoryStateValues
+
+namespace SystemPagingDirectionValues
+{
+/** in. */
+static constexpr const char *kIn = "in";
+/** out. */
+static constexpr const char *kOut = "out";
+} // namespace SystemPagingDirectionValues
+
+namespace SystemPagingStateValues
+{
+/** used. */
+static constexpr const char *kUsed = "used";
+/** free. */
+static constexpr const char *kFree = "free";
+} // namespace SystemPagingStateValues
+
+namespace SystemPagingTypeValues
+{
+/** major. */
+static constexpr const char *kMajor = "major";
+/** minor. */
+static constexpr const char *kMinor = "minor";
+} // namespace SystemPagingTypeValues
+
+namespace SystemFilesystemStateValues
+{
+/** used. */
+static constexpr const char *kUsed = "used";
+/** free. */
+static constexpr const char *kFree = "free";
+/** reserved. */
+static constexpr const char *kReserved = "reserved";
+} // namespace SystemFilesystemStateValues
+
+namespace SystemFilesystemTypeValues
+{
+/** fat32. */
+static constexpr const char *kFat32 = "fat32";
+/** exfat. */
+static constexpr const char *kExfat = "exfat";
+/** ntfs. */
+static constexpr const char *kNtfs = "ntfs";
+/** refs. */
+static constexpr const char *kRefs = "refs";
+/** hfsplus. */
+static constexpr const char *kHfsplus = "hfsplus";
+/** ext4. */
+static constexpr const char *kExt4 = "ext4";
+} // namespace SystemFilesystemTypeValues
+
+namespace SystemNetworkStateValues
+{
+/** close. */
+static constexpr const char *kClose = "close";
+/** close_wait. */
+static constexpr const char *kCloseWait = "close_wait";
+/** closing. */
+static constexpr const char *kClosing = "closing";
+/** delete. */
+static constexpr const char *kDelete = "delete";
+/** established. */
+static constexpr const char *kEstablished = "established";
+/** fin_wait_1. */
+static constexpr const char *kFinWait1 = "fin_wait_1";
+/** fin_wait_2. */
+static constexpr const char *kFinWait2 = "fin_wait_2";
+/** last_ack. */
+static constexpr const char *kLastAck = "last_ack";
+/** listen. */
+static constexpr const char *kListen = "listen";
+/** syn_recv. */
+static constexpr const char *kSynRecv = "syn_recv";
+/** syn_sent. */
+static constexpr const char *kSynSent = "syn_sent";
+/** time_wait. */
+static constexpr const char *kTimeWait = "time_wait";
+} // namespace SystemNetworkStateValues
+
+namespace SystemProcessStatusValues
+{
+/** running. */
+static constexpr const char *kRunning = "running";
+/** sleeping. */
+static constexpr const char *kSleeping = "sleeping";
+/** stopped. */
+static constexpr const char *kStopped = "stopped";
+/** defunct. */
+static constexpr const char *kDefunct = "defunct";
+} // namespace SystemProcessStatusValues
+
namespace TelemetrySdkLanguageValues
{
/** cpp. */
@@ -3814,14 +4569,6 @@ static constexpr const char *kSsl = "ssl";
static constexpr const char *kTls = "tls";
} // namespace TlsProtocolNameValues
-namespace AwsEcsLaunchtypeValues
-{
-/** ec2. */
-static constexpr const char *kEc2 = "ec2";
-/** fargate. */
-static constexpr const char *kFargate = "fargate";
-} // namespace AwsEcsLaunchtypeValues
-
} // namespace SemanticConventions
} // namespace resource
} // namespace sdk