OpenTelemetry PHP

TraceAttributes

Table of Contents

Constants

ANDROID_OS_API_LEVEL  = 'android.os.api_level'
Uniquely identifies the framework API revision offered by a version (`os.version`) of the android operating system. More information can be found [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels).
ANDROID_STATE  = 'android.state'
Deprecated use the `device.app.lifecycle` event definition including `android.state` as a payload field instead.
ARTIFACT_ATTESTATION_FILENAME  = 'artifact.attestation.filename'
The provenance filename of the built attestation which directly relates to the build artifact filename. This filename SHOULD accompany the artifact at publish time. See the [SLSA Relationship](https://slsa.dev/spec/v1.0/distributing-provenance#relationship-between-artifacts-and-attestations) specification for more information.
ARTIFACT_ATTESTATION_HASH  = 'artifact.attestation.hash'
The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), of the built attestation. Some envelopes in the software attestation space also refer to this as the [digest](https://github.com/in-toto/attestation/blob/main/spec/README.md#in-toto-attestation-framework-spec).
ARTIFACT_ATTESTATION_ID  = 'artifact.attestation.id'
The id of the build [software attestation](https://slsa.dev/attestation-model).
ARTIFACT_FILENAME  = 'artifact.filename'
The human readable file name of the artifact, typically generated during build and release processes. Often includes the package name and version in the file name.
ARTIFACT_HASH  = 'artifact.hash'
The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), often found in checksum.txt on a release of the artifact and used to verify package integrity.
ARTIFACT_PURL  = 'artifact.purl'
The [Package URL](https://github.com/package-url/purl-spec) of the [package artifact](https://slsa.dev/spec/v1.0/terminology#package-model) provides a standard way to identify and locate the packaged artifact.
ARTIFACT_VERSION  = 'artifact.version'
The version of the artifact.
ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT  = 'aspnetcore.diagnostics.exception.result'
ASP.NET Core exception middleware handling result
ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE  = 'aspnetcore.diagnostics.handler.type'
Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.
ASPNETCORE_RATE_LIMITING_POLICY  = 'aspnetcore.rate_limiting.policy'
Rate limiting policy name.
ASPNETCORE_RATE_LIMITING_RESULT  = 'aspnetcore.rate_limiting.result'
Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
ASPNETCORE_REQUEST_IS_UNHANDLED  = 'aspnetcore.request.is_unhandled'
Flag indicating if request was handled by the application pipeline.
ASPNETCORE_ROUTING_IS_FALLBACK  = 'aspnetcore.routing.is_fallback'
A value that indicates whether the matched route is a fallback route.
ASPNETCORE_ROUTING_MATCH_STATUS  = 'aspnetcore.routing.match_status'
Match result - success or failure
AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS  = 'aws.dynamodb.attribute_definitions'
The JSON-serialized value of each item in the `AttributeDefinitions` request field.
AWS_DYNAMODB_ATTRIBUTES_TO_GET  = 'aws.dynamodb.attributes_to_get'
The value of the `AttributesToGet` request parameter.
AWS_DYNAMODB_CONSISTENT_READ  = 'aws.dynamodb.consistent_read'
The value of the `ConsistentRead` request parameter.
AWS_DYNAMODB_CONSUMED_CAPACITY  = 'aws.dynamodb.consumed_capacity'
The JSON-serialized value of each item in the `ConsumedCapacity` response field.
AWS_DYNAMODB_COUNT  = 'aws.dynamodb.count'
The value of the `Count` response parameter.
AWS_DYNAMODB_EXCLUSIVE_START_TABLE  = 'aws.dynamodb.exclusive_start_table'
The value of the `ExclusiveStartTableName` request parameter.
AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES  = 'aws.dynamodb.global_secondary_index_updates'
The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.
AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES  = 'aws.dynamodb.global_secondary_indexes'
The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field
AWS_DYNAMODB_INDEX_NAME  = 'aws.dynamodb.index_name'
The value of the `IndexName` request parameter.
AWS_DYNAMODB_ITEM_COLLECTION_METRICS  = 'aws.dynamodb.item_collection_metrics'
The JSON-serialized value of the `ItemCollectionMetrics` response field.
AWS_DYNAMODB_LIMIT  = 'aws.dynamodb.limit'
The value of the `Limit` request parameter.
AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES  = 'aws.dynamodb.local_secondary_indexes'
The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.
AWS_DYNAMODB_PROJECTION  = 'aws.dynamodb.projection'
The value of the `ProjectionExpression` request parameter.
AWS_DYNAMODB_PROVISIONED_READ_CAPACITY  = 'aws.dynamodb.provisioned_read_capacity'
The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.
AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY  = 'aws.dynamodb.provisioned_write_capacity'
The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.
AWS_DYNAMODB_SCAN_FORWARD  = 'aws.dynamodb.scan_forward'
The value of the `ScanIndexForward` request parameter.
AWS_DYNAMODB_SCANNED_COUNT  = 'aws.dynamodb.scanned_count'
The value of the `ScannedCount` response parameter.
AWS_DYNAMODB_SEGMENT  = 'aws.dynamodb.segment'
The value of the `Segment` request parameter.
AWS_DYNAMODB_SELECT  = 'aws.dynamodb.select'
The value of the `Select` request parameter.
AWS_DYNAMODB_TABLE_COUNT  = 'aws.dynamodb.table_count'
The number of items in the `TableNames` response parameter.
AWS_DYNAMODB_TABLE_NAMES  = 'aws.dynamodb.table_names'
The keys in the `RequestItems` object field.
AWS_DYNAMODB_TOTAL_SEGMENTS  = 'aws.dynamodb.total_segments'
The value of the `TotalSegments` request parameter.
AWS_ECS_CLUSTER_ARN  = 'aws.ecs.cluster.arn'
The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).
AWS_ECS_CONTAINER_ARN  = 'aws.ecs.container.arn'
The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
AWS_ECS_LAUNCHTYPE  = 'aws.ecs.launchtype'
The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.
AWS_ECS_TASK_ARN  = 'aws.ecs.task.arn'
The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
AWS_ECS_TASK_FAMILY  = 'aws.ecs.task.family'
The family name of the [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) used to create the ECS task.
AWS_ECS_TASK_ID  = 'aws.ecs.task.id'
The ID of a running ECS task. The ID MUST be extracted from `task.arn`.
AWS_ECS_TASK_REVISION  = 'aws.ecs.task.revision'
The revision for the task definition used to create the ECS task.
AWS_EKS_CLUSTER_ARN  = 'aws.eks.cluster.arn'
The ARN of an EKS cluster.
AWS_LAMBDA_INVOKED_ARN  = 'aws.lambda.invoked_arn'
The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).
AWS_LOG_GROUP_ARNS  = 'aws.log.group.arns'
The Amazon Resource Name(s) (ARN) of the AWS log group(s).
AWS_LOG_GROUP_NAMES  = 'aws.log.group.names'
The name(s) of the AWS log group(s) an application is writing to.
AWS_LOG_STREAM_ARNS  = 'aws.log.stream.arns'
The ARN(s) of the AWS log stream(s).
AWS_LOG_STREAM_NAMES  = 'aws.log.stream.names'
The name(s) of the AWS log stream(s) an application is writing to.
AWS_REQUEST_ID  = 'aws.request_id'
The AWS request ID as returned in the response headers `x-amz-request-id` or `x-amz-requestid`.
AWS_S3_BUCKET  = 'aws.s3.bucket'
The S3 bucket name the request refers to. Corresponds to the `--bucket` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations.
AWS_S3_COPY_SOURCE  = 'aws.s3.copy_source'
The source object (in the form `bucket`/`key`) for the copy operation.
AWS_S3_DELETE  = 'aws.s3.delete'
The delete request container that specifies the objects to be deleted.
AWS_S3_KEY  = 'aws.s3.key'
The S3 object key the request refers to. Corresponds to the `--key` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations.
AWS_S3_PART_NUMBER  = 'aws.s3.part_number'
The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000.
AWS_S3_UPLOAD_ID  = 'aws.s3.upload_id'
Upload ID that identifies the multipart upload.
AZ_NAMESPACE  = 'az.namespace'
[Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.
AZ_SERVICE_REQUEST_ID  = 'az.service_request_id'
The unique identifier of the service request. It's generated by the Azure service and returned with the response.
BROWSER_BRANDS  = 'browser.brands'
Array of brand name and version separated by a space This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).
BROWSER_LANGUAGE  = 'browser.language'
Preferred language of the user using the browser This value is intended to be taken from the Navigator API `navigator.language`.
BROWSER_MOBILE  = 'browser.mobile'
A boolean that is true if the browser is running on a mobile device This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.mobile`). If unavailable, this attribute SHOULD be left unset.
BROWSER_PLATFORM  = 'browser.platform'
The platform on which the browser is running This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.platform`). If unavailable, the legacy `navigator.platform` API SHOULD NOT be used instead and this attribute SHOULD be left unset in order for the values to be consistent.
CICD_PIPELINE_NAME  = 'cicd.pipeline.name'
The human readable name of the pipeline within a CI/CD system.
CICD_PIPELINE_RUN_ID  = 'cicd.pipeline.run.id'
The unique identifier of a pipeline run within a CI/CD system.
CICD_PIPELINE_TASK_NAME  = 'cicd.pipeline.task.name'
The human readable name of a task within a pipeline. Task here most closely aligns with a [computing process](https://en.wikipedia.org/wiki/Pipeline_(computing)) in a pipeline. Other terms for tasks include commands, steps, and procedures.
CICD_PIPELINE_TASK_RUN_ID  = 'cicd.pipeline.task.run.id'
The unique identifier of a task run within a pipeline.
CICD_PIPELINE_TASK_RUN_URL_FULL  = 'cicd.pipeline.task.run.url.full'
The [URL](https://en.wikipedia.org/wiki/URL) of the pipeline run providing the complete address in order to locate and identify the pipeline run.
CICD_PIPELINE_TASK_TYPE  = 'cicd.pipeline.task.type'
The type of the task within a pipeline.
CLIENT_ADDRESS  = 'client.address'
Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
CLIENT_PORT  = 'client.port'
Client port number.
CLOUD_ACCOUNT_ID  = 'cloud.account.id'
The cloud account ID the resource is assigned to.
CLOUD_AVAILABILITY_ZONE  = 'cloud.availability_zone'
Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
CLOUD_PLATFORM  = 'cloud.platform'
The cloud platform in use.
CLOUD_PROVIDER  = 'cloud.provider'
Name of the cloud provider.
CLOUD_REGION  = 'cloud.region'
The geographical region the resource is running.
CLOUD_RESOURCE_ID  = 'cloud.resource_id'
Cloud provider-specific native identifier of the monitored cloud resource (e.g. an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) on AWS, a [fully qualified resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on Azure, a [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) on GCP)
CLOUDEVENTS_EVENT_ID  = 'cloudevents.event_id'
The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) uniquely identifies the event.
CLOUDEVENTS_EVENT_SOURCE  = 'cloudevents.event_source'
The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) identifies the context in which an event happened.
CLOUDEVENTS_EVENT_SPEC_VERSION  = 'cloudevents.event_spec_version'
The [version of the CloudEvents specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses.
CLOUDEVENTS_EVENT_SUBJECT  = 'cloudevents.event_subject'
The [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject) of the event in the context of the event producer (identified by source).
CLOUDEVENTS_EVENT_TYPE  = 'cloudevents.event_type'
The [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type) contains a value describing the type of event related to the originating occurrence.
CODE_COLUMN  = 'code.column'
The column number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.
CODE_FILEPATH  = 'code.filepath'
The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).
CODE_FUNCTION  = 'code.function'
The method or function name, or equivalent (usually rightmost part of the code unit's name).
CODE_LINENO  = 'code.lineno'
The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.
CODE_NAMESPACE  = 'code.namespace'
The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.
CODE_STACKTRACE  = 'code.stacktrace'
A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.
CONTAINER_COMMAND  = 'container.command'
The command used to run the container (i.e. the command name).
CONTAINER_COMMAND_ARGS  = 'container.command_args'
All the command arguments (including the command/executable itself) run by the container.
CONTAINER_COMMAND_LINE  = 'container.command_line'
The full command run by the container as a single string representing the full command.
CONTAINER_CPU_STATE  = 'container.cpu.state'
Deprecated, use `cpu.mode` instead.
CONTAINER_CSI_PLUGIN_NAME  = 'container.csi.plugin.name'
The name of the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin used by the volume.
CONTAINER_CSI_VOLUME_ID  = 'container.csi.volume.id'
The unique volume ID returned by the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin.
CONTAINER_ID  = 'container.id'
Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). The UUID might be abbreviated.
CONTAINER_IMAGE_ID  = 'container.image.id'
Runtime specific image identifier. Usually a hash algorithm followed by a UUID.
CONTAINER_IMAGE_NAME  = 'container.image.name'
Name of the image the container was built on.
CONTAINER_IMAGE_REPO_DIGESTS  = 'container.image.repo_digests'
Repo digests of the container image as provided by the container runtime.
CONTAINER_IMAGE_TAGS  = 'container.image.tags'
Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.
CONTAINER_LABEL  = 'container.label'
Container labels, `<key>` being the label name, the value being the label value.
CONTAINER_LABELS  = 'container.labels'
Deprecated, use `container.label` instead.
CONTAINER_NAME  = 'container.name'
Container name used by container runtime.
CONTAINER_RUNTIME  = 'container.runtime'
The container runtime managing this container.
CPU_MODE  = 'cpu.mode'
The mode of the CPU
DB_CASSANDRA_CONSISTENCY_LEVEL  = 'db.cassandra.consistency_level'
The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).
DB_CASSANDRA_COORDINATOR_DC  = 'db.cassandra.coordinator.dc'
The data center of the coordinating node for a query.
DB_CASSANDRA_COORDINATOR_ID  = 'db.cassandra.coordinator.id'
The ID of the coordinating node for a query.
DB_CASSANDRA_IDEMPOTENCE  = 'db.cassandra.idempotence'
Whether or not the query is idempotent.
DB_CASSANDRA_PAGE_SIZE  = 'db.cassandra.page_size'
The fetch size used for paging, i.e. how many rows will be returned at once.
DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT  = 'db.cassandra.speculative_execution_count'
The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.
DB_CASSANDRA_TABLE  = 'db.cassandra.table'
Deprecated, use `db.collection.name` instead.
DB_CLIENT_CONNECTION_POOL_NAME  = 'db.client.connection.pool.name'
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 parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.
DB_CLIENT_CONNECTION_STATE  = 'db.client.connection.state'
The state of a connection in the pool
DB_CLIENT_CONNECTIONS_POOL_NAME  = 'db.client.connections.pool.name'
Deprecated, use `db.client.connection.pool.name` instead.
DB_CLIENT_CONNECTIONS_STATE  = 'db.client.connections.state'
Deprecated, use `db.client.connection.state` instead.
DB_COLLECTION_NAME  = 'db.collection.name'
The name of a collection (table, container) within the database.
DB_CONNECTION_STRING  = 'db.connection_string'
Deprecated, use `server.address`, `server.port` attributes instead.
DB_COSMOSDB_CLIENT_ID  = 'db.cosmosdb.client_id'
Unique Cosmos client instance id.
DB_COSMOSDB_CONNECTION_MODE  = 'db.cosmosdb.connection_mode'
Cosmos client connection mode.
DB_COSMOSDB_CONTAINER  = 'db.cosmosdb.container'
Deprecated, use `db.collection.name` instead.
DB_COSMOSDB_OPERATION_TYPE  = 'db.cosmosdb.operation_type'
Cosmos DB Operation Type.
DB_COSMOSDB_REQUEST_CHARGE  = 'db.cosmosdb.request_charge'
RU consumed for that operation
DB_COSMOSDB_REQUEST_CONTENT_LENGTH  = 'db.cosmosdb.request_content_length'
Request payload size in bytes
DB_COSMOSDB_STATUS_CODE  = 'db.cosmosdb.status_code'
Deprecated, use `db.response.status_code` instead.
DB_COSMOSDB_SUB_STATUS_CODE  = 'db.cosmosdb.sub_status_code'
Cosmos DB sub status code.
DB_ELASTICSEARCH_CLUSTER_NAME  = 'db.elasticsearch.cluster.name'
Deprecated, use `db.namespace` instead.
DB_ELASTICSEARCH_NODE_NAME  = 'db.elasticsearch.node.name'
Represents the human-readable identifier of the node/instance to which a request was routed.
DB_ELASTICSEARCH_PATH_PARTS  = 'db.elasticsearch.path_parts'
A dynamic value in the url path.
DB_INSTANCE_ID  = 'db.instance.id'
Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.
DB_JDBC_DRIVER_CLASSNAME  = 'db.jdbc.driver_classname'
Removed, no replacement at this time.
DB_MONGODB_COLLECTION  = 'db.mongodb.collection'
Deprecated, use `db.collection.name` instead.
DB_MSSQL_INSTANCE_NAME  = 'db.mssql.instance_name'
Deprecated, SQL Server instance is now populated as a part of `db.namespace` attribute.
DB_NAME  = 'db.name'
Deprecated, use `db.namespace` instead.
DB_NAMESPACE  = 'db.namespace'
The name of the database, fully qualified within the server address and port.
DB_OPERATION  = 'db.operation'
Deprecated, use `db.operation.name` instead.
DB_OPERATION_BATCH_SIZE  = 'db.operation.batch.size'
The number of queries included in a batch operation.
DB_OPERATION_NAME  = 'db.operation.name'
The name of the operation or command being executed.
DB_QUERY_PARAMETER  = 'db.query.parameter'
A query parameter used in `db.query.text`, with `<key>` being the parameter name, and the attribute value being a string representation of the parameter value.
DB_QUERY_TEXT  = 'db.query.text'
The database query being executed.
DB_REDIS_DATABASE_INDEX  = 'db.redis.database_index'
Deprecated, use `db.namespace` instead.
DB_RESPONSE_STATUS_CODE  = 'db.response.status_code'
Database response status code.
DB_SQL_TABLE  = 'db.sql.table'
Deprecated, use `db.collection.name` instead.
DB_STATEMENT  = 'db.statement'
The database statement being executed.
DB_SYSTEM  = 'db.system'
The database management system (DBMS) product as identified by the client instrumentation.
DB_USER  = 'db.user'
Deprecated, no replacement at this time.
DEPLOYMENT_ENVIRONMENT  = 'deployment.environment'
'Deprecated, use `deployment.environment.name` instead.'
DEPLOYMENT_ENVIRONMENT_NAME  = 'deployment.environment.name'
Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).
DEPLOYMENT_ID  = 'deployment.id'
The id of the deployment.
DEPLOYMENT_NAME  = 'deployment.name'
The name of the deployment.
DEPLOYMENT_STATUS  = 'deployment.status'
The status of the deployment.
DESTINATION_ADDRESS  = 'destination.address'
Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
DESTINATION_PORT  = 'destination.port'
Destination port number
DEVICE_ID  = 'device.id'
A unique identifier representing the device
DEVICE_MANUFACTURER  = 'device.manufacturer'
The name of the device manufacturer
DEVICE_MODEL_IDENTIFIER  = 'device.model.identifier'
The model identifier for the device
DEVICE_MODEL_NAME  = 'device.model.name'
The marketing name for the device model
DISK_IO_DIRECTION  = 'disk.io.direction'
The disk IO operation direction.
DNS_QUESTION_NAME  = 'dns.question.name'
The name being queried.
ENDUSER_ID  = 'enduser.id'
Deprecated, use `user.id` instead.
ENDUSER_ROLE  = 'enduser.role'
Deprecated, use `user.roles` instead.
ENDUSER_SCOPE  = 'enduser.scope'
Deprecated, no replacement at this time.
ERROR_TYPE  = 'error.type'
Describes a class of error the operation ended with.
EVENT_NAME  = 'event.name'
Identifies the class / type of event.
EXCEPTION_ESCAPED  = 'exception.escaped'
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.
EXCEPTION_MESSAGE  = 'exception.message'
The exception message.
EXCEPTION_STACKTRACE  = 'exception.stacktrace'
A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.
EXCEPTION_TYPE  = 'exception.type'
The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.
FAAS_COLDSTART  = 'faas.coldstart'
A boolean that is true if the serverless function is executed for the first time (aka cold-start).
FAAS_CRON  = 'faas.cron'
A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).
FAAS_DOCUMENT_COLLECTION  = 'faas.document.collection'
The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.
FAAS_DOCUMENT_NAME  = 'faas.document.name'
The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.
FAAS_DOCUMENT_OPERATION  = 'faas.document.operation'
Describes the type of the operation that was performed on the data.
FAAS_DOCUMENT_TIME  = 'faas.document.time'
A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
FAAS_INSTANCE  = 'faas.instance'
The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
FAAS_INVOCATION_ID  = 'faas.invocation_id'
The invocation ID of the current function invocation.
FAAS_INVOKED_NAME  = 'faas.invoked_name'
The name of the invoked function.
FAAS_INVOKED_PROVIDER  = 'faas.invoked_provider'
The cloud provider of the invoked function.
FAAS_INVOKED_REGION  = 'faas.invoked_region'
The cloud region of the invoked function.
FAAS_MAX_MEMORY  = 'faas.max_memory'
The amount of memory available to the serverless function converted to Bytes.
FAAS_NAME  = 'faas.name'
The name of the single function that this runtime instance executes.
FAAS_TIME  = 'faas.time'
A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).
FAAS_TRIGGER  = 'faas.trigger'
Type of the trigger which caused this function invocation.
FAAS_VERSION  = 'faas.version'
The immutable version of the function being executed.
FEATURE_FLAG_KEY  = 'feature_flag.key'
The unique identifier of the feature flag.
FEATURE_FLAG_PROVIDER_NAME  = 'feature_flag.provider_name'
The name of the service provider that performs the flag evaluation.
FEATURE_FLAG_VARIANT  = 'feature_flag.variant'
SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used.
FILE_ACCESSED  = 'file.accessed'
Time when the file was last accessed, in ISO 8601 format.
FILE_ATTRIBUTES  = 'file.attributes'
Array of file attributes.
FILE_CHANGED  = 'file.changed'
Time when the file attributes or metadata was last changed, in ISO 8601 format.
FILE_CREATED  = 'file.created'
Time when the file was created, in ISO 8601 format.
FILE_DIRECTORY  = 'file.directory'
Directory where the file is located. It should include the drive letter, when appropriate.
FILE_EXTENSION  = 'file.extension'
File extension, excluding the leading dot.
FILE_FORK_NAME  = 'file.fork_name'
Name of the fork. A fork is additional data associated with a filesystem object.
FILE_GROUP_ID  = 'file.group.id'
Primary Group ID (GID) of the file.
FILE_GROUP_NAME  = 'file.group.name'
Primary group name of the file.
FILE_INODE  = 'file.inode'
Inode representing the file in the filesystem.
FILE_MODE  = 'file.mode'
Mode of the file in octal representation.
FILE_MODIFIED  = 'file.modified'
Time when the file content was last modified, in ISO 8601 format.
FILE_NAME  = 'file.name'
Name of the file including the extension, without the directory.
FILE_OWNER_ID  = 'file.owner.id'
The user ID (UID) or security identifier (SID) of the file owner.
FILE_OWNER_NAME  = 'file.owner.name'
Username of the file owner.
FILE_PATH  = 'file.path'
Full path to the file, including the file name. It should include the drive letter, when appropriate.
FILE_SIZE  = 'file.size'
File size in bytes.
FILE_SYMBOLIC_LINK_TARGET_PATH  = 'file.symbolic_link.target_path'
Path to the target of a symbolic link.
GCP_CLIENT_SERVICE  = 'gcp.client.service'
Identifies the Google Cloud service for which the official client library is intended.
GCP_CLOUD_RUN_JOB_EXECUTION  = 'gcp.cloud_run.job.execution'
The name of the Cloud Run [execution](https://cloud.google.com/run/docs/managing/job-executions) being run for the Job, as set by the [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.
GCP_CLOUD_RUN_JOB_TASK_INDEX  = 'gcp.cloud_run.job.task_index'
The index for a task within an execution as provided by the [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.
GCP_GCE_INSTANCE_HOSTNAME  = 'gcp.gce.instance.hostname'
The hostname of a GCE instance. This is the full value of the default or [custom hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).
GCP_GCE_INSTANCE_NAME  = 'gcp.gce.instance.name'
The instance name of a GCE instance. This is the value provided by `host.name`, the visible name of the instance in the Cloud Console UI, and the prefix for the default hostname of the instance as defined by the [default internal DNS name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).
GEN_AI_COMPLETION  = 'gen_ai.completion'
Deprecated, use Event API to report completions contents.
GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT  = 'gen_ai.openai.request.response_format'
The response format that is requested.
GEN_AI_OPENAI_REQUEST_SEED  = 'gen_ai.openai.request.seed'
Requests with same seed value more likely to return same result.
GEN_AI_OPENAI_REQUEST_SERVICE_TIER  = 'gen_ai.openai.request.service_tier'
The service tier requested. May be a specific tier, detault, or auto.
GEN_AI_OPENAI_RESPONSE_SERVICE_TIER  = 'gen_ai.openai.response.service_tier'
The service tier used for the response.
GEN_AI_OPERATION_NAME  = 'gen_ai.operation.name'
The name of the operation being performed.
GEN_AI_PROMPT  = 'gen_ai.prompt'
Deprecated, use Event API to report prompt contents.
GEN_AI_REQUEST_FREQUENCY_PENALTY  = 'gen_ai.request.frequency_penalty'
The frequency penalty setting for the GenAI request.
GEN_AI_REQUEST_MAX_TOKENS  = 'gen_ai.request.max_tokens'
The maximum number of tokens the model generates for a request.
GEN_AI_REQUEST_MODEL  = 'gen_ai.request.model'
The name of the GenAI model a request is being made to.
GEN_AI_REQUEST_PRESENCE_PENALTY  = 'gen_ai.request.presence_penalty'
The presence penalty setting for the GenAI request.
GEN_AI_REQUEST_STOP_SEQUENCES  = 'gen_ai.request.stop_sequences'
List of sequences that the model will use to stop generating further tokens.
GEN_AI_REQUEST_TEMPERATURE  = 'gen_ai.request.temperature'
The temperature setting for the GenAI request.
GEN_AI_REQUEST_TOP_K  = 'gen_ai.request.top_k'
The top_k sampling setting for the GenAI request.
GEN_AI_REQUEST_TOP_P  = 'gen_ai.request.top_p'
The top_p sampling setting for the GenAI request.
GEN_AI_RESPONSE_FINISH_REASONS  = 'gen_ai.response.finish_reasons'
Array of reasons the model stopped generating tokens, corresponding to each generation received.
GEN_AI_RESPONSE_ID  = 'gen_ai.response.id'
The unique identifier for the completion.
GEN_AI_RESPONSE_MODEL  = 'gen_ai.response.model'
The name of the model that generated the response.
GEN_AI_SYSTEM  = 'gen_ai.system'
The Generative AI product as identified by the client or server instrumentation.
GEN_AI_TOKEN_TYPE  = 'gen_ai.token.type'
The type of token being counted.
GEN_AI_USAGE_COMPLETION_TOKENS  = 'gen_ai.usage.completion_tokens'
Deprecated, use `gen_ai.usage.output_tokens` instead.
GEN_AI_USAGE_INPUT_TOKENS  = 'gen_ai.usage.input_tokens'
The number of tokens used in the GenAI input (prompt).
GEN_AI_USAGE_OUTPUT_TOKENS  = 'gen_ai.usage.output_tokens'
The number of tokens used in the GenAI response (completion).
GEN_AI_USAGE_PROMPT_TOKENS  = 'gen_ai.usage.prompt_tokens'
Deprecated, use `gen_ai.usage.input_tokens` instead.
GO_MEMORY_TYPE  = 'go.memory.type'
The type of memory.
GRAPHQL_DOCUMENT  = 'graphql.document'
The GraphQL document being executed.
GRAPHQL_OPERATION_NAME  = 'graphql.operation.name'
The name of the operation being executed.
GRAPHQL_OPERATION_TYPE  = 'graphql.operation.type'
The type of the operation being executed.
HEROKU_APP_ID  = 'heroku.app.id'
Unique identifier for the application
HEROKU_RELEASE_COMMIT  = 'heroku.release.commit'
Commit hash for the current release
HEROKU_RELEASE_CREATION_TIMESTAMP  = 'heroku.release.creation_timestamp'
Time and date the release was created
HOST_ARCH  = 'host.arch'
The CPU architecture the host system is running on.
HOST_CPU_CACHE_L2_SIZE  = 'host.cpu.cache.l2.size'
The amount of level 2 memory cache available to the processor (in Bytes).
HOST_CPU_FAMILY  = 'host.cpu.family'
Family or generation of the CPU.
HOST_CPU_MODEL_ID  = 'host.cpu.model.id'
Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.
HOST_CPU_MODEL_NAME  = 'host.cpu.model.name'
Model designation of the processor.
HOST_CPU_STEPPING  = 'host.cpu.stepping'
Stepping or core revisions.
HOST_CPU_VENDOR_ID  = 'host.cpu.vendor.id'
Processor manufacturer identifier. A maximum 12-character string.
HOST_ID  = 'host.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 `machine-id`. See the table below for the sources to use to determine the `machine-id` based on operating system.
HOST_IMAGE_ID  = 'host.image.id'
VM image ID or host OS image ID. For Cloud, this value is from the provider.
HOST_IMAGE_NAME  = 'host.image.name'
Name of the VM image or OS install the host was instantiated from.
HOST_IMAGE_VERSION  = 'host.image.version'
The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
HOST_IP  = 'host.ip'
Available IP addresses of the host, excluding loopback interfaces.
HOST_MAC  = 'host.mac'
Available MAC addresses of the host, excluding loopback interfaces.
HOST_NAME  = 'host.name'
Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.
HOST_TYPE  = 'host.type'
Type of host. For Cloud, this must be the machine type.
HTTP_CLIENT_IP  = 'http.client_ip'
Deprecated, use `client.address` instead.
HTTP_CONNECTION_STATE  = 'http.connection.state'
State of the HTTP connection in the HTTP connection pool.
HTTP_FLAVOR  = 'http.flavor'
Deprecated, use `network.protocol.name` instead.
HTTP_HOST  = 'http.host'
Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.
HTTP_METHOD  = 'http.method'
Deprecated, use `http.request.method` instead.
HTTP_REQUEST_BODY_SIZE  = 'http.request.body.size'
The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
HTTP_REQUEST_CONTENT_LENGTH  = 'http.request_content_length'
Deprecated, use `http.request.header.<key>` instead.
HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED  = 'http.request_content_length_uncompressed'
Deprecated, use `http.request.body.size` instead.
HTTP_REQUEST_HEADER  = 'http.request.header'
HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.
HTTP_REQUEST_METHOD  = 'http.request.method'
HTTP request method.
HTTP_REQUEST_METHOD_ORIGINAL  = 'http.request.method_original'
Original HTTP method sent by the client in the request line.
HTTP_REQUEST_RESEND_COUNT  = 'http.request.resend_count'
The ordinal number of request resending attempt (for any reason, including redirects).
HTTP_REQUEST_SIZE  = 'http.request.size'
The total size of the request in bytes. This should be the total number of bytes sent over the wire, including the request line (HTTP/1.1), framing (HTTP/2 and HTTP/3), headers, and request body if any.
HTTP_RESPONSE_BODY_SIZE  = 'http.response.body.size'
The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.
HTTP_RESPONSE_CONTENT_LENGTH  = 'http.response_content_length'
Deprecated, use `http.response.header.<key>` instead.
HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED  = 'http.response_content_length_uncompressed'
Deprecated, use `http.response.body.size` instead.
HTTP_RESPONSE_HEADER  = 'http.response.header'
HTTP response headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.
HTTP_RESPONSE_SIZE  = 'http.response.size'
The total size of the response in bytes. This should be the total number of bytes sent over the wire, including the status line (HTTP/1.1), framing (HTTP/2 and HTTP/3), headers, and response body and trailers if any.
HTTP_RESPONSE_STATUS_CODE  = 'http.response.status_code'
[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).
HTTP_ROUTE  = 'http.route'
The matched route, that is, the path template in the format used by the respective server framework.
HTTP_SCHEME  = 'http.scheme'
Deprecated, use `url.scheme` instead.
HTTP_SERVER_NAME  = 'http.server_name'
Deprecated, use `server.address` instead.
HTTP_STATUS_CODE  = 'http.status_code'
Deprecated, use `http.response.status_code` instead.
HTTP_TARGET  = 'http.target'
Deprecated, use `url.path` and `url.query` instead.
HTTP_URL  = 'http.url'
Deprecated, use `url.full` instead.
HTTP_USER_AGENT  = 'http.user_agent'
Deprecated, use `user_agent.original` instead.
IOS_STATE  = 'ios.state'
Deprecated use the `device.app.lifecycle` event definition including `ios.state` as a payload field instead.
JVM_BUFFER_POOL_NAME  = 'jvm.buffer.pool.name'
Name of the buffer pool.
JVM_GC_ACTION  = 'jvm.gc.action'
Name of the garbage collector action.
JVM_GC_NAME  = 'jvm.gc.name'
Name of the garbage collector.
JVM_MEMORY_POOL_NAME  = 'jvm.memory.pool.name'
Name of the memory pool.
JVM_MEMORY_TYPE  = 'jvm.memory.type'
The type of memory.
JVM_THREAD_DAEMON  = 'jvm.thread.daemon'
Whether the thread is daemon or not.
JVM_THREAD_STATE  = 'jvm.thread.state'
State of the thread.
K8S_CLUSTER_NAME  = 'k8s.cluster.name'
The name of the cluster.
K8S_CLUSTER_UID  = 'k8s.cluster.uid'
A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.
K8S_CONTAINER_NAME  = 'k8s.container.name'
The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).
K8S_CONTAINER_RESTART_COUNT  = 'k8s.container.restart_count'
Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON  = 'k8s.container.status.last_terminated_reason'
Last terminated reason of the Container.
K8S_CRONJOB_NAME  = 'k8s.cronjob.name'
The name of the CronJob.
K8S_CRONJOB_UID  = 'k8s.cronjob.uid'
The UID of the CronJob.
K8S_DAEMONSET_NAME  = 'k8s.daemonset.name'
The name of the DaemonSet.
K8S_DAEMONSET_UID  = 'k8s.daemonset.uid'
The UID of the DaemonSet.
K8S_DEPLOYMENT_NAME  = 'k8s.deployment.name'
The name of the Deployment.
K8S_DEPLOYMENT_UID  = 'k8s.deployment.uid'
The UID of the Deployment.
K8S_JOB_NAME  = 'k8s.job.name'
The name of the Job.
K8S_JOB_UID  = 'k8s.job.uid'
The UID of the Job.
K8S_NAMESPACE_NAME  = 'k8s.namespace.name'
The name of the namespace that the pod is running in.
K8S_NODE_NAME  = 'k8s.node.name'
The name of the Node.
K8S_NODE_UID  = 'k8s.node.uid'
The UID of the Node.
K8S_POD_ANNOTATION  = 'k8s.pod.annotation'
The annotation key-value pairs placed on the Pod, the `<key>` being the annotation name, the value being the annotation value.
K8S_POD_LABEL  = 'k8s.pod.label'
The label key-value pairs placed on the Pod, the `<key>` being the label name, the value being the label value.
K8S_POD_LABELS  = 'k8s.pod.labels'
Deprecated, use `k8s.pod.label` instead.
K8S_POD_NAME  = 'k8s.pod.name'
The name of the Pod.
K8S_POD_UID  = 'k8s.pod.uid'
The UID of the Pod.
K8S_REPLICASET_NAME  = 'k8s.replicaset.name'
The name of the ReplicaSet.
K8S_REPLICASET_UID  = 'k8s.replicaset.uid'
The UID of the ReplicaSet.
K8S_STATEFULSET_NAME  = 'k8s.statefulset.name'
The name of the StatefulSet.
K8S_STATEFULSET_UID  = 'k8s.statefulset.uid'
The UID of the StatefulSet.
K8S_VOLUME_NAME  = 'k8s.volume.name'
The name of the K8s volume.
K8S_VOLUME_TYPE  = 'k8s.volume.type'
The type of the K8s volume.
LINUX_MEMORY_SLAB_STATE  = 'linux.memory.slab.state'
The Linux Slab memory state
LOG_FILE_NAME  = 'log.file.name'
The basename of the file.
LOG_FILE_NAME_RESOLVED  = 'log.file.name_resolved'
The basename of the file, with symlinks resolved.
LOG_FILE_PATH  = 'log.file.path'
The full path to the file.
LOG_FILE_PATH_RESOLVED  = 'log.file.path_resolved'
The full path to the file, with symlinks resolved.
LOG_IOSTREAM  = 'log.iostream'
The stream associated with the log. See below for a list of well-known values.
LOG_RECORD_ORIGINAL  = 'log.record.original'
The complete original Log Record.
LOG_RECORD_UID  = 'log.record.uid'
A unique identifier for the Log Record.
MESSAGE_COMPRESSED_SIZE  = 'message.compressed_size'
Deprecated, use `rpc.message.compressed_size` instead.
MESSAGE_ID  = 'message.id'
Deprecated, use `rpc.message.id` instead.
MESSAGE_TYPE  = 'message.type'
Deprecated, use `rpc.message.type` instead.
MESSAGE_UNCOMPRESSED_SIZE  = 'message.uncompressed_size'
Deprecated, use `rpc.message.uncompressed_size` instead.
MESSAGING_BATCH_MESSAGE_COUNT  = 'messaging.batch.message_count'
The number of messages sent, received, or processed in the scope of the batching operation.
MESSAGING_CLIENT_ID  = 'messaging.client.id'
A unique identifier for the client that consumes or produces a message.
MESSAGING_CONSUMER_GROUP_NAME  = 'messaging.consumer.group.name'
The name of the consumer group with which a consumer is associated.
MESSAGING_DESTINATION_ANONYMOUS  = 'messaging.destination.anonymous'
A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).
MESSAGING_DESTINATION_NAME  = 'messaging.destination.name'
The message destination name Destination name SHOULD uniquely identify a specific queue, topic or other entity within the broker. If the broker doesn't have such notion, the destination name SHOULD uniquely identify the broker.
MESSAGING_DESTINATION_PARTITION_ID  = 'messaging.destination.partition.id'
The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.
MESSAGING_DESTINATION_PUBLISH_ANONYMOUS  = 'messaging.destination_publish.anonymous'
Deprecated, no replacement at this time.
MESSAGING_DESTINATION_PUBLISH_NAME  = 'messaging.destination_publish.name'
Deprecated, no replacement at this time.
MESSAGING_DESTINATION_SUBSCRIPTION_NAME  = 'messaging.destination.subscription.name'
The name of the destination subscription from which a message is consumed.
MESSAGING_DESTINATION_TEMPLATE  = 'messaging.destination.template'
Low cardinality representation of the messaging destination name 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.
MESSAGING_DESTINATION_TEMPORARY  = 'messaging.destination.temporary'
A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.
MESSAGING_EVENTHUBS_CONSUMER_GROUP  = 'messaging.eventhubs.consumer.group'
Deprecated, use `messaging.consumer.group.name` instead.
MESSAGING_EVENTHUBS_MESSAGE_ENQUEUED_TIME  = 'messaging.eventhubs.message.enqueued_time'
The UTC epoch seconds at which the message has been accepted and stored in the entity.
MESSAGING_GCP_PUBSUB_MESSAGE_ACK_DEADLINE  = 'messaging.gcp_pubsub.message.ack_deadline'
The ack deadline in seconds set for the modify ack deadline request.
MESSAGING_GCP_PUBSUB_MESSAGE_ACK_ID  = 'messaging.gcp_pubsub.message.ack_id'
The ack id for a given message.
MESSAGING_GCP_PUBSUB_MESSAGE_DELIVERY_ATTEMPT  = 'messaging.gcp_pubsub.message.delivery_attempt'
The delivery attempt for a given message.
MESSAGING_GCP_PUBSUB_MESSAGE_ORDERING_KEY  = 'messaging.gcp_pubsub.message.ordering_key'
The ordering key for a given message. If the attribute is not present, the message does not have an ordering key.
MESSAGING_KAFKA_CONSUMER_GROUP  = 'messaging.kafka.consumer.group'
Deprecated, use `messaging.consumer.group.name` instead.
MESSAGING_KAFKA_DESTINATION_PARTITION  = 'messaging.kafka.destination.partition'
Deprecated, use `messaging.destination.partition.id` instead.
MESSAGING_KAFKA_MESSAGE_KEY  = 'messaging.kafka.message.key'
Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.
MESSAGING_KAFKA_MESSAGE_OFFSET  = 'messaging.kafka.message.offset'
Deprecated, use `messaging.kafka.offset` instead.
MESSAGING_KAFKA_MESSAGE_TOMBSTONE  = 'messaging.kafka.message.tombstone'
A boolean that is true if the message is a tombstone.
MESSAGING_KAFKA_OFFSET  = 'messaging.kafka.offset'
The offset of a record in the corresponding Kafka partition.
MESSAGING_MESSAGE_BODY_SIZE  = 'messaging.message.body.size'
The size of the message body in bytes.
MESSAGING_MESSAGE_CONVERSATION_ID  = 'messaging.message.conversation_id'
The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
MESSAGING_MESSAGE_ENVELOPE_SIZE  = 'messaging.message.envelope.size'
The size of the message body and metadata in bytes.
MESSAGING_MESSAGE_ID  = 'messaging.message.id'
A value used by the messaging system as an identifier for the message, represented as a string.
MESSAGING_OPERATION  = 'messaging.operation'
Deprecated, use `messaging.operation.type` instead.
MESSAGING_OPERATION_NAME  = 'messaging.operation.name'
The system-specific name of the messaging operation.
MESSAGING_OPERATION_TYPE  = 'messaging.operation.type'
A string identifying the type of the messaging operation.
MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY  = 'messaging.rabbitmq.destination.routing_key'
RabbitMQ message routing key.
MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG  = 'messaging.rabbitmq.message.delivery_tag'
RabbitMQ message delivery tag
MESSAGING_ROCKETMQ_CLIENT_GROUP  = 'messaging.rocketmq.client_group'
Deprecated, use `messaging.consumer.group.name` instead.
MESSAGING_ROCKETMQ_CONSUMPTION_MODEL  = 'messaging.rocketmq.consumption_model'
Model of message consumption. This only applies to consumer spans.
MESSAGING_ROCKETMQ_MESSAGE_DELAY_TIME_LEVEL  = 'messaging.rocketmq.message.delay_time_level'
The delay time level for delay message, which determines the message delay time.
MESSAGING_ROCKETMQ_MESSAGE_DELIVERY_TIMESTAMP  = 'messaging.rocketmq.message.delivery_timestamp'
The timestamp in milliseconds that the delay message is expected to be delivered to consumer.
MESSAGING_ROCKETMQ_MESSAGE_GROUP  = 'messaging.rocketmq.message.group'
It is essential for FIFO message. Messages that belong to the same message group are always processed one by one within the same consumer group.
MESSAGING_ROCKETMQ_MESSAGE_KEYS  = 'messaging.rocketmq.message.keys'
Key(s) of message, another way to mark message besides message id.
MESSAGING_ROCKETMQ_MESSAGE_TAG  = 'messaging.rocketmq.message.tag'
The secondary classifier of message besides topic.
MESSAGING_ROCKETMQ_MESSAGE_TYPE  = 'messaging.rocketmq.message.type'
Type of message.
MESSAGING_ROCKETMQ_NAMESPACE  = 'messaging.rocketmq.namespace'
Namespace of RocketMQ resources, resources in different namespaces are individual.
MESSAGING_SERVICEBUS_DESTINATION_SUBSCRIPTION_NAME  = 'messaging.servicebus.destination.subscription_name'
Deprecated, use `messaging.destination.subscription.name` instead.
MESSAGING_SERVICEBUS_DISPOSITION_STATUS  = 'messaging.servicebus.disposition_status'
Describes the [settlement type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock).
MESSAGING_SERVICEBUS_MESSAGE_DELIVERY_COUNT  = 'messaging.servicebus.message.delivery_count'
Number of deliveries that have been attempted for this message.
MESSAGING_SERVICEBUS_MESSAGE_ENQUEUED_TIME  = 'messaging.servicebus.message.enqueued_time'
The UTC epoch seconds at which the message has been accepted and stored in the entity.
MESSAGING_SYSTEM  = 'messaging.system'
The messaging system as identified by the client instrumentation.
NET_HOST_IP  = 'net.host.ip'
Deprecated, use `network.local.address`.
NET_HOST_NAME  = 'net.host.name'
Deprecated, use `server.address`.
NET_HOST_PORT  = 'net.host.port'
Deprecated, use `server.port`.
NET_PEER_IP  = 'net.peer.ip'
Deprecated, use `network.peer.address`.
NET_PEER_NAME  = 'net.peer.name'
Deprecated, use `server.address` on client spans and `client.address` on server spans.
NET_PEER_PORT  = 'net.peer.port'
Deprecated, use `server.port` on client spans and `client.port` on server spans.
NET_PROTOCOL_NAME  = 'net.protocol.name'
Deprecated, use `network.protocol.name`.
NET_PROTOCOL_VERSION  = 'net.protocol.version'
Deprecated, use `network.protocol.version`.
NET_SOCK_FAMILY  = 'net.sock.family'
Deprecated, use `network.transport` and `network.type`.
NET_SOCK_HOST_ADDR  = 'net.sock.host.addr'
Deprecated, use `network.local.address`.
NET_SOCK_HOST_PORT  = 'net.sock.host.port'
Deprecated, use `network.local.port`.
NET_SOCK_PEER_ADDR  = 'net.sock.peer.addr'
Deprecated, use `network.peer.address`.
NET_SOCK_PEER_NAME  = 'net.sock.peer.name'
Deprecated, no replacement at this time.
NET_SOCK_PEER_PORT  = 'net.sock.peer.port'
Deprecated, use `network.peer.port`.
NET_TRANSPORT  = 'net.transport'
Deprecated, use `network.transport`.
NETWORK_CARRIER_ICC  = 'network.carrier.icc'
The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
NETWORK_CARRIER_MCC  = 'network.carrier.mcc'
The mobile carrier country code.
NETWORK_CARRIER_MNC  = 'network.carrier.mnc'
The mobile carrier network code.
NETWORK_CARRIER_NAME  = 'network.carrier.name'
The name of the mobile carrier.
NETWORK_CONNECTION_SUBTYPE  = 'network.connection.subtype'
This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.
NETWORK_CONNECTION_TYPE  = 'network.connection.type'
The internet connection type.
NETWORK_IO_DIRECTION  = 'network.io.direction'
The network IO operation direction.
NETWORK_LOCAL_ADDRESS  = 'network.local.address'
Local address of the network connection - IP address or Unix domain socket name.
NETWORK_LOCAL_PORT  = 'network.local.port'
Local port number of the network connection.
NETWORK_PEER_ADDRESS  = 'network.peer.address'
Peer address of the network connection - IP address or Unix domain socket name.
NETWORK_PEER_PORT  = 'network.peer.port'
Peer port number of the network connection.
NETWORK_PROTOCOL_NAME  = 'network.protocol.name'
[OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent.
NETWORK_PROTOCOL_VERSION  = 'network.protocol.version'
The actual version of the protocol used for network communication.
NETWORK_TRANSPORT  = 'network.transport'
[OSI transport layer](https://osi-model.com/transport-layer/) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).
NETWORK_TYPE  = 'network.type'
[OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent.
OCI_MANIFEST_DIGEST  = 'oci.manifest.digest'
The digest of the OCI image manifest. For container images specifically is the digest by which the container image is known.
OPENTRACING_REF_TYPE  = 'opentracing.ref_type'
Parent-child Reference type The causal relationship between a child Span and a parent Span.
OS_BUILD_ID  = 'os.build_id'
Unique identifier for a particular build or compilation of the operating system.
OS_DESCRIPTION  = 'os.description'
Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.
OS_NAME  = 'os.name'
Human readable operating system name.
OS_TYPE  = 'os.type'
The operating system type.
OS_VERSION  = 'os.version'
The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).
OTEL_LIBRARY_NAME  = 'otel.library.name'
Deprecated. Use the `otel.scope.name` attribute
OTEL_LIBRARY_VERSION  = 'otel.library.version'
Deprecated. Use the `otel.scope.version` attribute.
OTEL_SCOPE_NAME  = 'otel.scope.name'
The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).
OTEL_SCOPE_VERSION  = 'otel.scope.version'
The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).
OTEL_STATUS_CODE  = 'otel.status_code'
Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET.
OTEL_STATUS_DESCRIPTION  = 'otel.status_description'
Description of the Status if it has a value, otherwise not set.
PEER_SERVICE  = 'peer.service'
The [`service.name`](/docs/resource/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.
POOL_NAME  = 'pool.name'
Deprecated, use `db.client.connection.pool.name` instead.
PROCESS_ARGS_COUNT  = 'process.args_count'
Length of the process.command_args array
PROCESS_COMMAND  = 'process.command'
The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.
PROCESS_COMMAND_ARGS  = 'process.command_args'
All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.
PROCESS_COMMAND_LINE  = 'process.command_line'
The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.
PROCESS_CONTEXT_SWITCH_TYPE  = 'process.context_switch_type'
Specifies whether the context switches for this data point were voluntary or involuntary.
PROCESS_CPU_STATE  = 'process.cpu.state'
Deprecated, use `cpu.mode` instead.
PROCESS_CREATION_TIME  = 'process.creation.time'
The date and time the process was created, in ISO 8601 format.
PROCESS_EXECUTABLE_BUILD_ID_GNU  = 'process.executable.build_id.gnu'
The GNU build ID as found in the `.note.gnu.build-id` ELF section (hex string).
PROCESS_EXECUTABLE_BUILD_ID_GO  = 'process.executable.build_id.go'
The Go build ID as retrieved by `go tool buildid <go executable>`.
PROCESS_EXECUTABLE_BUILD_ID_PROFILING  = 'process.executable.build_id.profiling'
Profiling specific build ID for executables. See the OTel specification for Profiles for more information.
PROCESS_EXECUTABLE_NAME  = 'process.executable.name'
The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.
PROCESS_EXECUTABLE_PATH  = 'process.executable.path'
The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.
PROCESS_EXIT_CODE  = 'process.exit.code'
The exit code of the process.
PROCESS_EXIT_TIME  = 'process.exit.time'
The date and time the process exited, in ISO 8601 format.
PROCESS_GROUP_LEADER_PID  = 'process.group_leader.pid'
The PID of the process's group leader. This is also the process group ID (PGID) of the process.
PROCESS_INTERACTIVE  = 'process.interactive'
Whether the process is connected to an interactive shell.
PROCESS_OWNER  = 'process.owner'
The username of the user that owns the process.
PROCESS_PAGING_FAULT_TYPE  = 'process.paging.fault_type'
The type of page fault for this data point. Type `major` is for major/hard page faults, and `minor` is for minor/soft page faults.
PROCESS_PARENT_PID  = 'process.parent_pid'
Parent Process identifier (PPID).
PROCESS_PID  = 'process.pid'
Process identifier (PID).
PROCESS_REAL_USER_ID  = 'process.real_user.id'
The real user ID (RUID) of the process.
PROCESS_REAL_USER_NAME  = 'process.real_user.name'
The username of the real user of the process.
PROCESS_RUNTIME_DESCRIPTION  = 'process.runtime.description'
An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
PROCESS_RUNTIME_NAME  = 'process.runtime.name'
The name of the runtime of this process.
PROCESS_RUNTIME_VERSION  = 'process.runtime.version'
The version of the runtime of this process, as returned by the runtime without modification.
PROCESS_SAVED_USER_ID  = 'process.saved_user.id'
The saved user ID (SUID) of the process.
PROCESS_SAVED_USER_NAME  = 'process.saved_user.name'
The username of the saved user.
PROCESS_SESSION_LEADER_PID  = 'process.session_leader.pid'
The PID of the process's session leader. This is also the session ID (SID) of the process.
PROCESS_TITLE  = 'process.title'
Process title (proctitle)
PROCESS_USER_ID  = 'process.user.id'
The effective user ID (EUID) of the process.
PROCESS_USER_NAME  = 'process.user.name'
The username of the effective user of the process.
PROCESS_VPID  = 'process.vpid'
Virtual process identifier.
PROCESS_WORKING_DIRECTORY  = 'process.working_directory'
The working directory of the process.
RPC_CONNECT_RPC_ERROR_CODE  = 'rpc.connect_rpc.error_code'
The [error codes](https://connect.build/docs/protocol/#error-codes) of the Connect request. Error codes are always string values.
RPC_CONNECT_RPC_REQUEST_METADATA  = 'rpc.connect_rpc.request.metadata'
Connect request metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
RPC_CONNECT_RPC_RESPONSE_METADATA  = 'rpc.connect_rpc.response.metadata'
Connect response metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.
RPC_GRPC_REQUEST_METADATA  = 'rpc.grpc.request.metadata'
gRPC request metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
RPC_GRPC_RESPONSE_METADATA  = 'rpc.grpc.response.metadata'
gRPC response metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.
RPC_GRPC_STATUS_CODE  = 'rpc.grpc.status_code'
The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.
RPC_JSONRPC_ERROR_CODE  = 'rpc.jsonrpc.error_code'
`error.code` property of response if it is an error response.
RPC_JSONRPC_ERROR_MESSAGE  = 'rpc.jsonrpc.error_message'
`error.message` property of response if it is an error response.
RPC_JSONRPC_REQUEST_ID  = 'rpc.jsonrpc.request_id'
`id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.
RPC_JSONRPC_VERSION  = 'rpc.jsonrpc.version'
Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted.
RPC_MESSAGE_COMPRESSED_SIZE  = 'rpc.message.compressed_size'
Compressed size of the message in bytes.
RPC_MESSAGE_ID  = 'rpc.message.id'
MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.
RPC_MESSAGE_TYPE  = 'rpc.message.type'
Whether this is a received or sent message.
RPC_MESSAGE_UNCOMPRESSED_SIZE  = 'rpc.message.uncompressed_size'
Uncompressed size of the message in bytes.
RPC_METHOD  = 'rpc.method'
The name of the (logical) method being called, must be equal to the $method part in the span name.
RPC_SERVICE  = 'rpc.service'
The full (logical) name of the service being called, including its package name, if applicable.
RPC_SYSTEM  = 'rpc.system'
A string identifying the remoting system. See below for a list of well-known identifiers.
SCHEMA_URL  = 'https://opentelemetry.io/schemas/1.27.0'
The URL of the OpenTelemetry schema for these keys and values.
SERVER_ADDRESS  = 'server.address'
Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
SERVER_PORT  = 'server.port'
Server port number.
SERVICE_INSTANCE_ID  = 'service.instance.id'
The string ID of the service instance.
SERVICE_NAME  = 'service.name'
Logical name of the service.
SERVICE_NAMESPACE  = 'service.namespace'
A namespace for `service.name`.
SERVICE_VERSION  = 'service.version'
The version string of the service API or implementation. The format is not defined by these conventions.
SESSION_ID  = 'session.id'
A unique id to identify a session.
SESSION_PREVIOUS_ID  = 'session.previous_id'
The previous `session.id` for this user, when known.
SIGNALR_CONNECTION_STATUS  = 'signalr.connection.status'
SignalR HTTP connection closure status.
SIGNALR_TRANSPORT  = 'signalr.transport'
[SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)
SOURCE_ADDRESS  = 'source.address'
Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
SOURCE_PORT  = 'source.port'
Source port number
STATE  = 'state'
Deprecated, use `db.client.connection.state` instead.
SYSTEM_CPU_LOGICAL_NUMBER  = 'system.cpu.logical_number'
The logical CPU number [0..n-1]
SYSTEM_CPU_STATE  = 'system.cpu.state'
Deprecated, use `cpu.mode` instead.
SYSTEM_DEVICE  = 'system.device'
The device identifier
SYSTEM_FILESYSTEM_MODE  = 'system.filesystem.mode'
The filesystem mode
SYSTEM_FILESYSTEM_MOUNTPOINT  = 'system.filesystem.mountpoint'
The filesystem mount path
SYSTEM_FILESYSTEM_STATE  = 'system.filesystem.state'
The filesystem state
SYSTEM_FILESYSTEM_TYPE  = 'system.filesystem.type'
The filesystem type
SYSTEM_MEMORY_STATE  = 'system.memory.state'
The memory state
SYSTEM_NETWORK_STATE  = 'system.network.state'
A stateless protocol MUST NOT set this attribute
SYSTEM_PAGING_DIRECTION  = 'system.paging.direction'
The paging access direction
SYSTEM_PAGING_STATE  = 'system.paging.state'
The memory paging state
SYSTEM_PAGING_TYPE  = 'system.paging.type'
The memory paging type
SYSTEM_PROCESS_STATUS  = 'system.process.status'
The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)
SYSTEM_PROCESSES_STATUS  = 'system.processes.status'
Deprecated, use `system.process.status` instead.
TELEMETRY_DISTRO_NAME  = 'telemetry.distro.name'
The name of the auto instrumentation agent or distribution, if used.
TELEMETRY_DISTRO_VERSION  = 'telemetry.distro.version'
The version string of the auto instrumentation agent or distribution, if used.
TELEMETRY_SDK_LANGUAGE  = 'telemetry.sdk.language'
The language of the telemetry SDK.
TELEMETRY_SDK_NAME  = 'telemetry.sdk.name'
The name of the telemetry SDK as defined above.
TELEMETRY_SDK_VERSION  = 'telemetry.sdk.version'
The version string of the telemetry SDK.
TEST_CASE_NAME  = 'test.case.name'
The fully qualified human readable name of the [test case](https://en.wikipedia.org/wiki/Test_case).
TEST_CASE_RESULT_STATUS  = 'test.case.result.status'
The status of the actual test case result from test execution.
TEST_SUITE_NAME  = 'test.suite.name'
The human readable name of a [test suite](https://en.wikipedia.org/wiki/Test_suite).
TEST_SUITE_RUN_STATUS  = 'test.suite.run.status'
The status of the test suite run.
THREAD_ID  = 'thread.id'
Current "managed" thread ID (as opposed to OS thread ID).
THREAD_NAME  = 'thread.name'
Current thread name.
TLS_CIPHER  = 'tls.cipher'
String indicating the [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used during the current connection.
TLS_CLIENT_CERTIFICATE  = 'tls.client.certificate'
PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of `client.certificate_chain` since this value also exists in that list.
TLS_CLIENT_CERTIFICATE_CHAIN  = 'tls.client.certificate_chain'
Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of `client.certificate` since that value should be the first certificate in the chain.
TLS_CLIENT_HASH_MD5  = 'tls.client.hash.md5'
Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.
TLS_CLIENT_HASH_SHA1  = 'tls.client.hash.sha1'
Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.
TLS_CLIENT_HASH_SHA256  = 'tls.client.hash.sha256'
Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.
TLS_CLIENT_ISSUER  = 'tls.client.issuer'
Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client.
TLS_CLIENT_JA3  = 'tls.client.ja3'
A hash that identifies clients based on how they perform an SSL/TLS handshake.
TLS_CLIENT_NOT_AFTER  = 'tls.client.not_after'
Date/Time indicating when client certificate is no longer considered valid.
TLS_CLIENT_NOT_BEFORE  = 'tls.client.not_before'
Date/Time indicating when client certificate is first considered valid.
TLS_CLIENT_SERVER_NAME  = 'tls.client.server_name'
Deprecated, use `server.address` instead.
TLS_CLIENT_SUBJECT  = 'tls.client.subject'
Distinguished name of subject of the x.509 certificate presented by the client.
TLS_CLIENT_SUPPORTED_CIPHERS  = 'tls.client.supported_ciphers'
Array of ciphers offered by the client during the client hello.
TLS_CURVE  = 'tls.curve'
String indicating the curve used for the given cipher, when applicable
TLS_ESTABLISHED  = 'tls.established'
Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel.
TLS_NEXT_PROTOCOL  = 'tls.next_protocol'
String indicating the protocol being tunneled. Per the values in the [IANA registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids), this string should be lower case.
TLS_PROTOCOL_NAME  = 'tls.protocol.name'
Normalized lowercase protocol name parsed from original string of the negotiated [SSL/TLS protocol version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)
TLS_PROTOCOL_VERSION  = 'tls.protocol.version'
Numeric part of the version parsed from the original string of the negotiated [SSL/TLS protocol version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)
TLS_RESUMED  = 'tls.resumed'
Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation.
TLS_SERVER_CERTIFICATE  = 'tls.server.certificate'
PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of `server.certificate_chain` since this value also exists in that list.
TLS_SERVER_CERTIFICATE_CHAIN  = 'tls.server.certificate_chain'
Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of `server.certificate` since that value should be the first certificate in the chain.
TLS_SERVER_HASH_MD5  = 'tls.server.hash.md5'
Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.
TLS_SERVER_HASH_SHA1  = 'tls.server.hash.sha1'
Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.
TLS_SERVER_HASH_SHA256  = 'tls.server.hash.sha256'
Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.
TLS_SERVER_ISSUER  = 'tls.server.issuer'
Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client.
TLS_SERVER_JA3S  = 'tls.server.ja3s'
A hash that identifies servers based on how they perform an SSL/TLS handshake.
TLS_SERVER_NOT_AFTER  = 'tls.server.not_after'
Date/Time indicating when server certificate is no longer considered valid.
TLS_SERVER_NOT_BEFORE  = 'tls.server.not_before'
Date/Time indicating when server certificate is first considered valid.
TLS_SERVER_SUBJECT  = 'tls.server.subject'
Distinguished name of subject of the x.509 certificate presented by the server.
URL_DOMAIN  = 'url.domain'
Domain extracted from the `url.full`, such as "opentelemetry.io".
URL_EXTENSION  = 'url.extension'
The file extension extracted from the `url.full`, excluding the leading dot.
URL_FRAGMENT  = 'url.fragment'
The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component
URL_FULL  = 'url.full'
Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.
URL_ORIGINAL  = 'url.original'
Unmodified original URL as seen in the event source.
URL_PATH  = 'url.path'
The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component
URL_PORT  = 'url.port'
Port extracted from the `url.full`
URL_QUERY  = 'url.query'
The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component
URL_REGISTERED_DOMAIN  = 'url.registered_domain'
The highest registered url domain, stripped of the subdomain.
URL_SCHEME  = 'url.scheme'
The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.
URL_SUBDOMAIN  = 'url.subdomain'
The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.
URL_TEMPLATE  = 'url.template'
The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).
URL_TOP_LEVEL_DOMAIN  = 'url.top_level_domain'
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 `com`.
USER_AGENT_NAME  = 'user_agent.name'
Name of the user-agent extracted from original. Usually refers to the browser's name.
USER_AGENT_ORIGINAL  = 'user_agent.original'
Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.
USER_AGENT_VERSION  = 'user_agent.version'
Version of the user-agent extracted from original. Usually refers to the browser's version
USER_EMAIL  = 'user.email'
User email address.
USER_FULL_NAME  = 'user.full_name'
User's full name
USER_HASH  = 'user.hash'
Unique user hash to correlate information for a user in anonymized form.
USER_ID  = 'user.id'
Unique identifier of the user.
USER_NAME  = 'user.name'
Short name or login/username of the user.
USER_ROLES  = 'user.roles'
Array of user roles at the time of the event.
V8JS_GC_TYPE  = 'v8js.gc.type'
The type of garbage collection.
V8JS_HEAP_SPACE_NAME  = 'v8js.heap.space.name'
The name of the space type of heap memory.
VCS_REPOSITORY_CHANGE_ID  = 'vcs.repository.change.id'
The ID of the change (pull request/merge request) if applicable. This is usually a unique (within repository) identifier generated by the VCS system.
VCS_REPOSITORY_CHANGE_TITLE  = 'vcs.repository.change.title'
The human readable title of the change (pull request/merge request). This title is often a brief summary of the change and may get merged in to a ref as the commit summary.
VCS_REPOSITORY_REF_NAME  = 'vcs.repository.ref.name'
The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.
VCS_REPOSITORY_REF_REVISION  = 'vcs.repository.ref.revision'
The revision, literally [revised version](https://www.merriam-webster.com/dictionary/revision), The revision most often refers to a commit object in Git, or a revision number in SVN.
VCS_REPOSITORY_REF_TYPE  = 'vcs.repository.ref.type'
The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.
VCS_REPOSITORY_URL_FULL  = 'vcs.repository.url.full'
The [URL](https://en.wikipedia.org/wiki/URL) of the repository providing the complete address in order to locate and identify the repository.
WEBENGINE_DESCRIPTION  = 'webengine.description'
Additional description of the web engine (e.g. detailed version and edition information).
WEBENGINE_NAME  = 'webengine.name'
The name of the web engine.
WEBENGINE_VERSION  = 'webengine.version'
The version of the web engine.

Constants

ANDROID_OS_API_LEVEL

Uniquely identifies the framework API revision offered by a version (`os.version`) of the android operating system. More information can be found [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels).

public mixed ANDROID_OS_API_LEVEL = 'android.os.api_level'

ANDROID_STATE

Deprecated use the `device.app.lifecycle` event definition including `android.state` as a payload field instead.

Replaced by device.app.lifecycle.

public mixed ANDROID_STATE = 'android.state'

The Android lifecycle states are defined in Activity lifecycle callbacks, and from which the OS identifiers are derived.

ARTIFACT_ATTESTATION_FILENAME

The provenance filename of the built attestation which directly relates to the build artifact filename. This filename SHOULD accompany the artifact at publish time. See the [SLSA Relationship](https://slsa.dev/spec/v1.0/distributing-provenance#relationship-between-artifacts-and-attestations) specification for more information.

public mixed ARTIFACT_ATTESTATION_FILENAME = 'artifact.attestation.filename'

ARTIFACT_ATTESTATION_HASH

The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), of the built attestation. Some envelopes in the software attestation space also refer to this as the [digest](https://github.com/in-toto/attestation/blob/main/spec/README.md#in-toto-attestation-framework-spec).

public mixed ARTIFACT_ATTESTATION_HASH = 'artifact.attestation.hash'

ARTIFACT_ATTESTATION_ID

The id of the build [software attestation](https://slsa.dev/attestation-model).

public mixed ARTIFACT_ATTESTATION_ID = 'artifact.attestation.id'

ARTIFACT_FILENAME

The human readable file name of the artifact, typically generated during build and release processes. Often includes the package name and version in the file name.

public mixed ARTIFACT_FILENAME = 'artifact.filename'

This file name can also act as the Package Name in cases where the package ecosystem maps accordingly. Additionally, the artifact can be published for others, but that is not a guarantee.

ARTIFACT_HASH

The full [hash value (see glossary)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf), often found in checksum.txt on a release of the artifact and used to verify package integrity.

public mixed ARTIFACT_HASH = 'artifact.hash'

The specific algorithm used to create the cryptographic hash value is not defined. In situations where an artifact has multiple cryptographic hashes, it is up to the implementer to choose which hash value to set here; this should be the most secure hash algorithm that is suitable for the situation and consistent with the corresponding attestation. The implementer can then provide the other hash values through an additional set of attribute extensions as they deem necessary.

ARTIFACT_PURL

The [Package URL](https://github.com/package-url/purl-spec) of the [package artifact](https://slsa.dev/spec/v1.0/terminology#package-model) provides a standard way to identify and locate the packaged artifact.

public mixed ARTIFACT_PURL = 'artifact.purl'

ARTIFACT_VERSION

The version of the artifact.

public mixed ARTIFACT_VERSION = 'artifact.version'

ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT

ASP.NET Core exception middleware handling result

public mixed ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT = 'aspnetcore.diagnostics.exception.result'

ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE

Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.

public mixed ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE = 'aspnetcore.diagnostics.handler.type'

ASPNETCORE_RATE_LIMITING_POLICY

Rate limiting policy name.

public mixed ASPNETCORE_RATE_LIMITING_POLICY = 'aspnetcore.rate_limiting.policy'

ASPNETCORE_RATE_LIMITING_RESULT

Rate-limiting result, shows whether the lease was acquired or contains a rejection reason

public mixed ASPNETCORE_RATE_LIMITING_RESULT = 'aspnetcore.rate_limiting.result'

ASPNETCORE_REQUEST_IS_UNHANDLED

Flag indicating if request was handled by the application pipeline.

public mixed ASPNETCORE_REQUEST_IS_UNHANDLED = 'aspnetcore.request.is_unhandled'

ASPNETCORE_ROUTING_IS_FALLBACK

A value that indicates whether the matched route is a fallback route.

public mixed ASPNETCORE_ROUTING_IS_FALLBACK = 'aspnetcore.routing.is_fallback'

ASPNETCORE_ROUTING_MATCH_STATUS

Match result - success or failure

public mixed ASPNETCORE_ROUTING_MATCH_STATUS = 'aspnetcore.routing.match_status'

AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS

The JSON-serialized value of each item in the `AttributeDefinitions` request field.

public mixed AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS = 'aws.dynamodb.attribute_definitions'

AWS_DYNAMODB_ATTRIBUTES_TO_GET

The value of the `AttributesToGet` request parameter.

public mixed AWS_DYNAMODB_ATTRIBUTES_TO_GET = 'aws.dynamodb.attributes_to_get'

AWS_DYNAMODB_CONSISTENT_READ

The value of the `ConsistentRead` request parameter.

public mixed AWS_DYNAMODB_CONSISTENT_READ = 'aws.dynamodb.consistent_read'

AWS_DYNAMODB_CONSUMED_CAPACITY

The JSON-serialized value of each item in the `ConsumedCapacity` response field.

public mixed AWS_DYNAMODB_CONSUMED_CAPACITY = 'aws.dynamodb.consumed_capacity'

AWS_DYNAMODB_COUNT

The value of the `Count` response parameter.

public mixed AWS_DYNAMODB_COUNT = 'aws.dynamodb.count'

AWS_DYNAMODB_EXCLUSIVE_START_TABLE

The value of the `ExclusiveStartTableName` request parameter.

public mixed AWS_DYNAMODB_EXCLUSIVE_START_TABLE = 'aws.dynamodb.exclusive_start_table'

AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES

The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.

public mixed AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES = 'aws.dynamodb.global_secondary_index_updates'

AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES

The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field

public mixed AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES = 'aws.dynamodb.global_secondary_indexes'

AWS_DYNAMODB_INDEX_NAME

The value of the `IndexName` request parameter.

public mixed AWS_DYNAMODB_INDEX_NAME = 'aws.dynamodb.index_name'

AWS_DYNAMODB_ITEM_COLLECTION_METRICS

The JSON-serialized value of the `ItemCollectionMetrics` response field.

public mixed AWS_DYNAMODB_ITEM_COLLECTION_METRICS = 'aws.dynamodb.item_collection_metrics'

AWS_DYNAMODB_LIMIT

The value of the `Limit` request parameter.

public mixed AWS_DYNAMODB_LIMIT = 'aws.dynamodb.limit'

AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES

The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.

public mixed AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES = 'aws.dynamodb.local_secondary_indexes'

AWS_DYNAMODB_PROJECTION

The value of the `ProjectionExpression` request parameter.

public mixed AWS_DYNAMODB_PROJECTION = 'aws.dynamodb.projection'

AWS_DYNAMODB_PROVISIONED_READ_CAPACITY

The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.

public mixed AWS_DYNAMODB_PROVISIONED_READ_CAPACITY = 'aws.dynamodb.provisioned_read_capacity'

AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY

The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.

public mixed AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY = 'aws.dynamodb.provisioned_write_capacity'

AWS_DYNAMODB_SCAN_FORWARD

The value of the `ScanIndexForward` request parameter.

public mixed AWS_DYNAMODB_SCAN_FORWARD = 'aws.dynamodb.scan_forward'

AWS_DYNAMODB_SCANNED_COUNT

The value of the `ScannedCount` response parameter.

public mixed AWS_DYNAMODB_SCANNED_COUNT = 'aws.dynamodb.scanned_count'

AWS_DYNAMODB_SEGMENT

The value of the `Segment` request parameter.

public mixed AWS_DYNAMODB_SEGMENT = 'aws.dynamodb.segment'

AWS_DYNAMODB_SELECT

The value of the `Select` request parameter.

public mixed AWS_DYNAMODB_SELECT = 'aws.dynamodb.select'

AWS_DYNAMODB_TABLE_COUNT

The number of items in the `TableNames` response parameter.

public mixed AWS_DYNAMODB_TABLE_COUNT = 'aws.dynamodb.table_count'

AWS_DYNAMODB_TABLE_NAMES

The keys in the `RequestItems` object field.

public mixed AWS_DYNAMODB_TABLE_NAMES = 'aws.dynamodb.table_names'

AWS_DYNAMODB_TOTAL_SEGMENTS

The value of the `TotalSegments` request parameter.

public mixed AWS_DYNAMODB_TOTAL_SEGMENTS = 'aws.dynamodb.total_segments'

AWS_ECS_CLUSTER_ARN

The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).

public mixed AWS_ECS_CLUSTER_ARN = 'aws.ecs.cluster.arn'

AWS_ECS_CONTAINER_ARN

The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).

public mixed AWS_ECS_CONTAINER_ARN = 'aws.ecs.container.arn'

AWS_ECS_LAUNCHTYPE

The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.

public mixed AWS_ECS_LAUNCHTYPE = 'aws.ecs.launchtype'

AWS_ECS_TASK_ARN

The ARN of a running [ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).

public mixed AWS_ECS_TASK_ARN = 'aws.ecs.task.arn'

AWS_ECS_TASK_FAMILY

The family name of the [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) used to create the ECS task.

public mixed AWS_ECS_TASK_FAMILY = 'aws.ecs.task.family'

AWS_ECS_TASK_ID

The ID of a running ECS task. The ID MUST be extracted from `task.arn`.

public mixed AWS_ECS_TASK_ID = 'aws.ecs.task.id'

AWS_ECS_TASK_REVISION

The revision for the task definition used to create the ECS task.

public mixed AWS_ECS_TASK_REVISION = 'aws.ecs.task.revision'

AWS_EKS_CLUSTER_ARN

The ARN of an EKS cluster.

public mixed AWS_EKS_CLUSTER_ARN = 'aws.eks.cluster.arn'

AWS_LAMBDA_INVOKED_ARN

The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).

public mixed AWS_LAMBDA_INVOKED_ARN = 'aws.lambda.invoked_arn'

This may be different from cloud.resource_id if an alias is involved.

AWS_LOG_GROUP_NAMES

The name(s) of the AWS log group(s) an application is writing to.

public mixed AWS_LOG_GROUP_NAMES = 'aws.log.group.names'

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.

AWS_LOG_STREAM_ARNS

The ARN(s) of the AWS log stream(s).

public mixed AWS_LOG_STREAM_ARNS = 'aws.log.stream.arns'

See the log stream ARN format documentation. One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.

AWS_LOG_STREAM_NAMES

The name(s) of the AWS log stream(s) an application is writing to.

public mixed AWS_LOG_STREAM_NAMES = 'aws.log.stream.names'

AWS_REQUEST_ID

The AWS request ID as returned in the response headers `x-amz-request-id` or `x-amz-requestid`.

public mixed AWS_REQUEST_ID = 'aws.request_id'

AWS_S3_BUCKET

The S3 bucket name the request refers to. Corresponds to the `--bucket` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations.

public mixed AWS_S3_BUCKET = 'aws.s3.bucket'

The 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 list-buckets.

AWS_S3_KEY

The S3 object key the request refers to. Corresponds to the `--key` parameter of the [S3 API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) operations.

public mixed AWS_S3_KEY = 'aws.s3.key'

The key attribute is applicable to all object-related S3 operations, i.e. that require the object key as a mandatory parameter. This applies in particular to the following operations:

AWS_S3_PART_NUMBER

The part number of the part being uploaded in a multipart-upload operation. This is a positive integer between 1 and 10,000.

public mixed AWS_S3_PART_NUMBER = 'aws.s3.part_number'

The part_number attribute is only applicable to the upload-part and upload-part-copy operations. The part_number attribute corresponds to the --part-number parameter of the upload-part operation within the S3 API.

AZ_NAMESPACE

[Azure Resource Provider Namespace](https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers) as recognized by the client.

public mixed AZ_NAMESPACE = 'az.namespace'

AZ_SERVICE_REQUEST_ID

The unique identifier of the service request. It's generated by the Azure service and returned with the response.

public mixed AZ_SERVICE_REQUEST_ID = 'az.service_request_id'

BROWSER_BRANDS

Array of brand name and version separated by a space This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.brands`).

public mixed BROWSER_BRANDS = 'browser.brands'

BROWSER_LANGUAGE

Preferred language of the user using the browser This value is intended to be taken from the Navigator API `navigator.language`.

public mixed BROWSER_LANGUAGE = 'browser.language'

BROWSER_MOBILE

A boolean that is true if the browser is running on a mobile device This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.mobile`). If unavailable, this attribute SHOULD be left unset.

public mixed BROWSER_MOBILE = 'browser.mobile'

BROWSER_PLATFORM

The platform on which the browser is running This value is intended to be taken from the [UA client hints API](https://wicg.github.io/ua-client-hints/#interface) (`navigator.userAgentData.platform`). If unavailable, the legacy `navigator.platform` API SHOULD NOT be used instead and this attribute SHOULD be left unset in order for the values to be consistent.

public mixed BROWSER_PLATFORM = 'browser.platform'

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 os.type and os.name attributes. However, for consistency, the values in the browser.platform attribute should capture the exact value that the user agent provides.

CICD_PIPELINE_NAME

The human readable name of the pipeline within a CI/CD system.

public mixed CICD_PIPELINE_NAME = 'cicd.pipeline.name'

CICD_PIPELINE_RUN_ID

The unique identifier of a pipeline run within a CI/CD system.

public mixed CICD_PIPELINE_RUN_ID = 'cicd.pipeline.run.id'

CICD_PIPELINE_TASK_NAME

The human readable name of a task within a pipeline. Task here most closely aligns with a [computing process](https://en.wikipedia.org/wiki/Pipeline_(computing)) in a pipeline. Other terms for tasks include commands, steps, and procedures.

public mixed CICD_PIPELINE_TASK_NAME = 'cicd.pipeline.task.name'

CICD_PIPELINE_TASK_RUN_ID

The unique identifier of a task run within a pipeline.

public mixed CICD_PIPELINE_TASK_RUN_ID = 'cicd.pipeline.task.run.id'

CICD_PIPELINE_TASK_RUN_URL_FULL

The [URL](https://en.wikipedia.org/wiki/URL) of the pipeline run providing the complete address in order to locate and identify the pipeline run.

public mixed CICD_PIPELINE_TASK_RUN_URL_FULL = 'cicd.pipeline.task.run.url.full'

CICD_PIPELINE_TASK_TYPE

The type of the task within a pipeline.

public mixed CICD_PIPELINE_TASK_TYPE = 'cicd.pipeline.task.type'

CLIENT_ADDRESS

Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.

public mixed CLIENT_ADDRESS = 'client.address'

When observed from the server side, and when communicating through an intermediary, client.address SHOULD represent the client address behind any intermediaries, for example proxies, if it's available.

CLIENT_PORT

Client port number.

public mixed CLIENT_PORT = 'client.port'

When observed from the server side, and when communicating through an intermediary, client.port SHOULD represent the client port behind any intermediaries, for example proxies, if it's available.

CLOUD_ACCOUNT_ID

The cloud account ID the resource is assigned to.

public mixed CLOUD_ACCOUNT_ID = 'cloud.account.id'

CLOUD_AVAILABILITY_ZONE

Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.

public mixed CLOUD_AVAILABILITY_ZONE = 'cloud.availability_zone'

Availability zones are called "zones" on Alibaba Cloud and Google Cloud.

CLOUD_PLATFORM

The cloud platform in use.

public mixed CLOUD_PLATFORM = 'cloud.platform'

The prefix of the service SHOULD match the one specified in cloud.provider.

CLOUD_PROVIDER

Name of the cloud provider.

public mixed CLOUD_PROVIDER = 'cloud.provider'

CLOUD_RESOURCE_ID

Cloud provider-specific native identifier of the monitored cloud resource (e.g. an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) on AWS, a [fully qualified resource ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on Azure, a [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) on GCP)

public mixed CLOUD_RESOURCE_ID = 'cloud.resource_id'

On some cloud providers, it may not be possible to determine the full ID at startup, so it may be necessary to set cloud.resource_id as a span attribute instead.

The exact value to use for cloud.resource_id depends on the cloud provider. The following well-known definitions MUST be used if you set this attribute and they apply:

  • AWS Lambda: The function ARN. Take care not to use the "invoked ARN" directly but replace any alias suffix with the resolved function version, as the same runtime instance may be invocable with multiple different aliases.
  • GCP: The URI of the resource
  • Azure: The Fully Qualified Resource ID of the invoked function, not the function app, having the form /subscriptions/<SUBSCRIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>. This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share a TracerProvider.

CLOUDEVENTS_EVENT_ID

The [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) uniquely identifies the event.

public mixed CLOUDEVENTS_EVENT_ID = 'cloudevents.event_id'

CLOUDEVENTS_EVENT_SOURCE

The [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) identifies the context in which an event happened.

public mixed CLOUDEVENTS_EVENT_SOURCE = 'cloudevents.event_source'

CLOUDEVENTS_EVENT_SPEC_VERSION

The [version of the CloudEvents specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) which the event uses.

public mixed CLOUDEVENTS_EVENT_SPEC_VERSION = 'cloudevents.event_spec_version'

CLOUDEVENTS_EVENT_SUBJECT

The [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject) of the event in the context of the event producer (identified by source).

public mixed CLOUDEVENTS_EVENT_SUBJECT = 'cloudevents.event_subject'

CLOUDEVENTS_EVENT_TYPE

The [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type) contains a value describing the type of event related to the originating occurrence.

public mixed CLOUDEVENTS_EVENT_TYPE = 'cloudevents.event_type'

CODE_COLUMN

The column number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.

public mixed CODE_COLUMN = 'code.column'

CODE_FILEPATH

The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).

public mixed CODE_FILEPATH = 'code.filepath'

CODE_FUNCTION

The method or function name, or equivalent (usually rightmost part of the code unit's name).

public mixed CODE_FUNCTION = 'code.function'

CODE_LINENO

The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.

public mixed CODE_LINENO = 'code.lineno'

CODE_NAMESPACE

The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.

public mixed CODE_NAMESPACE = 'code.namespace'

CODE_STACKTRACE

A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.

public mixed CODE_STACKTRACE = 'code.stacktrace'

CONTAINER_COMMAND

The command used to run the container (i.e. the command name).

public mixed CONTAINER_COMMAND = 'container.command'

If using embedded credentials or sensitive data, it is recommended to remove them to prevent potential leakage.

CONTAINER_COMMAND_ARGS

All the command arguments (including the command/executable itself) run by the container.

public mixed CONTAINER_COMMAND_ARGS = 'container.command_args'

CONTAINER_COMMAND_LINE

The full command run by the container as a single string representing the full command.

public mixed CONTAINER_COMMAND_LINE = 'container.command_line'

CONTAINER_CPU_STATE

Deprecated, use `cpu.mode` instead.

Replaced by cpu.mode

public mixed CONTAINER_CPU_STATE = 'container.cpu.state'

CONTAINER_CSI_PLUGIN_NAME

The name of the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin used by the volume.

public mixed CONTAINER_CSI_PLUGIN_NAME = 'container.csi.plugin.name'

This can sometimes be referred to as a "driver" in CSI implementations. This should represent the name field of the GetPluginInfo RPC.

CONTAINER_CSI_VOLUME_ID

The unique volume ID returned by the CSI ([Container Storage Interface](https://github.com/container-storage-interface/spec)) plugin.

public mixed CONTAINER_CSI_VOLUME_ID = 'container.csi.volume.id'

This can sometimes be referred to as a "volume handle" in CSI implementations. This should represent the Volume.volume_id field in CSI spec.

CONTAINER_ID

Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). The UUID might be abbreviated.

public mixed CONTAINER_ID = 'container.id'

CONTAINER_IMAGE_ID

Runtime specific image identifier. Usually a hash algorithm followed by a UUID.

public mixed CONTAINER_IMAGE_ID = 'container.image.id'

Docker defines a sha256 of the image id; container.image.id corresponds to the Image field from the Docker container inspect API endpoint. K8s defines a link to the container registry repository with digest "imageID": "registry.azurecr.io /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625". The ID is assigned by the container runtime and can vary in different environments. Consider using oci.manifest.digest if it is important to identify the same image in different environments/runtimes.

CONTAINER_IMAGE_NAME

Name of the image the container was built on.

public mixed CONTAINER_IMAGE_NAME = 'container.image.name'

CONTAINER_IMAGE_REPO_DIGESTS

Repo digests of the container image as provided by the container runtime.

public mixed CONTAINER_IMAGE_REPO_DIGESTS = 'container.image.repo_digests'

Docker and CRI report those under the RepoDigests field.

CONTAINER_IMAGE_TAGS

Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). Should be only the `<tag>` section of the full name for example from `registry.example.com/my-org/my-image:<tag>`.

public mixed CONTAINER_IMAGE_TAGS = 'container.image.tags'

CONTAINER_LABEL

Container labels, `<key>` being the label name, the value being the label value.

public mixed CONTAINER_LABEL = 'container.label'

CONTAINER_LABELS

Deprecated, use `container.label` instead.

Replaced by container.label.

public mixed CONTAINER_LABELS = 'container.labels'

CONTAINER_NAME

Container name used by container runtime.

public mixed CONTAINER_NAME = 'container.name'

CONTAINER_RUNTIME

The container runtime managing this container.

public mixed CONTAINER_RUNTIME = 'container.runtime'

DB_CASSANDRA_CONSISTENCY_LEVEL

The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).

public mixed DB_CASSANDRA_CONSISTENCY_LEVEL = 'db.cassandra.consistency_level'

DB_CASSANDRA_COORDINATOR_DC

The data center of the coordinating node for a query.

public mixed DB_CASSANDRA_COORDINATOR_DC = 'db.cassandra.coordinator.dc'

DB_CASSANDRA_COORDINATOR_ID

The ID of the coordinating node for a query.

public mixed DB_CASSANDRA_COORDINATOR_ID = 'db.cassandra.coordinator.id'

DB_CASSANDRA_IDEMPOTENCE

Whether or not the query is idempotent.

public mixed DB_CASSANDRA_IDEMPOTENCE = 'db.cassandra.idempotence'

DB_CASSANDRA_PAGE_SIZE

The fetch size used for paging, i.e. how many rows will be returned at once.

public mixed DB_CASSANDRA_PAGE_SIZE = 'db.cassandra.page_size'

DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT

The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.

public mixed DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT = 'db.cassandra.speculative_execution_count'

DB_CASSANDRA_TABLE

Deprecated, use `db.collection.name` instead.

Replaced by db.collection.name.

public mixed DB_CASSANDRA_TABLE = 'db.cassandra.table'

DB_CLIENT_CONNECTION_POOL_NAME

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 parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns SHOULD document it.

public mixed DB_CLIENT_CONNECTION_POOL_NAME = 'db.client.connection.pool.name'

DB_CLIENT_CONNECTION_STATE

The state of a connection in the pool

public mixed DB_CLIENT_CONNECTION_STATE = 'db.client.connection.state'

DB_CLIENT_CONNECTIONS_POOL_NAME

Deprecated, use `db.client.connection.pool.name` instead.

Replaced by db.client.connection.pool.name.

public mixed DB_CLIENT_CONNECTIONS_POOL_NAME = 'db.client.connections.pool.name'

DB_CLIENT_CONNECTIONS_STATE

Deprecated, use `db.client.connection.state` instead.

Replaced by db.client.connection.state.

public mixed DB_CLIENT_CONNECTIONS_STATE = 'db.client.connections.state'

DB_COLLECTION_NAME

The name of a collection (table, container) within the database.

public mixed DB_COLLECTION_NAME = 'db.collection.name'

It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization. If the collection name is parsed from the query text, it SHOULD be the first collection name found in the query and it SHOULD match the value provided in the query text including any schema and database name prefix. For batch operations, if the individual operations are known to have the same collection name then that collection name SHOULD be used, otherwise db.collection.name SHOULD NOT be captured. This attribute has stability level RELEASE CANDIDATE.

DB_CONNECTION_STRING

Deprecated, use `server.address`, `server.port` attributes instead.

Replaced by server.address and server.port.

public mixed DB_CONNECTION_STRING = 'db.connection_string'

DB_COSMOSDB_CLIENT_ID

Unique Cosmos client instance id.

public mixed DB_COSMOSDB_CLIENT_ID = 'db.cosmosdb.client_id'

DB_COSMOSDB_CONNECTION_MODE

Cosmos client connection mode.

public mixed DB_COSMOSDB_CONNECTION_MODE = 'db.cosmosdb.connection_mode'

DB_COSMOSDB_CONTAINER

Deprecated, use `db.collection.name` instead.

Replaced by db.collection.name.

public mixed DB_COSMOSDB_CONTAINER = 'db.cosmosdb.container'

DB_COSMOSDB_OPERATION_TYPE

Cosmos DB Operation Type.

public mixed DB_COSMOSDB_OPERATION_TYPE = 'db.cosmosdb.operation_type'

DB_COSMOSDB_REQUEST_CHARGE

RU consumed for that operation

public mixed DB_COSMOSDB_REQUEST_CHARGE = 'db.cosmosdb.request_charge'

DB_COSMOSDB_REQUEST_CONTENT_LENGTH

Request payload size in bytes

public mixed DB_COSMOSDB_REQUEST_CONTENT_LENGTH = 'db.cosmosdb.request_content_length'

DB_COSMOSDB_STATUS_CODE

Deprecated, use `db.response.status_code` instead.

Replaced by db.response.status_code.

public mixed DB_COSMOSDB_STATUS_CODE = 'db.cosmosdb.status_code'

DB_COSMOSDB_SUB_STATUS_CODE

Cosmos DB sub status code.

public mixed DB_COSMOSDB_SUB_STATUS_CODE = 'db.cosmosdb.sub_status_code'

DB_ELASTICSEARCH_CLUSTER_NAME

Deprecated, use `db.namespace` instead.

Replaced by db.namespace.

public mixed DB_ELASTICSEARCH_CLUSTER_NAME = 'db.elasticsearch.cluster.name'

DB_ELASTICSEARCH_NODE_NAME

Represents the human-readable identifier of the node/instance to which a request was routed.

public mixed DB_ELASTICSEARCH_NODE_NAME = 'db.elasticsearch.node.name'

DB_ELASTICSEARCH_PATH_PARTS

A dynamic value in the url path.

public mixed DB_ELASTICSEARCH_PATH_PARTS = 'db.elasticsearch.path_parts'

Many Elasticsearch url paths allow dynamic values. These SHOULD be recorded in span attributes in the format db.elasticsearch.path_parts.<key>, where <key> is the url path part name. The implementation SHOULD reference the elasticsearch schema in order to map the path part values to their names.

DB_INSTANCE_ID

Deprecated, no general replacement at this time. For Elasticsearch, use `db.elasticsearch.node.name` instead.

Deprecated, no general replacement at this time. For Elasticsearch, use db.elasticsearch.node.name instead.

public mixed DB_INSTANCE_ID = 'db.instance.id'

DB_JDBC_DRIVER_CLASSNAME

Removed, no replacement at this time.

Removed as not used.

public mixed DB_JDBC_DRIVER_CLASSNAME = 'db.jdbc.driver_classname'

DB_MONGODB_COLLECTION

Deprecated, use `db.collection.name` instead.

Replaced by db.collection.name.

public mixed DB_MONGODB_COLLECTION = 'db.mongodb.collection'

DB_MSSQL_INSTANCE_NAME

Deprecated, SQL Server instance is now populated as a part of `db.namespace` attribute.

Deprecated, no replacement at this time.

public mixed DB_MSSQL_INSTANCE_NAME = 'db.mssql.instance_name'

DB_NAME

Deprecated, use `db.namespace` instead.

Replaced by db.namespace.

public mixed DB_NAME = 'db.name'

DB_NAMESPACE

The name of the database, fully qualified within the server address and port.

public mixed DB_NAMESPACE = 'db.namespace'

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 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. This attribute has stability level RELEASE CANDIDATE.

DB_OPERATION

Deprecated, use `db.operation.name` instead.

Replaced by db.operation.name.

public mixed DB_OPERATION = 'db.operation'

DB_OPERATION_BATCH_SIZE

The number of queries included in a batch operation.

public mixed DB_OPERATION_BATCH_SIZE = 'db.operation.batch.size'

Operations are only considered batches when they contain two or more operations, and so db.operation.batch.size SHOULD never be 1. This attribute has stability level RELEASE CANDIDATE.

DB_OPERATION_NAME

The name of the operation or command being executed.

public mixed DB_OPERATION_NAME = 'db.operation.name'

It is RECOMMENDED to capture the value as provided by the application without attempting to do any case normalization. If the operation name is parsed from the query text, it SHOULD be the first operation name found in the query. For batch operations, if the individual operations are known to have the same operation name then that operation name SHOULD be used prepended by BATCH , otherwise db.operation.name SHOULD be BATCH or some other database system specific term if more applicable. This attribute has stability level RELEASE CANDIDATE.

DB_QUERY_PARAMETER

A query parameter used in `db.query.text`, with `<key>` being the parameter name, and the attribute value being a string representation of the parameter value.

public mixed DB_QUERY_PARAMETER = 'db.query.parameter'

Query parameters should only be captured when db.query.text is parameterized with placeholders. If a parameter has no name and instead is referenced only by index, then <key> SHOULD be the 0-based index. This attribute has stability level RELEASE CANDIDATE.

DB_QUERY_TEXT

The database query being executed.

public mixed DB_QUERY_TEXT = 'db.query.text'

For sanitization see Sanitization of db.query.text. For batch operations, if the individual operations are known to have the same query text then that query text SHOULD be used, otherwise all of the individual query texts SHOULD be concatenated with separator ; or some other database system specific separator if more applicable. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk. This attribute has stability level RELEASE CANDIDATE.

DB_REDIS_DATABASE_INDEX

Deprecated, use `db.namespace` instead.

Replaced by db.namespace.

public mixed DB_REDIS_DATABASE_INDEX = 'db.redis.database_index'

DB_RESPONSE_STATUS_CODE

Database response status code.

public mixed DB_RESPONSE_STATUS_CODE = 'db.response.status_code'

The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes. Semantic conventions for individual database systems SHOULD document what db.response.status_code means in the context of that system. This attribute has stability level RELEASE CANDIDATE.

DB_SQL_TABLE

Deprecated, use `db.collection.name` instead.

Replaced by db.collection.name.

public mixed DB_SQL_TABLE = 'db.sql.table'

DB_STATEMENT

The database statement being executed.

Replaced by db.query.text.

public mixed DB_STATEMENT = 'db.statement'

DB_SYSTEM

The database management system (DBMS) product as identified by the client instrumentation.

public mixed DB_SYSTEM = 'db.system'

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 db.system is set to postgresql based on the instrumentation's best knowledge. This attribute has stability level RELEASE CANDIDATE.

DB_USER

Deprecated, no replacement at this time.

No replacement at this time.

public mixed DB_USER = 'db.user'

DEPLOYMENT_ENVIRONMENT

'Deprecated, use `deployment.environment.name` instead.'

Deprecated, use deployment.environment.name instead.

public mixed DEPLOYMENT_ENVIRONMENT = 'deployment.environment'

DEPLOYMENT_ENVIRONMENT_NAME

Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).

public mixed DEPLOYMENT_ENVIRONMENT_NAME = 'deployment.environment.name'

deployment.environment.name does not affect the uniqueness constraints defined through the service.namespace, service.name and service.instance.id resource attributes. This implies that resources carrying the following attribute combinations MUST be considered to be identifying the same service:

  • service.name=frontend, deployment.environment.name=production
  • service.name=frontend, deployment.environment.name=staging.

DEPLOYMENT_ID

The id of the deployment.

public mixed DEPLOYMENT_ID = 'deployment.id'

DEPLOYMENT_NAME

The name of the deployment.

public mixed DEPLOYMENT_NAME = 'deployment.name'

DEPLOYMENT_STATUS

The status of the deployment.

public mixed DEPLOYMENT_STATUS = 'deployment.status'

DESTINATION_ADDRESS

Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.

public mixed DESTINATION_ADDRESS = 'destination.address'

When observed from the source side, and when communicating through an intermediary, destination.address SHOULD represent the destination address behind any intermediaries, for example proxies, if it's available.

DESTINATION_PORT

Destination port number

public mixed DESTINATION_PORT = 'destination.port'

DEVICE_ID

A unique identifier representing the device

public mixed DEVICE_ID = 'device.id'

The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the vendor identifier. On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found here on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.

DEVICE_MANUFACTURER

The name of the device manufacturer

public mixed DEVICE_MANUFACTURER = 'device.manufacturer'

The Android OS provides this field via Build. iOS apps SHOULD hardcode the value Apple.

DEVICE_MODEL_IDENTIFIER

The model identifier for the device

public mixed DEVICE_MODEL_IDENTIFIER = 'device.model.identifier'

It's recommended this value represents a machine-readable version of the model identifier rather than the market or consumer-friendly name of the device.

DEVICE_MODEL_NAME

The marketing name for the device model

public mixed DEVICE_MODEL_NAME = 'device.model.name'

It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative.

DISK_IO_DIRECTION

The disk IO operation direction.

public mixed DISK_IO_DIRECTION = 'disk.io.direction'

DNS_QUESTION_NAME

The name being queried.

public mixed DNS_QUESTION_NAME = 'dns.question.name'

If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively.

ENDUSER_ID

Deprecated, use `user.id` instead.

Replaced by user.id attribute.

public mixed ENDUSER_ID = 'enduser.id'

ENDUSER_ROLE

Deprecated, use `user.roles` instead.

Replaced by user.roles attribute.

public mixed ENDUSER_ROLE = 'enduser.role'

ENDUSER_SCOPE

Deprecated, no replacement at this time.

Removed.

public mixed ENDUSER_SCOPE = 'enduser.scope'

ERROR_TYPE

Describes a class of error the operation ended with.

public mixed ERROR_TYPE = 'error.type'

The error.type SHOULD be predictable, and SHOULD have low cardinality.

When 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 error.type within one instrumentation library SHOULD be low. Telemetry consumers that aggregate data from multiple instrumentation libraries and applications should be prepared for 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 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 error.type to capture all errors, regardless of whether they are defined within the domain-specific set or not.

EVENT_NAME

Identifies the class / type of event.

public mixed EVENT_NAME = 'event.name'

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.

EXCEPTION_ESCAPED

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.

public mixed EXCEPTION_ESCAPED = 'exception.escaped'

An exception is considered to have escaped (or left) the scope of a span, if that span is ended while the exception is still logically "in flight". This may be actually "in flight" in some languages (e.g. if the exception is passed to a Context manager's __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 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.

EXCEPTION_MESSAGE

The exception message.

public mixed EXCEPTION_MESSAGE = 'exception.message'

EXCEPTION_STACKTRACE

A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.

public mixed EXCEPTION_STACKTRACE = 'exception.stacktrace'

EXCEPTION_TYPE

The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.

public mixed EXCEPTION_TYPE = 'exception.type'

FAAS_COLDSTART

A boolean that is true if the serverless function is executed for the first time (aka cold-start).

public mixed FAAS_COLDSTART = 'faas.coldstart'

FAAS_CRON

A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).

public mixed FAAS_CRON = 'faas.cron'

FAAS_DOCUMENT_COLLECTION

The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.

public mixed FAAS_DOCUMENT_COLLECTION = 'faas.document.collection'

FAAS_DOCUMENT_NAME

The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.

public mixed FAAS_DOCUMENT_NAME = 'faas.document.name'

FAAS_DOCUMENT_OPERATION

Describes the type of the operation that was performed on the data.

public mixed FAAS_DOCUMENT_OPERATION = 'faas.document.operation'

FAAS_DOCUMENT_TIME

A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).

public mixed FAAS_DOCUMENT_TIME = 'faas.document.time'

FAAS_INSTANCE

The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.

public mixed FAAS_INSTANCE = 'faas.instance'
  • AWS Lambda: Use the (full) log stream name.

FAAS_INVOCATION_ID

The invocation ID of the current function invocation.

public mixed FAAS_INVOCATION_ID = 'faas.invocation_id'

FAAS_INVOKED_NAME

The name of the invoked function.

public mixed FAAS_INVOKED_NAME = 'faas.invoked_name'

SHOULD be equal to the faas.name resource attribute of the invoked function.

FAAS_INVOKED_PROVIDER

The cloud provider of the invoked function.

public mixed FAAS_INVOKED_PROVIDER = 'faas.invoked_provider'

SHOULD be equal to the cloud.provider resource attribute of the invoked function.

FAAS_INVOKED_REGION

The cloud region of the invoked function.

public mixed FAAS_INVOKED_REGION = 'faas.invoked_region'

SHOULD be equal to the cloud.region resource attribute of the invoked function.

FAAS_MAX_MEMORY

The amount of memory available to the serverless function converted to Bytes.

public mixed FAAS_MAX_MEMORY = 'faas.max_memory'

It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable AWS_LAMBDA_FUNCTION_MEMORY_SIZE provides this information (which must be multiplied by 1,048,576).

FAAS_NAME

The name of the single function that this runtime instance executes.

public mixed FAAS_NAME = 'faas.name'

This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the code.namespace/code.function span attributes).

For some cloud providers, the above definition is ambiguous. The following definition of function name MUST be used for this attribute (and consequently the span name) for the listed cloud providers/products:

  • Azure: The full name <FUNCAPP>/<FUNC>, i.e., function app name followed by a forward slash followed by the function name (this form can also be seen in the resource JSON for the function). This means that a span attribute MUST be used, as an Azure function app can host multiple functions that would usually share a TracerProvider (see also the cloud.resource_id attribute).

FAAS_TIME

A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).

public mixed FAAS_TIME = 'faas.time'

FAAS_TRIGGER

Type of the trigger which caused this function invocation.

public mixed FAAS_TRIGGER = 'faas.trigger'

FAAS_VERSION

The immutable version of the function being executed.

public mixed FAAS_VERSION = 'faas.version'

Depending on the cloud provider and platform, use:

  • AWS Lambda: The function version (an integer represented as a decimal string).
  • Google Cloud Run (Services): The revision (i.e., the function name plus the revision suffix).
  • Google Cloud Functions: The value of the K_REVISION environment variable.
  • Azure Functions: Not applicable. Do not set this attribute.

FEATURE_FLAG_KEY

The unique identifier of the feature flag.

public mixed FEATURE_FLAG_KEY = 'feature_flag.key'

FEATURE_FLAG_PROVIDER_NAME

The name of the service provider that performs the flag evaluation.

public mixed FEATURE_FLAG_PROVIDER_NAME = 'feature_flag.provider_name'

FEATURE_FLAG_VARIANT

SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of the value can be used.

public mixed FEATURE_FLAG_VARIANT = 'feature_flag.variant'

A semantic identifier, commonly referred to as a variant, provides a means for referring to a value without including the value itself. This can provide additional context for understanding the meaning behind a value. For example, the variant red maybe be used for the value #c05543.

A stringified version of the value can be used in situations where a semantic identifier is unavailable. String representation of the value should be determined by the implementer.

FILE_ACCESSED

Time when the file was last accessed, in ISO 8601 format.

public mixed FILE_ACCESSED = 'file.accessed'

This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.

FILE_ATTRIBUTES

Array of file attributes.

public mixed FILE_ATTRIBUTES = 'file.attributes'

Attributes names depend on the OS or file system. Here’s a non-exhaustive list of values expected for this attribute: archive, compressed, directory, encrypted, execute, hidden, immutable, journaled, read, readonly, symbolic link, system, temporary, write.

FILE_CHANGED

Time when the file attributes or metadata was last changed, in ISO 8601 format.

public mixed FILE_CHANGED = 'file.changed'

file.changed captures the time when any of the file's properties or attributes (including the content) are changed, while file.modified captures the timestamp when the file content is modified.

FILE_CREATED

Time when the file was created, in ISO 8601 format.

public mixed FILE_CREATED = 'file.created'

This attribute might not be supported by some file systems — NFS, FAT32, in embedded OS, etc.

FILE_DIRECTORY

Directory where the file is located. It should include the drive letter, when appropriate.

public mixed FILE_DIRECTORY = 'file.directory'

FILE_EXTENSION

File extension, excluding the leading dot.

public mixed FILE_EXTENSION = 'file.extension'

When the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz").

FILE_FORK_NAME

Name of the fork. A fork is additional data associated with a filesystem object.

public mixed FILE_FORK_NAME = 'file.fork_name'

On Linux, a resource fork is used to store additional data with a filesystem object. A file always has at least one fork for the data portion, and additional forks may exist. On NTFS, this is analogous to an Alternate Data Stream (ADS), and the default data stream for a file is just called $DATA. Zone.Identifier is commonly used by Windows to track contents downloaded from the Internet. An ADS is typically of the form: C:\path\to\filename.extension:some_fork_name, and some_fork_name is the value that should populate fork_name. filename.extension should populate file.name, and extension should populate file.extension. The full path, file.path, will include the fork name.

FILE_GROUP_ID

Primary Group ID (GID) of the file.

public mixed FILE_GROUP_ID = 'file.group.id'

FILE_GROUP_NAME

Primary group name of the file.

public mixed FILE_GROUP_NAME = 'file.group.name'

FILE_INODE

Inode representing the file in the filesystem.

public mixed FILE_INODE = 'file.inode'

FILE_MODE

Mode of the file in octal representation.

public mixed FILE_MODE = 'file.mode'

FILE_MODIFIED

Time when the file content was last modified, in ISO 8601 format.

public mixed FILE_MODIFIED = 'file.modified'

FILE_NAME

Name of the file including the extension, without the directory.

public mixed FILE_NAME = 'file.name'

FILE_OWNER_ID

The user ID (UID) or security identifier (SID) of the file owner.

public mixed FILE_OWNER_ID = 'file.owner.id'

FILE_OWNER_NAME

Username of the file owner.

public mixed FILE_OWNER_NAME = 'file.owner.name'

FILE_PATH

Full path to the file, including the file name. It should include the drive letter, when appropriate.

public mixed FILE_PATH = 'file.path'

FILE_SIZE

File size in bytes.

public mixed FILE_SIZE = 'file.size'

Path to the target of a symbolic link.

public mixed FILE_SYMBOLIC_LINK_TARGET_PATH = 'file.symbolic_link.target_path'

This attribute is only applicable to symbolic links.

GCP_CLIENT_SERVICE

Identifies the Google Cloud service for which the official client library is intended.

public mixed GCP_CLIENT_SERVICE = 'gcp.client.service'

Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'.

GCP_CLOUD_RUN_JOB_EXECUTION

The name of the Cloud Run [execution](https://cloud.google.com/run/docs/managing/job-executions) being run for the Job, as set by the [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.

public mixed GCP_CLOUD_RUN_JOB_EXECUTION = 'gcp.cloud_run.job.execution'

GCP_CLOUD_RUN_JOB_TASK_INDEX

The index for a task within an execution as provided by the [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) environment variable.

public mixed GCP_CLOUD_RUN_JOB_TASK_INDEX = 'gcp.cloud_run.job.task_index'

GCP_GCE_INSTANCE_HOSTNAME

The hostname of a GCE instance. This is the full value of the default or [custom hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).

public mixed GCP_GCE_INSTANCE_HOSTNAME = 'gcp.gce.instance.hostname'

GCP_GCE_INSTANCE_NAME

The instance name of a GCE instance. This is the value provided by `host.name`, the visible name of the instance in the Cloud Console UI, and the prefix for the default hostname of the instance as defined by the [default internal DNS name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).

public mixed GCP_GCE_INSTANCE_NAME = 'gcp.gce.instance.name'

GEN_AI_COMPLETION

Deprecated, use Event API to report completions contents.

Removed, no replacement at this time.

public mixed GEN_AI_COMPLETION = 'gen_ai.completion'

GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT

The response format that is requested.

public mixed GEN_AI_OPENAI_REQUEST_RESPONSE_FORMAT = 'gen_ai.openai.request.response_format'

GEN_AI_OPENAI_REQUEST_SEED

Requests with same seed value more likely to return same result.

public mixed GEN_AI_OPENAI_REQUEST_SEED = 'gen_ai.openai.request.seed'

GEN_AI_OPENAI_REQUEST_SERVICE_TIER

The service tier requested. May be a specific tier, detault, or auto.

public mixed GEN_AI_OPENAI_REQUEST_SERVICE_TIER = 'gen_ai.openai.request.service_tier'

GEN_AI_OPENAI_RESPONSE_SERVICE_TIER

The service tier used for the response.

public mixed GEN_AI_OPENAI_RESPONSE_SERVICE_TIER = 'gen_ai.openai.response.service_tier'

GEN_AI_OPERATION_NAME

The name of the operation being performed.

public mixed GEN_AI_OPERATION_NAME = 'gen_ai.operation.name'

If one of the predefined values applies, but specific system uses a different name it's RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.

GEN_AI_PROMPT

Deprecated, use Event API to report prompt contents.

Removed, no replacement at this time.

public mixed GEN_AI_PROMPT = 'gen_ai.prompt'

GEN_AI_REQUEST_FREQUENCY_PENALTY

The frequency penalty setting for the GenAI request.

public mixed GEN_AI_REQUEST_FREQUENCY_PENALTY = 'gen_ai.request.frequency_penalty'

GEN_AI_REQUEST_MAX_TOKENS

The maximum number of tokens the model generates for a request.

public mixed GEN_AI_REQUEST_MAX_TOKENS = 'gen_ai.request.max_tokens'

GEN_AI_REQUEST_MODEL

The name of the GenAI model a request is being made to.

public mixed GEN_AI_REQUEST_MODEL = 'gen_ai.request.model'

GEN_AI_REQUEST_PRESENCE_PENALTY

The presence penalty setting for the GenAI request.

public mixed GEN_AI_REQUEST_PRESENCE_PENALTY = 'gen_ai.request.presence_penalty'

GEN_AI_REQUEST_STOP_SEQUENCES

List of sequences that the model will use to stop generating further tokens.

public mixed GEN_AI_REQUEST_STOP_SEQUENCES = 'gen_ai.request.stop_sequences'

GEN_AI_REQUEST_TEMPERATURE

The temperature setting for the GenAI request.

public mixed GEN_AI_REQUEST_TEMPERATURE = 'gen_ai.request.temperature'

GEN_AI_REQUEST_TOP_K

The top_k sampling setting for the GenAI request.

public mixed GEN_AI_REQUEST_TOP_K = 'gen_ai.request.top_k'

GEN_AI_REQUEST_TOP_P

The top_p sampling setting for the GenAI request.

public mixed GEN_AI_REQUEST_TOP_P = 'gen_ai.request.top_p'

GEN_AI_RESPONSE_FINISH_REASONS

Array of reasons the model stopped generating tokens, corresponding to each generation received.

public mixed GEN_AI_RESPONSE_FINISH_REASONS = 'gen_ai.response.finish_reasons'

GEN_AI_RESPONSE_ID

The unique identifier for the completion.

public mixed GEN_AI_RESPONSE_ID = 'gen_ai.response.id'

GEN_AI_RESPONSE_MODEL

The name of the model that generated the response.

public mixed GEN_AI_RESPONSE_MODEL = 'gen_ai.response.model'

GEN_AI_SYSTEM

The Generative AI product as identified by the client or server instrumentation.

public mixed GEN_AI_SYSTEM = 'gen_ai.system'

The gen_ai.system describes a family of GenAI models with specific model identified by gen_ai.request.model and gen_ai.response.model attributes.

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 gen_ai.system is set to openai based on the instrumentation's best knowledge.

For custom model, a custom friendly name SHOULD be used. If none of these options apply, the gen_ai.system SHOULD be set to _OTHER.

GEN_AI_TOKEN_TYPE

The type of token being counted.

public mixed GEN_AI_TOKEN_TYPE = 'gen_ai.token.type'

GEN_AI_USAGE_COMPLETION_TOKENS

Deprecated, use `gen_ai.usage.output_tokens` instead.

Replaced by gen_ai.usage.output_tokens attribute.

public mixed GEN_AI_USAGE_COMPLETION_TOKENS = 'gen_ai.usage.completion_tokens'

GEN_AI_USAGE_INPUT_TOKENS

The number of tokens used in the GenAI input (prompt).

public mixed GEN_AI_USAGE_INPUT_TOKENS = 'gen_ai.usage.input_tokens'

GEN_AI_USAGE_OUTPUT_TOKENS

The number of tokens used in the GenAI response (completion).

public mixed GEN_AI_USAGE_OUTPUT_TOKENS = 'gen_ai.usage.output_tokens'

GEN_AI_USAGE_PROMPT_TOKENS

Deprecated, use `gen_ai.usage.input_tokens` instead.

Replaced by gen_ai.usage.input_tokens attribute.

public mixed GEN_AI_USAGE_PROMPT_TOKENS = 'gen_ai.usage.prompt_tokens'

GO_MEMORY_TYPE

The type of memory.

public mixed GO_MEMORY_TYPE = 'go.memory.type'

GRAPHQL_DOCUMENT

The GraphQL document being executed.

public mixed GRAPHQL_DOCUMENT = 'graphql.document'

The value may be sanitized to exclude sensitive information.

GRAPHQL_OPERATION_NAME

The name of the operation being executed.

public mixed GRAPHQL_OPERATION_NAME = 'graphql.operation.name'

GRAPHQL_OPERATION_TYPE

The type of the operation being executed.

public mixed GRAPHQL_OPERATION_TYPE = 'graphql.operation.type'

HEROKU_APP_ID

Unique identifier for the application

public mixed HEROKU_APP_ID = 'heroku.app.id'

HEROKU_RELEASE_COMMIT

Commit hash for the current release

public mixed HEROKU_RELEASE_COMMIT = 'heroku.release.commit'

HEROKU_RELEASE_CREATION_TIMESTAMP

Time and date the release was created

public mixed HEROKU_RELEASE_CREATION_TIMESTAMP = 'heroku.release.creation_timestamp'

HOST_ARCH

The CPU architecture the host system is running on.

public mixed HOST_ARCH = 'host.arch'

HOST_CPU_CACHE_L2_SIZE

The amount of level 2 memory cache available to the processor (in Bytes).

public mixed HOST_CPU_CACHE_L2_SIZE = 'host.cpu.cache.l2.size'

HOST_CPU_FAMILY

Family or generation of the CPU.

public mixed HOST_CPU_FAMILY = 'host.cpu.family'

HOST_CPU_MODEL_ID

Model identifier. It provides more granular information about the CPU, distinguishing it from other CPUs within the same family.

public mixed HOST_CPU_MODEL_ID = 'host.cpu.model.id'

HOST_CPU_MODEL_NAME

Model designation of the processor.

public mixed HOST_CPU_MODEL_NAME = 'host.cpu.model.name'

HOST_CPU_STEPPING

Stepping or core revisions.

public mixed HOST_CPU_STEPPING = 'host.cpu.stepping'

HOST_CPU_VENDOR_ID

Processor manufacturer identifier. A maximum 12-character string.

public mixed HOST_CPU_VENDOR_ID = 'host.cpu.vendor.id'

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.

HOST_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 `machine-id`. See the table below for the sources to use to determine the `machine-id` based on operating system.

public mixed HOST_ID = 'host.id'

HOST_IMAGE_ID

VM image ID or host OS image ID. For Cloud, this value is from the provider.

public mixed HOST_IMAGE_ID = 'host.image.id'

HOST_IMAGE_NAME

Name of the VM image or OS install the host was instantiated from.

public mixed HOST_IMAGE_NAME = 'host.image.name'

HOST_IMAGE_VERSION

The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).

public mixed HOST_IMAGE_VERSION = 'host.image.version'

HOST_IP

Available IP addresses of the host, excluding loopback interfaces.

public mixed HOST_IP = 'host.ip'

IPv4 Addresses MUST be specified in dotted-quad notation. IPv6 addresses MUST be specified in the RFC 5952 format.

HOST_MAC

Available MAC addresses of the host, excluding loopback interfaces.

public mixed HOST_MAC = 'host.mac'

MAC Addresses MUST be represented in IEEE RA hexadecimal form: as hyphen-separated octets in uppercase hexadecimal form from most to least significant.

HOST_NAME

Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.

public mixed HOST_NAME = 'host.name'

HOST_TYPE

Type of host. For Cloud, this must be the machine type.

public mixed HOST_TYPE = 'host.type'

HTTP_CLIENT_IP

Deprecated, use `client.address` instead.

Replaced by client.address.

public mixed HTTP_CLIENT_IP = 'http.client_ip'

HTTP_CONNECTION_STATE

State of the HTTP connection in the HTTP connection pool.

public mixed HTTP_CONNECTION_STATE = 'http.connection.state'

HTTP_FLAVOR

Deprecated, use `network.protocol.name` instead.

Replaced by network.protocol.name.

public mixed HTTP_FLAVOR = 'http.flavor'

HTTP_HOST

Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.

Replaced by one of server.address, client.address or http.request.header.host, depending on the usage.

public mixed HTTP_HOST = 'http.host'

HTTP_METHOD

Deprecated, use `http.request.method` instead.

Replaced by http.request.method.

public mixed HTTP_METHOD = 'http.method'

HTTP_REQUEST_BODY_SIZE

The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.

public mixed HTTP_REQUEST_BODY_SIZE = 'http.request.body.size'

HTTP_REQUEST_CONTENT_LENGTH

Deprecated, use `http.request.header.<key>` instead.

Replaced by http.request.header.<key>.

public mixed HTTP_REQUEST_CONTENT_LENGTH = 'http.request_content_length'

HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED

Deprecated, use `http.request.body.size` instead.

Replaced by http.request.body.size.

public mixed HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED = 'http.request_content_length_uncompressed'

HTTP_REQUEST_HEADER

HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.

public mixed HTTP_REQUEST_HEADER = 'http.request.header'

Instrumentations SHOULD require an explicit configuration of which headers are to be captured. Including all request headers can be a security risk - explicit configuration helps avoid leaking sensitive information. The User-Agent header is already captured in the user_agent.original attribute. Users MAY explicitly configure instrumentations to capture them even though it is not recommended. The attribute value MUST consist of either multiple header values as an array of strings or a single-item array containing a possibly comma-concatenated string, depending on the way the HTTP library provides access to headers.

HTTP_REQUEST_METHOD

HTTP request method.

public mixed HTTP_REQUEST_METHOD = 'http.request.method'

HTTP request method value SHOULD be "known" to the instrumentation. By default, this convention defines "known" methods as the ones listed in RFC9110 and the PATCH method defined in RFC5789.

If the HTTP request method is not known to instrumentation, it MUST set the http.request.method attribute to _OTHER.

If the HTTP instrumentation could end up converting valid HTTP request methods to _OTHER, then it MUST provide a way to override the list of known HTTP methods. If this override is done via environment variable, then the environment variable MUST be named OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods (this list MUST be a full override of the default known method, it is not a list of known methods in addition to the defaults).

HTTP method names are case-sensitive and http.request.method attribute value MUST match a known HTTP method name exactly. Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, SHOULD populate a canonical equivalent. Tracing instrumentations that do so, MUST also set http.request.method_original to the original value.

HTTP_REQUEST_METHOD_ORIGINAL

Original HTTP method sent by the client in the request line.

public mixed HTTP_REQUEST_METHOD_ORIGINAL = 'http.request.method_original'

HTTP_REQUEST_RESEND_COUNT

The ordinal number of request resending attempt (for any reason, including redirects).

public mixed HTTP_REQUEST_RESEND_COUNT = 'http.request.resend_count'

The resend count SHOULD be updated each time an HTTP request gets resent by the client, regardless of what was the cause of the resending (e.g. redirection, authorization failure, 503 Server Unavailable, network issues, or any other).

HTTP_REQUEST_SIZE

The total size of the request in bytes. This should be the total number of bytes sent over the wire, including the request line (HTTP/1.1), framing (HTTP/2 and HTTP/3), headers, and request body if any.

public mixed HTTP_REQUEST_SIZE = 'http.request.size'

HTTP_RESPONSE_BODY_SIZE

The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.

public mixed HTTP_RESPONSE_BODY_SIZE = 'http.response.body.size'

HTTP_RESPONSE_CONTENT_LENGTH

Deprecated, use `http.response.header.<key>` instead.

Replaced by http.response.header.<key>.

public mixed HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length'

HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED

Deprecated, use `http.response.body.size` instead.

Replace by http.response.body.size.

public mixed HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED = 'http.response_content_length_uncompressed'

HTTP_RESPONSE_HEADER

HTTP response headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values.

public mixed HTTP_RESPONSE_HEADER = 'http.response.header'

Instrumentations SHOULD require an explicit configuration of which headers are to be captured. Including all response headers can be a security risk - explicit configuration helps avoid leaking sensitive information. Users MAY explicitly configure instrumentations to capture them even though it is not recommended. The attribute value MUST consist of either multiple header values as an array of strings or a single-item array containing a possibly comma-concatenated string, depending on the way the HTTP library provides access to headers.

HTTP_RESPONSE_SIZE

The total size of the response in bytes. This should be the total number of bytes sent over the wire, including the status line (HTTP/1.1), framing (HTTP/2 and HTTP/3), headers, and response body and trailers if any.

public mixed HTTP_RESPONSE_SIZE = 'http.response.size'

HTTP_RESPONSE_STATUS_CODE

[HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).

public mixed HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code'

HTTP_ROUTE

The matched route, that is, the path template in the format used by the respective server framework.

public mixed HTTP_ROUTE = 'http.route'

MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it. SHOULD include the application root if there is one.

HTTP_SCHEME

Deprecated, use `url.scheme` instead.

Replaced by url.scheme instead.

public mixed HTTP_SCHEME = 'http.scheme'

HTTP_SERVER_NAME

Deprecated, use `server.address` instead.

Replaced by server.address.

public mixed HTTP_SERVER_NAME = 'http.server_name'

HTTP_STATUS_CODE

Deprecated, use `http.response.status_code` instead.

Replaced by http.response.status_code.

public mixed HTTP_STATUS_CODE = 'http.status_code'

HTTP_TARGET

Deprecated, use `url.path` and `url.query` instead.

Split to url.path and `url.query.

public mixed HTTP_TARGET = 'http.target'

HTTP_URL

Deprecated, use `url.full` instead.

Replaced by url.full.

public mixed HTTP_URL = 'http.url'

HTTP_USER_AGENT

Deprecated, use `user_agent.original` instead.

Replaced by user_agent.original.

public mixed HTTP_USER_AGENT = 'http.user_agent'

IOS_STATE

Deprecated use the `device.app.lifecycle` event definition including `ios.state` as a payload field instead.

Moved to a payload field of device.app.lifecycle.

public mixed IOS_STATE = 'ios.state'

The iOS lifecycle states are defined in the UIApplicationDelegate documentation, and from which the OS terminology column values are derived.

JVM_MEMORY_TYPE

The type of memory.

public mixed JVM_MEMORY_TYPE = 'jvm.memory.type'

JVM_THREAD_DAEMON

Whether the thread is daemon or not.

public mixed JVM_THREAD_DAEMON = 'jvm.thread.daemon'

JVM_THREAD_STATE

State of the thread.

public mixed JVM_THREAD_STATE = 'jvm.thread.state'

K8S_CLUSTER_NAME

The name of the cluster.

public mixed K8S_CLUSTER_NAME = 'k8s.cluster.name'

K8S_CLUSTER_UID

A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace.

public mixed K8S_CLUSTER_UID = 'k8s.cluster.uid'

K8s doesn't have support for obtaining a cluster ID. If this is ever added, we will recommend collecting the k8s.cluster.uid through the official APIs. In the meantime, we are able to use the uid of the kube-system namespace as a proxy for cluster ID. Read on for the rationale.

Every object created in a K8s cluster is assigned a distinct UID. The kube-system namespace is used by Kubernetes itself and will exist for the lifetime of the cluster. Using the uid of the kube-system namespace is a reasonable proxy for the K8s ClusterID as it will only change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are UUIDs as standardized by ISO/IEC 9834-8 and ITU-T X.667. Which states:

If generated according to one of the mechanisms defined in Rec. ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be different from all other UUIDs generated before 3603 A.D., or is extremely likely to be different (depending on the mechanism chosen).

Therefore, UIDs between clusters should be extremely unlikely to conflict.

K8S_CONTAINER_NAME

The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (`container.name`).

public mixed K8S_CONTAINER_NAME = 'k8s.container.name'

K8S_CONTAINER_RESTART_COUNT

Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.

public mixed K8S_CONTAINER_RESTART_COUNT = 'k8s.container.restart_count'

K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON

Last terminated reason of the Container.

public mixed K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON = 'k8s.container.status.last_terminated_reason'

K8S_CRONJOB_NAME

The name of the CronJob.

public mixed K8S_CRONJOB_NAME = 'k8s.cronjob.name'

K8S_CRONJOB_UID

The UID of the CronJob.

public mixed K8S_CRONJOB_UID = 'k8s.cronjob.uid'

K8S_DAEMONSET_NAME

The name of the DaemonSet.

public mixed K8S_DAEMONSET_NAME = 'k8s.daemonset.name'

K8S_DAEMONSET_UID

The UID of the DaemonSet.

public mixed K8S_DAEMONSET_UID = 'k8s.daemonset.uid'

K8S_DEPLOYMENT_NAME

The name of the Deployment.

public mixed K8S_DEPLOYMENT_NAME = 'k8s.deployment.name'

K8S_DEPLOYMENT_UID

The UID of the Deployment.

public mixed K8S_DEPLOYMENT_UID = 'k8s.deployment.uid'

K8S_JOB_NAME

The name of the Job.

public mixed K8S_JOB_NAME = 'k8s.job.name'

K8S_JOB_UID

The UID of the Job.

public mixed K8S_JOB_UID = 'k8s.job.uid'

K8S_NAMESPACE_NAME

The name of the namespace that the pod is running in.

public mixed K8S_NAMESPACE_NAME = 'k8s.namespace.name'

K8S_NODE_NAME

The name of the Node.

public mixed K8S_NODE_NAME = 'k8s.node.name'

K8S_NODE_UID

The UID of the Node.

public mixed K8S_NODE_UID = 'k8s.node.uid'

K8S_POD_ANNOTATION

The annotation key-value pairs placed on the Pod, the `<key>` being the annotation name, the value being the annotation value.

public mixed K8S_POD_ANNOTATION = 'k8s.pod.annotation'

K8S_POD_LABEL

The label key-value pairs placed on the Pod, the `<key>` being the label name, the value being the label value.

public mixed K8S_POD_LABEL = 'k8s.pod.label'

K8S_POD_LABELS

Deprecated, use `k8s.pod.label` instead.

Replaced by k8s.pod.label.

public mixed K8S_POD_LABELS = 'k8s.pod.labels'

K8S_POD_NAME

The name of the Pod.

public mixed K8S_POD_NAME = 'k8s.pod.name'

K8S_POD_UID

The UID of the Pod.

public mixed K8S_POD_UID = 'k8s.pod.uid'

K8S_REPLICASET_NAME

The name of the ReplicaSet.

public mixed K8S_REPLICASET_NAME = 'k8s.replicaset.name'

K8S_REPLICASET_UID

The UID of the ReplicaSet.

public mixed K8S_REPLICASET_UID = 'k8s.replicaset.uid'

K8S_STATEFULSET_NAME

The name of the StatefulSet.

public mixed K8S_STATEFULSET_NAME = 'k8s.statefulset.name'

K8S_STATEFULSET_UID

The UID of the StatefulSet.

public mixed K8S_STATEFULSET_UID = 'k8s.statefulset.uid'

K8S_VOLUME_NAME

The name of the K8s volume.

public mixed K8S_VOLUME_NAME = 'k8s.volume.name'

K8S_VOLUME_TYPE

The type of the K8s volume.

public mixed K8S_VOLUME_TYPE = 'k8s.volume.type'

LINUX_MEMORY_SLAB_STATE

The Linux Slab memory state

public mixed LINUX_MEMORY_SLAB_STATE = 'linux.memory.slab.state'

LOG_FILE_NAME

The basename of the file.

public mixed LOG_FILE_NAME = 'log.file.name'

LOG_FILE_NAME_RESOLVED

The basename of the file, with symlinks resolved.

public mixed LOG_FILE_NAME_RESOLVED = 'log.file.name_resolved'

LOG_FILE_PATH

The full path to the file.

public mixed LOG_FILE_PATH = 'log.file.path'

LOG_FILE_PATH_RESOLVED

The full path to the file, with symlinks resolved.

public mixed LOG_FILE_PATH_RESOLVED = 'log.file.path_resolved'

LOG_IOSTREAM

The stream associated with the log. See below for a list of well-known values.

public mixed LOG_IOSTREAM = 'log.iostream'

LOG_RECORD_ORIGINAL

The complete original Log Record.

public mixed LOG_RECORD_ORIGINAL = 'log.record.original'

This value MAY be added when processing a Log Record which was originally transmitted as a string or equivalent data type AND the Body field of the Log Record does not contain the same value. (e.g. a syslog or a log record read from a file.)

LOG_RECORD_UID

A unique identifier for the Log Record.

public mixed LOG_RECORD_UID = 'log.record.uid'

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.

MESSAGE_COMPRESSED_SIZE

Deprecated, use `rpc.message.compressed_size` instead.

Replaced by rpc.message.compressed_size.

public mixed MESSAGE_COMPRESSED_SIZE = 'message.compressed_size'

MESSAGE_ID

Deprecated, use `rpc.message.id` instead.

Replaced by rpc.message.id.

public mixed MESSAGE_ID = 'message.id'

MESSAGE_TYPE

Deprecated, use `rpc.message.type` instead.

Replaced by rpc.message.type.

public mixed MESSAGE_TYPE = 'message.type'

MESSAGE_UNCOMPRESSED_SIZE

Deprecated, use `rpc.message.uncompressed_size` instead.

Replaced by rpc.message.uncompressed_size.

public mixed MESSAGE_UNCOMPRESSED_SIZE = 'message.uncompressed_size'

MESSAGING_BATCH_MESSAGE_COUNT

The number of messages sent, received, or processed in the scope of the batching operation.

public mixed MESSAGING_BATCH_MESSAGE_COUNT = 'messaging.batch.message_count'

Instrumentations SHOULD NOT set messaging.batch.message_count on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations SHOULD use messaging.batch.message_count for batching APIs and SHOULD NOT use it for single-message APIs.

MESSAGING_CLIENT_ID

A unique identifier for the client that consumes or produces a message.

public mixed MESSAGING_CLIENT_ID = 'messaging.client.id'

MESSAGING_CONSUMER_GROUP_NAME

The name of the consumer group with which a consumer is associated.

public mixed MESSAGING_CONSUMER_GROUP_NAME = 'messaging.consumer.group.name'

Semantic conventions for individual messaging systems SHOULD document whether messaging.consumer.group.name is applicable and what it means in the context of that system.

MESSAGING_DESTINATION_ANONYMOUS

A boolean that is true if the message destination is anonymous (could be unnamed or have auto-generated name).

public mixed MESSAGING_DESTINATION_ANONYMOUS = 'messaging.destination.anonymous'

MESSAGING_DESTINATION_NAME

The message destination name Destination name SHOULD uniquely identify a specific queue, topic or other entity within the broker. If the broker doesn't have such notion, the destination name SHOULD uniquely identify the broker.

public mixed MESSAGING_DESTINATION_NAME = 'messaging.destination.name'

MESSAGING_DESTINATION_PARTITION_ID

The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.

public mixed MESSAGING_DESTINATION_PARTITION_ID = 'messaging.destination.partition.id'

MESSAGING_DESTINATION_PUBLISH_ANONYMOUS

Deprecated, no replacement at this time.

No replacement at this time.

public mixed MESSAGING_DESTINATION_PUBLISH_ANONYMOUS = 'messaging.destination_publish.anonymous'

MESSAGING_DESTINATION_PUBLISH_NAME

Deprecated, no replacement at this time.

No replacement at this time.

public mixed MESSAGING_DESTINATION_PUBLISH_NAME = 'messaging.destination_publish.name'

MESSAGING_DESTINATION_SUBSCRIPTION_NAME

The name of the destination subscription from which a message is consumed.

public mixed MESSAGING_DESTINATION_SUBSCRIPTION_NAME = 'messaging.destination.subscription.name'

Semantic conventions for individual messaging systems SHOULD document whether messaging.destination.subscription.name is applicable and what it means in the context of that system.

MESSAGING_DESTINATION_TEMPLATE

Low cardinality representation of the messaging destination name 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.

public mixed MESSAGING_DESTINATION_TEMPLATE = 'messaging.destination.template'

MESSAGING_DESTINATION_TEMPORARY

A boolean that is true if the message destination is temporary and might not exist anymore after messages are processed.

public mixed MESSAGING_DESTINATION_TEMPORARY = 'messaging.destination.temporary'

MESSAGING_EVENTHUBS_CONSUMER_GROUP

Deprecated, use `messaging.consumer.group.name` instead.

Replaced by messaging.consumer.group.name.

public mixed MESSAGING_EVENTHUBS_CONSUMER_GROUP = 'messaging.eventhubs.consumer.group'

MESSAGING_EVENTHUBS_MESSAGE_ENQUEUED_TIME

The UTC epoch seconds at which the message has been accepted and stored in the entity.

public mixed MESSAGING_EVENTHUBS_MESSAGE_ENQUEUED_TIME = 'messaging.eventhubs.message.enqueued_time'

MESSAGING_GCP_PUBSUB_MESSAGE_ACK_DEADLINE

The ack deadline in seconds set for the modify ack deadline request.

public mixed MESSAGING_GCP_PUBSUB_MESSAGE_ACK_DEADLINE = 'messaging.gcp_pubsub.message.ack_deadline'

MESSAGING_GCP_PUBSUB_MESSAGE_ACK_ID

The ack id for a given message.

public mixed MESSAGING_GCP_PUBSUB_MESSAGE_ACK_ID = 'messaging.gcp_pubsub.message.ack_id'

MESSAGING_GCP_PUBSUB_MESSAGE_DELIVERY_ATTEMPT

The delivery attempt for a given message.

public mixed MESSAGING_GCP_PUBSUB_MESSAGE_DELIVERY_ATTEMPT = 'messaging.gcp_pubsub.message.delivery_attempt'

MESSAGING_GCP_PUBSUB_MESSAGE_ORDERING_KEY

The ordering key for a given message. If the attribute is not present, the message does not have an ordering key.

public mixed MESSAGING_GCP_PUBSUB_MESSAGE_ORDERING_KEY = 'messaging.gcp_pubsub.message.ordering_key'

MESSAGING_KAFKA_CONSUMER_GROUP

Deprecated, use `messaging.consumer.group.name` instead.

Replaced by messaging.consumer.group.name.

public mixed MESSAGING_KAFKA_CONSUMER_GROUP = 'messaging.kafka.consumer.group'

MESSAGING_KAFKA_DESTINATION_PARTITION

Deprecated, use `messaging.destination.partition.id` instead.

Replaced by messaging.destination.partition.id.

public mixed MESSAGING_KAFKA_DESTINATION_PARTITION = 'messaging.kafka.destination.partition'

MESSAGING_KAFKA_MESSAGE_KEY

Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.

public mixed MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message.key'

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.

MESSAGING_KAFKA_MESSAGE_OFFSET

Deprecated, use `messaging.kafka.offset` instead.

Replaced by messaging.kafka.offset.

public mixed MESSAGING_KAFKA_MESSAGE_OFFSET = 'messaging.kafka.message.offset'

MESSAGING_KAFKA_MESSAGE_TOMBSTONE

A boolean that is true if the message is a tombstone.

public mixed MESSAGING_KAFKA_MESSAGE_TOMBSTONE = 'messaging.kafka.message.tombstone'

MESSAGING_KAFKA_OFFSET

The offset of a record in the corresponding Kafka partition.

public mixed MESSAGING_KAFKA_OFFSET = 'messaging.kafka.offset'

MESSAGING_MESSAGE_BODY_SIZE

The size of the message body in bytes.

public mixed MESSAGING_MESSAGE_BODY_SIZE = 'messaging.message.body.size'

This can refer to both the compressed or uncompressed body size. If both sizes are known, the uncompressed body size should be used.

MESSAGING_MESSAGE_CONVERSATION_ID

The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".

public mixed MESSAGING_MESSAGE_CONVERSATION_ID = 'messaging.message.conversation_id'

MESSAGING_MESSAGE_ENVELOPE_SIZE

The size of the message body and metadata in bytes.

public mixed MESSAGING_MESSAGE_ENVELOPE_SIZE = 'messaging.message.envelope.size'

This can refer to both the compressed or uncompressed size. If both sizes are known, the uncompressed size should be used.

MESSAGING_MESSAGE_ID

A value used by the messaging system as an identifier for the message, represented as a string.

public mixed MESSAGING_MESSAGE_ID = 'messaging.message.id'

MESSAGING_OPERATION

Deprecated, use `messaging.operation.type` instead.

Replaced by messaging.operation.type.

public mixed MESSAGING_OPERATION = 'messaging.operation'

MESSAGING_OPERATION_NAME

The system-specific name of the messaging operation.

public mixed MESSAGING_OPERATION_NAME = 'messaging.operation.name'

MESSAGING_OPERATION_TYPE

A string identifying the type of the messaging operation.

public mixed MESSAGING_OPERATION_TYPE = 'messaging.operation.type'

If a custom value is used, it MUST be of low cardinality.

MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY

RabbitMQ message routing key.

public mixed MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY = 'messaging.rabbitmq.destination.routing_key'

MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG

RabbitMQ message delivery tag

public mixed MESSAGING_RABBITMQ_MESSAGE_DELIVERY_TAG = 'messaging.rabbitmq.message.delivery_tag'

MESSAGING_ROCKETMQ_CLIENT_GROUP

Deprecated, use `messaging.consumer.group.name` instead.

Replaced by messaging.consumer.group.name on the consumer spans. No replacement for producer spans.

public mixed MESSAGING_ROCKETMQ_CLIENT_GROUP = 'messaging.rocketmq.client_group'

MESSAGING_ROCKETMQ_CONSUMPTION_MODEL

Model of message consumption. This only applies to consumer spans.

public mixed MESSAGING_ROCKETMQ_CONSUMPTION_MODEL = 'messaging.rocketmq.consumption_model'

MESSAGING_ROCKETMQ_MESSAGE_DELAY_TIME_LEVEL

The delay time level for delay message, which determines the message delay time.

public mixed MESSAGING_ROCKETMQ_MESSAGE_DELAY_TIME_LEVEL = 'messaging.rocketmq.message.delay_time_level'

MESSAGING_ROCKETMQ_MESSAGE_DELIVERY_TIMESTAMP

The timestamp in milliseconds that the delay message is expected to be delivered to consumer.

public mixed MESSAGING_ROCKETMQ_MESSAGE_DELIVERY_TIMESTAMP = 'messaging.rocketmq.message.delivery_timestamp'

MESSAGING_ROCKETMQ_MESSAGE_GROUP

It is essential for FIFO message. Messages that belong to the same message group are always processed one by one within the same consumer group.

public mixed MESSAGING_ROCKETMQ_MESSAGE_GROUP = 'messaging.rocketmq.message.group'

MESSAGING_ROCKETMQ_MESSAGE_KEYS

Key(s) of message, another way to mark message besides message id.

public mixed MESSAGING_ROCKETMQ_MESSAGE_KEYS = 'messaging.rocketmq.message.keys'

MESSAGING_ROCKETMQ_MESSAGE_TAG

The secondary classifier of message besides topic.

public mixed MESSAGING_ROCKETMQ_MESSAGE_TAG = 'messaging.rocketmq.message.tag'

MESSAGING_ROCKETMQ_MESSAGE_TYPE

Type of message.

public mixed MESSAGING_ROCKETMQ_MESSAGE_TYPE = 'messaging.rocketmq.message.type'

MESSAGING_ROCKETMQ_NAMESPACE

Namespace of RocketMQ resources, resources in different namespaces are individual.

public mixed MESSAGING_ROCKETMQ_NAMESPACE = 'messaging.rocketmq.namespace'

MESSAGING_SERVICEBUS_DESTINATION_SUBSCRIPTION_NAME

Deprecated, use `messaging.destination.subscription.name` instead.

Replaced by messaging.destination.subscription.name.

public mixed MESSAGING_SERVICEBUS_DESTINATION_SUBSCRIPTION_NAME = 'messaging.servicebus.destination.subscription_name'

MESSAGING_SERVICEBUS_DISPOSITION_STATUS

Describes the [settlement type](https://learn.microsoft.com/azure/service-bus-messaging/message-transfers-locks-settlement#peeklock).

public mixed MESSAGING_SERVICEBUS_DISPOSITION_STATUS = 'messaging.servicebus.disposition_status'

MESSAGING_SERVICEBUS_MESSAGE_DELIVERY_COUNT

Number of deliveries that have been attempted for this message.

public mixed MESSAGING_SERVICEBUS_MESSAGE_DELIVERY_COUNT = 'messaging.servicebus.message.delivery_count'

MESSAGING_SERVICEBUS_MESSAGE_ENQUEUED_TIME

The UTC epoch seconds at which the message has been accepted and stored in the entity.

public mixed MESSAGING_SERVICEBUS_MESSAGE_ENQUEUED_TIME = 'messaging.servicebus.message.enqueued_time'

MESSAGING_SYSTEM

The messaging system as identified by the client instrumentation.

public mixed MESSAGING_SYSTEM = 'messaging.system'

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 messaging.system is set to kafka based on the instrumentation's best knowledge.

NET_HOST_IP

Deprecated, use `network.local.address`.

Replaced by network.local.address.

public mixed NET_HOST_IP = 'net.host.ip'

NET_HOST_NAME

Deprecated, use `server.address`.

Replaced by server.address.

public mixed NET_HOST_NAME = 'net.host.name'

NET_HOST_PORT

Deprecated, use `server.port`.

Replaced by server.port.

public mixed NET_HOST_PORT = 'net.host.port'

NET_PEER_IP

Deprecated, use `network.peer.address`.

Replaced by network.peer.address.

public mixed NET_PEER_IP = 'net.peer.ip'

NET_PEER_NAME

Deprecated, use `server.address` on client spans and `client.address` on server spans.

Replaced by server.address on client spans and client.address on server spans.

public mixed NET_PEER_NAME = 'net.peer.name'

NET_PEER_PORT

Deprecated, use `server.port` on client spans and `client.port` on server spans.

Replaced by server.port on client spans and client.port on server spans.

public mixed NET_PEER_PORT = 'net.peer.port'

NET_PROTOCOL_NAME

Deprecated, use `network.protocol.name`.

Replaced by network.protocol.name.

public mixed NET_PROTOCOL_NAME = 'net.protocol.name'

NET_PROTOCOL_VERSION

Deprecated, use `network.protocol.version`.

Replaced by network.protocol.version.

public mixed NET_PROTOCOL_VERSION = 'net.protocol.version'

NET_SOCK_FAMILY

Deprecated, use `network.transport` and `network.type`.

Split to network.transport and network.type.

public mixed NET_SOCK_FAMILY = 'net.sock.family'

NET_SOCK_HOST_ADDR

Deprecated, use `network.local.address`.

Replaced by network.local.address.

public mixed NET_SOCK_HOST_ADDR = 'net.sock.host.addr'

NET_SOCK_HOST_PORT

Deprecated, use `network.local.port`.

Replaced by network.local.port.

public mixed NET_SOCK_HOST_PORT = 'net.sock.host.port'

NET_SOCK_PEER_ADDR

Deprecated, use `network.peer.address`.

Replaced by network.peer.address.

public mixed NET_SOCK_PEER_ADDR = 'net.sock.peer.addr'

NET_SOCK_PEER_NAME

Deprecated, no replacement at this time.

Removed.

public mixed NET_SOCK_PEER_NAME = 'net.sock.peer.name'

NET_SOCK_PEER_PORT

Deprecated, use `network.peer.port`.

Replaced by network.peer.port.

public mixed NET_SOCK_PEER_PORT = 'net.sock.peer.port'

NET_TRANSPORT

Deprecated, use `network.transport`.

Replaced by network.transport.

public mixed NET_TRANSPORT = 'net.transport'

NETWORK_CARRIER_ICC

The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.

public mixed NETWORK_CARRIER_ICC = 'network.carrier.icc'

NETWORK_CARRIER_MCC

The mobile carrier country code.

public mixed NETWORK_CARRIER_MCC = 'network.carrier.mcc'

NETWORK_CARRIER_MNC

The mobile carrier network code.

public mixed NETWORK_CARRIER_MNC = 'network.carrier.mnc'

NETWORK_CARRIER_NAME

The name of the mobile carrier.

public mixed NETWORK_CARRIER_NAME = 'network.carrier.name'

NETWORK_CONNECTION_SUBTYPE

This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.

public mixed NETWORK_CONNECTION_SUBTYPE = 'network.connection.subtype'

NETWORK_CONNECTION_TYPE

The internet connection type.

public mixed NETWORK_CONNECTION_TYPE = 'network.connection.type'

NETWORK_IO_DIRECTION

The network IO operation direction.

public mixed NETWORK_IO_DIRECTION = 'network.io.direction'

NETWORK_LOCAL_ADDRESS

Local address of the network connection - IP address or Unix domain socket name.

public mixed NETWORK_LOCAL_ADDRESS = 'network.local.address'

NETWORK_LOCAL_PORT

Local port number of the network connection.

public mixed NETWORK_LOCAL_PORT = 'network.local.port'

NETWORK_PEER_ADDRESS

Peer address of the network connection - IP address or Unix domain socket name.

public mixed NETWORK_PEER_ADDRESS = 'network.peer.address'

NETWORK_PEER_PORT

Peer port number of the network connection.

public mixed NETWORK_PEER_PORT = 'network.peer.port'

NETWORK_PROTOCOL_NAME

[OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent.

public mixed NETWORK_PROTOCOL_NAME = 'network.protocol.name'

The value SHOULD be normalized to lowercase.

NETWORK_PROTOCOL_VERSION

The actual version of the protocol used for network communication.

public mixed NETWORK_PROTOCOL_VERSION = 'network.protocol.version'

If protocol version is subject to negotiation (for example using ALPN), this attribute SHOULD be set to the negotiated version. If the actual protocol version is not known, this attribute SHOULD NOT be set.

NETWORK_TRANSPORT

[OSI transport layer](https://osi-model.com/transport-layer/) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).

public mixed NETWORK_TRANSPORT = 'network.transport'

The value SHOULD be normalized to lowercase.

Consider always setting the transport when setting a port number, since a port number is ambiguous without knowing the transport. For example different processes could be listening on TCP port 12345 and UDP port 12345.

NETWORK_TYPE

[OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent.

public mixed NETWORK_TYPE = 'network.type'

The value SHOULD be normalized to lowercase.

OPENTRACING_REF_TYPE

Parent-child Reference type The causal relationship between a child Span and a parent Span.

public mixed OPENTRACING_REF_TYPE = 'opentracing.ref_type'

OS_BUILD_ID

Unique identifier for a particular build or compilation of the operating system.

public mixed OS_BUILD_ID = 'os.build_id'

OS_DESCRIPTION

Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.

public mixed OS_DESCRIPTION = 'os.description'

OS_NAME

Human readable operating system name.

public mixed OS_NAME = 'os.name'

OS_TYPE

The operating system type.

public mixed OS_TYPE = 'os.type'

OS_VERSION

The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).

public mixed OS_VERSION = 'os.version'

OTEL_LIBRARY_NAME

Deprecated. Use the `otel.scope.name` attribute

Use the otel.scope.name attribute.

public mixed OTEL_LIBRARY_NAME = 'otel.library.name'

OTEL_LIBRARY_VERSION

Deprecated. Use the `otel.scope.version` attribute.

Use the otel.scope.version attribute.

public mixed OTEL_LIBRARY_VERSION = 'otel.library.version'

OTEL_SCOPE_NAME

The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).

public mixed OTEL_SCOPE_NAME = 'otel.scope.name'

OTEL_SCOPE_VERSION

The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).

public mixed OTEL_SCOPE_VERSION = 'otel.scope.version'

OTEL_STATUS_CODE

Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET.

public mixed OTEL_STATUS_CODE = 'otel.status_code'

OTEL_STATUS_DESCRIPTION

Description of the Status if it has a value, otherwise not set.

public mixed OTEL_STATUS_DESCRIPTION = 'otel.status_description'

PEER_SERVICE

The [`service.name`](/docs/resource/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.

public mixed PEER_SERVICE = 'peer.service'

POOL_NAME

Deprecated, use `db.client.connection.pool.name` instead.

Replaced by db.client.connection.pool.name.

public mixed POOL_NAME = 'pool.name'

PROCESS_ARGS_COUNT

Length of the process.command_args array

public mixed PROCESS_ARGS_COUNT = 'process.args_count'

This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity.

PROCESS_COMMAND

The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.

public mixed PROCESS_COMMAND = 'process.command'

PROCESS_COMMAND_ARGS

All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.

public mixed PROCESS_COMMAND_ARGS = 'process.command_args'

PROCESS_COMMAND_LINE

The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.

public mixed PROCESS_COMMAND_LINE = 'process.command_line'

PROCESS_CONTEXT_SWITCH_TYPE

Specifies whether the context switches for this data point were voluntary or involuntary.

public mixed PROCESS_CONTEXT_SWITCH_TYPE = 'process.context_switch_type'

PROCESS_CPU_STATE

Deprecated, use `cpu.mode` instead.

Replaced by cpu.mode

public mixed PROCESS_CPU_STATE = 'process.cpu.state'

PROCESS_CREATION_TIME

The date and time the process was created, in ISO 8601 format.

public mixed PROCESS_CREATION_TIME = 'process.creation.time'

PROCESS_EXECUTABLE_BUILD_ID_GNU

The GNU build ID as found in the `.note.gnu.build-id` ELF section (hex string).

public mixed PROCESS_EXECUTABLE_BUILD_ID_GNU = 'process.executable.build_id.gnu'

PROCESS_EXECUTABLE_BUILD_ID_GO

The Go build ID as retrieved by `go tool buildid <go executable>`.

public mixed PROCESS_EXECUTABLE_BUILD_ID_GO = 'process.executable.build_id.go'

PROCESS_EXECUTABLE_BUILD_ID_PROFILING

Profiling specific build ID for executables. See the OTel specification for Profiles for more information.

public mixed PROCESS_EXECUTABLE_BUILD_ID_PROFILING = 'process.executable.build_id.profiling'

PROCESS_EXECUTABLE_NAME

The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.

public mixed PROCESS_EXECUTABLE_NAME = 'process.executable.name'

PROCESS_EXECUTABLE_PATH

The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.

public mixed PROCESS_EXECUTABLE_PATH = 'process.executable.path'

PROCESS_EXIT_CODE

The exit code of the process.

public mixed PROCESS_EXIT_CODE = 'process.exit.code'

PROCESS_EXIT_TIME

The date and time the process exited, in ISO 8601 format.

public mixed PROCESS_EXIT_TIME = 'process.exit.time'

PROCESS_GROUP_LEADER_PID

The PID of the process's group leader. This is also the process group ID (PGID) of the process.

public mixed PROCESS_GROUP_LEADER_PID = 'process.group_leader.pid'

PROCESS_INTERACTIVE

Whether the process is connected to an interactive shell.

public mixed PROCESS_INTERACTIVE = 'process.interactive'

PROCESS_OWNER

The username of the user that owns the process.

public mixed PROCESS_OWNER = 'process.owner'

PROCESS_PAGING_FAULT_TYPE

The type of page fault for this data point. Type `major` is for major/hard page faults, and `minor` is for minor/soft page faults.

public mixed PROCESS_PAGING_FAULT_TYPE = 'process.paging.fault_type'

PROCESS_PARENT_PID

Parent Process identifier (PPID).

public mixed PROCESS_PARENT_PID = 'process.parent_pid'

PROCESS_PID

Process identifier (PID).

public mixed PROCESS_PID = 'process.pid'

PROCESS_REAL_USER_ID

The real user ID (RUID) of the process.

public mixed PROCESS_REAL_USER_ID = 'process.real_user.id'

PROCESS_REAL_USER_NAME

The username of the real user of the process.

public mixed PROCESS_REAL_USER_NAME = 'process.real_user.name'

PROCESS_RUNTIME_DESCRIPTION

An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.

public mixed PROCESS_RUNTIME_DESCRIPTION = 'process.runtime.description'

PROCESS_RUNTIME_NAME

The name of the runtime of this process.

public mixed PROCESS_RUNTIME_NAME = 'process.runtime.name'

PROCESS_RUNTIME_VERSION

The version of the runtime of this process, as returned by the runtime without modification.

public mixed PROCESS_RUNTIME_VERSION = 'process.runtime.version'

PROCESS_SAVED_USER_ID

The saved user ID (SUID) of the process.

public mixed PROCESS_SAVED_USER_ID = 'process.saved_user.id'

PROCESS_SAVED_USER_NAME

The username of the saved user.

public mixed PROCESS_SAVED_USER_NAME = 'process.saved_user.name'

PROCESS_SESSION_LEADER_PID

The PID of the process's session leader. This is also the session ID (SID) of the process.

public mixed PROCESS_SESSION_LEADER_PID = 'process.session_leader.pid'

PROCESS_TITLE

Process title (proctitle)

public mixed PROCESS_TITLE = 'process.title'

In many Unix-like systems, process title (proctitle), is the string that represents the name or command line of a running process, displayed by system monitoring tools like ps, top, and htop.

PROCESS_USER_ID

The effective user ID (EUID) of the process.

public mixed PROCESS_USER_ID = 'process.user.id'

PROCESS_USER_NAME

The username of the effective user of the process.

public mixed PROCESS_USER_NAME = 'process.user.name'

PROCESS_VPID

Virtual process identifier.

public mixed PROCESS_VPID = 'process.vpid'

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.

PROCESS_WORKING_DIRECTORY

The working directory of the process.

public mixed PROCESS_WORKING_DIRECTORY = 'process.working_directory'

RPC_CONNECT_RPC_ERROR_CODE

The [error codes](https://connect.build/docs/protocol/#error-codes) of the Connect request. Error codes are always string values.

public mixed RPC_CONNECT_RPC_ERROR_CODE = 'rpc.connect_rpc.error_code'

RPC_CONNECT_RPC_REQUEST_METADATA

Connect request metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.

public mixed RPC_CONNECT_RPC_REQUEST_METADATA = 'rpc.connect_rpc.request.metadata'

Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.

RPC_CONNECT_RPC_RESPONSE_METADATA

Connect response metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values.

public mixed RPC_CONNECT_RPC_RESPONSE_METADATA = 'rpc.connect_rpc.response.metadata'

Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.

RPC_GRPC_REQUEST_METADATA

gRPC request metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.

public mixed RPC_GRPC_REQUEST_METADATA = 'rpc.grpc.request.metadata'

Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.

RPC_GRPC_RESPONSE_METADATA

gRPC response metadata, `<key>` being the normalized gRPC Metadata key (lowercase), the value being the metadata values.

public mixed RPC_GRPC_RESPONSE_METADATA = 'rpc.grpc.response.metadata'

Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.

RPC_GRPC_STATUS_CODE

The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.

public mixed RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code'

RPC_JSONRPC_ERROR_CODE

`error.code` property of response if it is an error response.

public mixed RPC_JSONRPC_ERROR_CODE = 'rpc.jsonrpc.error_code'

RPC_JSONRPC_ERROR_MESSAGE

`error.message` property of response if it is an error response.

public mixed RPC_JSONRPC_ERROR_MESSAGE = 'rpc.jsonrpc.error_message'

RPC_JSONRPC_REQUEST_ID

`id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.

public mixed RPC_JSONRPC_REQUEST_ID = 'rpc.jsonrpc.request_id'

RPC_JSONRPC_VERSION

Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted.

public mixed RPC_JSONRPC_VERSION = 'rpc.jsonrpc.version'

RPC_MESSAGE_COMPRESSED_SIZE

Compressed size of the message in bytes.

public mixed RPC_MESSAGE_COMPRESSED_SIZE = 'rpc.message.compressed_size'

RPC_MESSAGE_ID

MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.

public mixed RPC_MESSAGE_ID = 'rpc.message.id'

This way we guarantee that the values will be consistent between different implementations.

RPC_MESSAGE_TYPE

Whether this is a received or sent message.

public mixed RPC_MESSAGE_TYPE = 'rpc.message.type'

RPC_MESSAGE_UNCOMPRESSED_SIZE

Uncompressed size of the message in bytes.

public mixed RPC_MESSAGE_UNCOMPRESSED_SIZE = 'rpc.message.uncompressed_size'

RPC_METHOD

The name of the (logical) method being called, must be equal to the $method part in the span name.

public mixed RPC_METHOD = 'rpc.method'

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

RPC_SERVICE

The full (logical) name of the service being called, including its package name, if applicable.

public mixed RPC_SERVICE = 'rpc.service'

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

RPC_SYSTEM

A string identifying the remoting system. See below for a list of well-known identifiers.

public mixed RPC_SYSTEM = 'rpc.system'

SCHEMA_URL

The URL of the OpenTelemetry schema for these keys and values.

public mixed SCHEMA_URL = 'https://opentelemetry.io/schemas/1.27.0'

SERVER_ADDRESS

Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.

public mixed SERVER_ADDRESS = 'server.address'

When observed from the client side, and when communicating through an intermediary, server.address SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.

SERVER_PORT

Server port number.

public mixed SERVER_PORT = 'server.port'

When observed from the client side, and when communicating through an intermediary, server.port SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.

SERVICE_INSTANCE_ID

The string ID of the service instance.

public mixed SERVICE_INSTANCE_ID = 'service.instance.id'

MUST be unique for each instance of the same service.namespace,service.name pair (in other words service.namespace,service.name,service.instance.id triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service).

Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 RFC 4122 UUID, but are free to use an inherent unique ID as the source of this value if stability is desirable. In that case, the ID SHOULD be used as source of a UUID Version 5 and SHOULD use the following UUID as the namespace: 4d63009a-8d0f-11ee-aad7-4c796ed8e320.

UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is needed. Similar to what can be seen in the man page for the /etc/machine-id file, the underlying data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it or not via another resource attribute.

For applications running behind an application server (like unicorn), we do not recommend using one identifier for all processes participating in the application. Instead, it's recommended each division (e.g. a worker thread in unicorn) to have its own instance.id.

It's not recommended for a Collector to set service.instance.id if it can't unambiguously determine the service instance that is generating that telemetry. For instance, creating an UUID based on pod.name will likely be wrong, as the Collector might not know from which container within that pod the telemetry originated. However, Collectors can set the service.instance.id if they can unambiguously determine the service instance for that telemetry. This is typically the case for scraping receivers, as they know the target address and port.

SERVICE_NAME

Logical name of the service.

public mixed SERVICE_NAME = 'service.name'

MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to unknown_service: concatenated with process.executable.name, e.g. unknown_service:bash. If process.executable.name is not available, the value MUST be set to unknown_service.

SERVICE_NAMESPACE

A namespace for `service.name`.

public mixed SERVICE_NAMESPACE = 'service.namespace'

A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. service.name is expected to be unique within the same namespace. If service.namespace is not specified in the Resource then service.name is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.

SERVICE_VERSION

The version string of the service API or implementation. The format is not defined by these conventions.

public mixed SERVICE_VERSION = 'service.version'

SESSION_ID

A unique id to identify a session.

public mixed SESSION_ID = 'session.id'

SESSION_PREVIOUS_ID

The previous `session.id` for this user, when known.

public mixed SESSION_PREVIOUS_ID = 'session.previous_id'

SIGNALR_CONNECTION_STATUS

SignalR HTTP connection closure status.

public mixed SIGNALR_CONNECTION_STATUS = 'signalr.connection.status'

SIGNALR_TRANSPORT

[SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)

public mixed SIGNALR_TRANSPORT = 'signalr.transport'

SOURCE_ADDRESS

Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.

public mixed SOURCE_ADDRESS = 'source.address'

When observed from the destination side, and when communicating through an intermediary, source.address SHOULD represent the source address behind any intermediaries, for example proxies, if it's available.

SOURCE_PORT

Source port number

public mixed SOURCE_PORT = 'source.port'

STATE

Deprecated, use `db.client.connection.state` instead.

Replaced by db.client.connection.state.

public mixed STATE = 'state'

SYSTEM_CPU_LOGICAL_NUMBER

The logical CPU number [0..n-1]

public mixed SYSTEM_CPU_LOGICAL_NUMBER = 'system.cpu.logical_number'

SYSTEM_CPU_STATE

Deprecated, use `cpu.mode` instead.

Replaced by cpu.mode

public mixed SYSTEM_CPU_STATE = 'system.cpu.state'

SYSTEM_DEVICE

The device identifier

public mixed SYSTEM_DEVICE = 'system.device'

SYSTEM_FILESYSTEM_MODE

The filesystem mode

public mixed SYSTEM_FILESYSTEM_MODE = 'system.filesystem.mode'

SYSTEM_FILESYSTEM_MOUNTPOINT

The filesystem mount path

public mixed SYSTEM_FILESYSTEM_MOUNTPOINT = 'system.filesystem.mountpoint'

SYSTEM_FILESYSTEM_STATE

The filesystem state

public mixed SYSTEM_FILESYSTEM_STATE = 'system.filesystem.state'

SYSTEM_FILESYSTEM_TYPE

The filesystem type

public mixed SYSTEM_FILESYSTEM_TYPE = 'system.filesystem.type'

SYSTEM_MEMORY_STATE

The memory state

public mixed SYSTEM_MEMORY_STATE = 'system.memory.state'

SYSTEM_NETWORK_STATE

A stateless protocol MUST NOT set this attribute

public mixed SYSTEM_NETWORK_STATE = 'system.network.state'

SYSTEM_PAGING_DIRECTION

The paging access direction

public mixed SYSTEM_PAGING_DIRECTION = 'system.paging.direction'

SYSTEM_PAGING_STATE

The memory paging state

public mixed SYSTEM_PAGING_STATE = 'system.paging.state'

SYSTEM_PAGING_TYPE

The memory paging type

public mixed SYSTEM_PAGING_TYPE = 'system.paging.type'

SYSTEM_PROCESS_STATUS

The process state, e.g., [Linux Process State Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)

public mixed SYSTEM_PROCESS_STATUS = 'system.process.status'

SYSTEM_PROCESSES_STATUS

Deprecated, use `system.process.status` instead.

Replaced by system.process.status.

public mixed SYSTEM_PROCESSES_STATUS = 'system.processes.status'

TELEMETRY_DISTRO_NAME

The name of the auto instrumentation agent or distribution, if used.

public mixed TELEMETRY_DISTRO_NAME = 'telemetry.distro.name'

Official auto instrumentation agents and distributions SHOULD set the telemetry.distro.name attribute to a string starting with opentelemetry-, e.g. opentelemetry-java-instrumentation.

TELEMETRY_DISTRO_VERSION

The version string of the auto instrumentation agent or distribution, if used.

public mixed TELEMETRY_DISTRO_VERSION = 'telemetry.distro.version'

TELEMETRY_SDK_LANGUAGE

The language of the telemetry SDK.

public mixed TELEMETRY_SDK_LANGUAGE = 'telemetry.sdk.language'

TELEMETRY_SDK_NAME

The name of the telemetry SDK as defined above.

public mixed TELEMETRY_SDK_NAME = 'telemetry.sdk.name'

The OpenTelemetry SDK MUST set the telemetry.sdk.name attribute to opentelemetry. If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the telemetry.sdk.name attribute to the fully-qualified class or module name of this SDK's main entry point or another suitable identifier depending on the language. The identifier opentelemetry is reserved and MUST NOT be used in this case. All custom identifiers SHOULD be stable across different versions of an implementation.

TELEMETRY_SDK_VERSION

The version string of the telemetry SDK.

public mixed TELEMETRY_SDK_VERSION = 'telemetry.sdk.version'

TEST_CASE_NAME

The fully qualified human readable name of the [test case](https://en.wikipedia.org/wiki/Test_case).

public mixed TEST_CASE_NAME = 'test.case.name'

TEST_CASE_RESULT_STATUS

The status of the actual test case result from test execution.

public mixed TEST_CASE_RESULT_STATUS = 'test.case.result.status'

TEST_SUITE_NAME

The human readable name of a [test suite](https://en.wikipedia.org/wiki/Test_suite).

public mixed TEST_SUITE_NAME = 'test.suite.name'

TEST_SUITE_RUN_STATUS

The status of the test suite run.

public mixed TEST_SUITE_RUN_STATUS = 'test.suite.run.status'

THREAD_ID

Current "managed" thread ID (as opposed to OS thread ID).

public mixed THREAD_ID = 'thread.id'

THREAD_NAME

Current thread name.

public mixed THREAD_NAME = 'thread.name'

TLS_CIPHER

String indicating the [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used during the current connection.

public mixed TLS_CIPHER = 'tls.cipher'

The values allowed for tls.cipher MUST be one of the Descriptions of the registered TLS Cipher Suits.

TLS_CLIENT_CERTIFICATE

PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of `client.certificate_chain` since this value also exists in that list.

public mixed TLS_CLIENT_CERTIFICATE = 'tls.client.certificate'

TLS_CLIENT_CERTIFICATE_CHAIN

Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of `client.certificate` since that value should be the first certificate in the chain.

public mixed TLS_CLIENT_CERTIFICATE_CHAIN = 'tls.client.certificate_chain'

TLS_CLIENT_HASH_MD5

Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.

public mixed TLS_CLIENT_HASH_MD5 = 'tls.client.hash.md5'

TLS_CLIENT_HASH_SHA1

Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.

public mixed TLS_CLIENT_HASH_SHA1 = 'tls.client.hash.sha1'

TLS_CLIENT_HASH_SHA256

Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash.

public mixed TLS_CLIENT_HASH_SHA256 = 'tls.client.hash.sha256'

TLS_CLIENT_ISSUER

Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client.

public mixed TLS_CLIENT_ISSUER = 'tls.client.issuer'

TLS_CLIENT_JA3

A hash that identifies clients based on how they perform an SSL/TLS handshake.

public mixed TLS_CLIENT_JA3 = 'tls.client.ja3'

TLS_CLIENT_NOT_AFTER

Date/Time indicating when client certificate is no longer considered valid.

public mixed TLS_CLIENT_NOT_AFTER = 'tls.client.not_after'

TLS_CLIENT_NOT_BEFORE

Date/Time indicating when client certificate is first considered valid.

public mixed TLS_CLIENT_NOT_BEFORE = 'tls.client.not_before'

TLS_CLIENT_SERVER_NAME

Deprecated, use `server.address` instead.

Replaced by server.address.

public mixed TLS_CLIENT_SERVER_NAME = 'tls.client.server_name'

TLS_CLIENT_SUBJECT

Distinguished name of subject of the x.509 certificate presented by the client.

public mixed TLS_CLIENT_SUBJECT = 'tls.client.subject'

TLS_CLIENT_SUPPORTED_CIPHERS

Array of ciphers offered by the client during the client hello.

public mixed TLS_CLIENT_SUPPORTED_CIPHERS = 'tls.client.supported_ciphers'

TLS_CURVE

String indicating the curve used for the given cipher, when applicable

public mixed TLS_CURVE = 'tls.curve'

TLS_ESTABLISHED

Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel.

public mixed TLS_ESTABLISHED = 'tls.established'

TLS_NEXT_PROTOCOL

String indicating the protocol being tunneled. Per the values in the [IANA registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids), this string should be lower case.

public mixed TLS_NEXT_PROTOCOL = 'tls.next_protocol'

TLS_PROTOCOL_NAME

Normalized lowercase protocol name parsed from original string of the negotiated [SSL/TLS protocol version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)

public mixed TLS_PROTOCOL_NAME = 'tls.protocol.name'

TLS_PROTOCOL_VERSION

Numeric part of the version parsed from the original string of the negotiated [SSL/TLS protocol version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)

public mixed TLS_PROTOCOL_VERSION = 'tls.protocol.version'

TLS_RESUMED

Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation.

public mixed TLS_RESUMED = 'tls.resumed'

TLS_SERVER_CERTIFICATE

PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of `server.certificate_chain` since this value also exists in that list.

public mixed TLS_SERVER_CERTIFICATE = 'tls.server.certificate'

TLS_SERVER_CERTIFICATE_CHAIN

Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of `server.certificate` since that value should be the first certificate in the chain.

public mixed TLS_SERVER_CERTIFICATE_CHAIN = 'tls.server.certificate_chain'

TLS_SERVER_HASH_MD5

Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.

public mixed TLS_SERVER_HASH_MD5 = 'tls.server.hash.md5'

TLS_SERVER_HASH_SHA1

Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.

public mixed TLS_SERVER_HASH_SHA1 = 'tls.server.hash.sha1'

TLS_SERVER_HASH_SHA256

Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash.

public mixed TLS_SERVER_HASH_SHA256 = 'tls.server.hash.sha256'

TLS_SERVER_ISSUER

Distinguished name of [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of the issuer of the x.509 certificate presented by the client.

public mixed TLS_SERVER_ISSUER = 'tls.server.issuer'

TLS_SERVER_JA3S

A hash that identifies servers based on how they perform an SSL/TLS handshake.

public mixed TLS_SERVER_JA3S = 'tls.server.ja3s'

TLS_SERVER_NOT_AFTER

Date/Time indicating when server certificate is no longer considered valid.

public mixed TLS_SERVER_NOT_AFTER = 'tls.server.not_after'

TLS_SERVER_NOT_BEFORE

Date/Time indicating when server certificate is first considered valid.

public mixed TLS_SERVER_NOT_BEFORE = 'tls.server.not_before'

TLS_SERVER_SUBJECT

Distinguished name of subject of the x.509 certificate presented by the server.

public mixed TLS_SERVER_SUBJECT = 'tls.server.subject'

URL_DOMAIN

Domain extracted from the `url.full`, such as "opentelemetry.io".

public mixed URL_DOMAIN = 'url.domain'

In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the domain field. If the URL contains a literal IPv6 address enclosed by [ and ], the [ and ] characters should also be captured in the domain field.

URL_EXTENSION

The file extension extracted from the `url.full`, excluding the leading dot.

public mixed URL_EXTENSION = 'url.extension'

The file extension is only set if it exists, as not every url has a file extension. When the file name has multiple extensions example.tar.gz, only the last one should be captured gz, not tar.gz.

URL_FRAGMENT

The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component

public mixed URL_FRAGMENT = 'url.fragment'

URL_FULL

Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment is not transmitted over HTTP, but if it is known, it SHOULD be included nevertheless.

public mixed URL_FULL = 'url.full'

url.full MUST NOT contain credentials passed via URL in form of https://username:password@www.example.com/. In such case username and password SHOULD be redacted and attribute's value SHOULD be https://REDACTED:REDACTED@www.example.com/. url.full SHOULD capture the absolute URL when it is available (or can be reconstructed). Sensitive content provided in url.full SHOULD be scrubbed when instrumentations can identify it.

URL_ORIGINAL

Unmodified original URL as seen in the event source.

public mixed URL_ORIGINAL = 'url.original'

In network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. url.original might contain credentials passed via URL in form of https://username:password@www.example.com/. In such case password and username SHOULD NOT be redacted and attribute's value SHOULD remain the same.

URL_PATH

The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component

public mixed URL_PATH = 'url.path'

Sensitive content provided in url.path SHOULD be scrubbed when instrumentations can identify it.

URL_PORT

Port extracted from the `url.full`

public mixed URL_PORT = 'url.port'

URL_QUERY

The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component

public mixed URL_QUERY = 'url.query'

Sensitive content provided in url.query SHOULD be scrubbed when instrumentations can identify it.

URL_REGISTERED_DOMAIN

The highest registered url domain, stripped of the subdomain.

public mixed URL_REGISTERED_DOMAIN = 'url.registered_domain'

This value can be determined precisely with the public suffix list. For example, the registered domain for foo.example.com is example.com. Trying to approximate this by simply taking the last two labels will not work well for TLDs such as co.uk.

URL_SCHEME

The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.

public mixed URL_SCHEME = 'url.scheme'

URL_SUBDOMAIN

The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain.

public mixed URL_SUBDOMAIN = 'url.subdomain'

The subdomain portion of www.east.mydomain.co.uk is east. If the domain has multiple levels of subdomain, such as sub2.sub1.example.com, the subdomain field should contain sub2.sub1, with no trailing period.

URL_TEMPLATE

The low-cardinality template of an [absolute path reference](https://www.rfc-editor.org/rfc/rfc3986#section-4.2).

public mixed URL_TEMPLATE = 'url.template'

URL_TOP_LEVEL_DOMAIN

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 `com`.

public mixed URL_TOP_LEVEL_DOMAIN = 'url.top_level_domain'

This value can be determined precisely with the public suffix list.

USER_AGENT_NAME

Name of the user-agent extracted from original. Usually refers to the browser's name.

public mixed USER_AGENT_NAME = 'user_agent.name'

Example of extracting browser's name from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the user_agent.original, the most significant name SHOULD be selected. In such a scenario it should align with user_agent.version

USER_AGENT_ORIGINAL

Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.

public mixed USER_AGENT_ORIGINAL = 'user_agent.original'

USER_AGENT_VERSION

Version of the user-agent extracted from original. Usually refers to the browser's version

public mixed USER_AGENT_VERSION = 'user_agent.version'

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 user_agent.original, the most significant version SHOULD be selected. In such a scenario it should align with user_agent.name

USER_EMAIL

User email address.

public mixed USER_EMAIL = 'user.email'

USER_FULL_NAME

User's full name

public mixed USER_FULL_NAME = 'user.full_name'

USER_HASH

Unique user hash to correlate information for a user in anonymized form.

public mixed USER_HASH = 'user.hash'

Useful if user.id or user.name contain confidential information and cannot be used.

USER_ID

Unique identifier of the user.

public mixed USER_ID = 'user.id'

USER_NAME

Short name or login/username of the user.

public mixed USER_NAME = 'user.name'

USER_ROLES

Array of user roles at the time of the event.

public mixed USER_ROLES = 'user.roles'

V8JS_GC_TYPE

The type of garbage collection.

public mixed V8JS_GC_TYPE = 'v8js.gc.type'

VCS_REPOSITORY_CHANGE_ID

The ID of the change (pull request/merge request) if applicable. This is usually a unique (within repository) identifier generated by the VCS system.

public mixed VCS_REPOSITORY_CHANGE_ID = 'vcs.repository.change.id'

VCS_REPOSITORY_CHANGE_TITLE

The human readable title of the change (pull request/merge request). This title is often a brief summary of the change and may get merged in to a ref as the commit summary.

public mixed VCS_REPOSITORY_CHANGE_TITLE = 'vcs.repository.change.title'

VCS_REPOSITORY_REF_NAME

The name of the [reference](https://git-scm.com/docs/gitglossary#def_ref) such as **branch** or **tag** in the repository.

public mixed VCS_REPOSITORY_REF_NAME = 'vcs.repository.ref.name'

VCS_REPOSITORY_REF_REVISION

The revision, literally [revised version](https://www.merriam-webster.com/dictionary/revision), The revision most often refers to a commit object in Git, or a revision number in SVN.

public mixed VCS_REPOSITORY_REF_REVISION = 'vcs.repository.ref.revision'

The revision can be a full hash value (see glossary), of the recorded change to a ref within a repository pointing to a commit commit object. It does not necessarily have to be a hash; it can simply define a revision number which is an integer that is monotonically increasing. In cases where it is identical to the ref.name, it SHOULD still be included. It is up to the implementer to decide which value to set as the revision based on the VCS system and situational context.

VCS_REPOSITORY_REF_TYPE

The type of the [reference](https://git-scm.com/docs/gitglossary#def_ref) in the repository.

public mixed VCS_REPOSITORY_REF_TYPE = 'vcs.repository.ref.type'

VCS_REPOSITORY_URL_FULL

The [URL](https://en.wikipedia.org/wiki/URL) of the repository providing the complete address in order to locate and identify the repository.

public mixed VCS_REPOSITORY_URL_FULL = 'vcs.repository.url.full'

WEBENGINE_DESCRIPTION

Additional description of the web engine (e.g. detailed version and edition information).

public mixed WEBENGINE_DESCRIPTION = 'webengine.description'

WEBENGINE_NAME

The name of the web engine.

public mixed WEBENGINE_NAME = 'webengine.name'

WEBENGINE_VERSION

The version of the web engine.

public mixed WEBENGINE_VERSION = 'webengine.version'

        
On this page

Search results