ec2.
fargate.
Identifies the Values for CloudPlatformValues enum definition
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
Alibaba Cloud Elastic Compute Service.
Alibaba Cloud Function Compute.
AWS Elastic Compute Cloud.
AWS Elastic Container Service.
AWS Elastic Kubernetes Service.
AWS Elastic Beanstalk.
AWS Lambda.
Azure Kubernetes Service.
Azure App Service.
Azure Container Instances.
Azure Functions.
Azure Virtual Machines.
Google Cloud App Engine (GAE).
Google Cloud Functions (GCF).
Google Cloud Run.
Google Cloud Compute Engine (GCE).
Google Cloud Kubernetes Engine (GKE).
Identifies the Values for CloudProviderValues enum definition
Name of the cloud provider.
Alibaba Cloud.
Amazon Web Services.
Microsoft Azure.
Google Cloud Platform.
Identifies the Values for DbCassandraConsistencyLevelValues enum definition
The consistency level of the query. Based on consistency values from CQL.
all.
any.
each_quorum.
local_one.
local_quorum.
local_serial.
one.
quorum.
serial.
three.
two.
Identifies the Values for DbSystemValues enum definition
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
Adabas (Adaptable Database System).
InterSystems Caché.
Apache Cassandra.
Cloudscape.
CockroachDB.
ColdFusion IMQ.
Microsoft Azure Cosmos DB.
Couchbase.
CouchDB.
IBM Db2.
Apache Derby.
Amazon DynamoDB.
EnterpriseDB.
Elasticsearch.
FileMaker.
Firebird.
FirstSQL.
Apache Geode.
H2.
SAP HANA.
Apache HBase.
Apache Hive.
HyperSQL DataBase.
Informix.
Ingres.
InstantDB.
InterBase.
MariaDB.
SAP MaxDB.
Memcached.
MongoDB.
Microsoft SQL Server.
MySQL.
Neo4j.
Netezza.
Oracle Database.
Some other SQL database. Fallback only. See notes.
Pervasive PSQL.
PointBase.
PostgreSQL.
Progress Database.
Redis.
Amazon Redshift.
SQLite.
Sybase.
Teradata.
Vertica.
Identifies the Values for FaasDocumentOperationValues enum definition
Describes the type of the operation that was performed on the data.
When an object is deleted.
When an object is modified.
When a new object is created.
Identifies the Values for FaasInvokedProviderValues enum definition
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
Alibaba Cloud.
Amazon Web Services.
Microsoft Azure.
Google Cloud Platform.
Identifies the Values for FaasTriggerValues enum definition
Type of the trigger on which the function is executed.
A response to some data source operation such as a database or filesystem read/write.
To provide an answer to an inbound HTTP request.
If none of the others apply.
A function is set to be executed when messages are sent to a messaging system.
A function is scheduled to be executed regularly.
Identifies the Values for HostArchValues enum definition
The CPU architecture the host system is running on.
AMD64.
ARM32.
ARM64.
Itanium.
32-bit PowerPC.
64-bit PowerPC.
32-bit x86.
Identifies the Values for HttpFlavorValues enum definition
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
HTTP 1.0.
HTTP 1.1.
HTTP 2.
QUIC protocol.
SPDY protocol.
Identifies the Values for MessageTypeValues enum definition
Whether this is a received or sent message.
received.
sent.
Identifies the Values for MessagingDestinationKindValues enum definition
The kind of message destination.
A message sent to a queue.
A message sent to a topic.
Identifies the Values for MessagingOperationValues enum definition
A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.
process.
receive.
Identifies the Values for NetHostConnectionSubtypeValues enum definition
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.
CDMA.
CDMA2000 1XRTT.
EDGE.
EHRPD.
EVDO Rel. 0.
EVDO Rev. A.
EVDO Rev. B.
GPRS.
GSM.
HSDPA.
HSPA.
HSPAP.
HSUPA.
IDEN.
IWLAN.
LTE.
LTE CA.
5G NR (New Radio).
5G NRNSA (New Radio Non-Standalone).
TD-SCDMA.
UMTS.
Identifies the Values for NetHostConnectionTypeValues enum definition
The internet connection type currently being used by the host.
cell.
unavailable.
unknown.
wifi.
wired.
Identifies the Values for NetTransportValues enum definition
Transport protocol used. See note below.
In-process communication.
Another IP-based protocol.
ip_tcp.
ip_udp.
Something else (non IP-based).
Named or anonymous pipe. See note below.
Unix Domain socket. See below.
Identifies the Values for OsTypeValues enum definition
The operating system type.
AIX (Advanced Interactive eXecutive).
Apple Darwin.
DragonFly BSD.
FreeBSD.
HP-UX (Hewlett Packard Unix).
Linux.
NetBSD.
OpenBSD.
Oracle Solaris.
Microsoft Windows.
IBM z/OS.
Identifies the Values for RpcGrpcStatusCodeValues enum definition
The numeric status code of the gRPC request.
ABORTED.
ALREADY_EXISTS.
CANCELLED.
DATA_LOSS.
DEADLINE_EXCEEDED.
FAILED_PRECONDITION.
INTERNAL.
INVALID_ARGUMENT.
NOT_FOUND.
OK.
OUT_OF_RANGE.
PERMISSION_DENIED.
RESOURCE_EXHAUSTED.
UNAUTHENTICATED.
UNAVAILABLE.
UNIMPLEMENTED.
UNKNOWN.
Definition of available values for SemanticAttributes This type is used for backward compatibility, you should use the individual exported constants SemanticAttributes_XXXXX rather than the exported constant map. As any single reference to a constant map value will result in all strings being included into your bundle.
The value of the AttributesToGet
request parameter.
The JSON-serialized value of each item in the AttributeDefinitions
request field.
The value of the ConsistentRead
request parameter.
The JSON-serialized value of each item in the ConsumedCapacity
response field.
The value of the Count
response parameter.
The value of the ExclusiveStartTableName
request parameter.
The JSON-serialized value of each item of the GlobalSecondaryIndexes
request field.
The JSON-serialized value of each item in the the GlobalSecondaryIndexUpdates
request field.
The value of the IndexName
request parameter.
The JSON-serialized value of the ItemCollectionMetrics
response field.
The value of the Limit
request parameter.
The JSON-serialized value of each item of the LocalSecondaryIndexes
request field.
The value of the ProjectionExpression
request parameter.
The value of the ProvisionedThroughput.ReadCapacityUnits
request parameter.
The value of the ProvisionedThroughput.WriteCapacityUnits
request parameter.
The value of the ScannedCount
response parameter.
The value of the ScanIndexForward
request parameter.
The value of the Segment
request parameter.
The value of the Select
request parameter.
The the number of items in the TableNames
response parameter.
The keys in the RequestItems
object field.
The value of the TotalSegments
request parameter.
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).
Note: This may be different from faas.id
if an alias is involved.
The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).
The method or function name, or equivalent (usually rightmost part of the code unit's name).
The line number in code.filepath
best representing the operation. It SHOULD point within the code unit named in code.function
.
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.
The consistency level of the query. Based on consistency values from CQL.
The data center of the coordinating node for a query.
The ID of the coordinating node for a query.
Whether or not the query is idempotent.
The name of the keyspace being accessed. To be used instead of the generic db.name
attribute.
The fetch size used for paging, i.e. how many rows will be returned at once.
The number of times a query was speculatively executed. Not set or 0
if the query was not executed speculatively.
The name of the primary table that the operation is acting upon, including the schema name (if applicable).
Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of db.statement
just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.
The connection string used to connect to the database. It is recommended to remove embedded credentials.
The HBase namespace being accessed. To be used instead of the generic db.name
attribute.
The fully-qualified class name of the Java Database Connectivity (JDBC) driver used to connect.
The collection being accessed within the database stated in db.name
.
The Microsoft SQL Server instance name connecting to. This name is used to determine the port of a named instance.
Note: If setting a db.mssql.instance_name
, net.peer.port
is no longer required (but still recommended if non-standard).
If no tech-specific attribute is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).
Note: In some SQL databases, the database name to be used is called "schema name".
The name of the operation being executed, e.g. the MongoDB command name such as findAndModify
, or the SQL keyword.
Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of db.statement
just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.
The index of the database being accessed as used in the SELECT
command, provided as an integer. To be used instead of the generic db.name
attribute.
The name of the primary table that the operation is acting upon, including the schema name (if applicable).
Note: It is not recommended to attempt any client-side parsing of db.statement
just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.
The database statement being executed.
Note: The value may be sanitized to exclude sensitive information.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
Username for accessing the database.
Username or client_id extracted from the access token or Authorization header in the inbound request from outside the system.
Actual/assumed role the client is making the request under extracted from token or application security context.
Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an OAuth 2.0 Access Token or an attribute value in a SAML 2.0 Assertion.
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.
Note: 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 above.
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.
The exception message.
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.
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.
A boolean that is true if the serverless function is executed for the first time (aka cold-start).
A string containing the schedule period as Cron Expression.
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.
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.
Describes the type of the operation that was performed on the data.
The execution ID of the current function execution.
The name of the invoked function.
Note: SHOULD be equal to the faas.name
resource attribute of the invoked function.
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
The cloud region of the invoked function.
Note: SHOULD be equal to the cloud.region
resource attribute of the invoked function.
Type of the trigger on which the function is executed.
The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For).
Note: This is not necessarily the same as net.peer.ip
, which would
identify the network-level peer, which may be a proxy.
This attribute should be set when a source of information different
from the one used for net.peer.ip
, is available even if that other
source just confirms the same value as net.peer.ip
.
Rationale: For net.peer.ip
, one typically does not know if it
comes from a proxy, reverse proxy, or the actual client. Setting
http.client_ip
when it's the same as net.peer.ip
means that
one is at least somewhat confident that the address is not that of
the closest proxy.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
The value of the HTTP host header. An empty Host header should also be reported, see note.
Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned section of RFC 7230. When the header is not set the attribute MUST NOT be set.
HTTP request method.
The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size.
The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.
The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size.
The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.
The matched route (path template).
The URI scheme identifying the used protocol.
The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( net.host.name
should be used instead).
Note: http.url
is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.
The full request target as passed in a HTTP request line or equivalent.
Full HTTP request URL in the form scheme://host[:port]/path?query[#fragment]
. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.
Note: http.url
MUST NOT contain credentials passed via URL in form of https://username:password@www.example.com/
. In such case the attribute's value should be https://www.example.com/
.
Value of the HTTP User-Agent header sent by the client.
Compressed size of the message in bytes.
MUST be calculated as two different counters starting from 1
one for sent messages and one for received message.
Note: This way we guarantee that the values will be consistent between different implementations.
Whether this is a received or sent message.
Uncompressed size of the message in bytes.
The identifier for the consumer receiving a message. For Kafka, set it to {messaging.kafka.consumer_group} - {messaging.kafka.client_id}
, if both are present, or only messaging.kafka.consumer_group
. For brokers, such as RabbitMQ and Artemis, set it to the client_id
of the client consuming the message.
The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
The message destination name. This might be equal to the span name but is required nevertheless.
The kind of message destination.
Client Id for the Consumer or Producer that is handling the message.
Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.
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.
Note: 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.
Partition the message is sent to.
A boolean that is true if the message is a tombstone.
A value used by the messaging system as an identifier for the message, represented as a string.
The compressed size of the message payload in bytes.
The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.
A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.
The name of the transport protocol.
The version of the transport protocol.
RabbitMQ message routing key.
A string identifying the messaging system.
A boolean that is true if the message destination is temporary.
Connection string.
The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
The mobile carrier country code.
The mobile carrier network code.
The name of the mobile carrier.
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.
The internet connection type currently being used by the host.
Like net.peer.ip
but for the host IP. Useful in case of a multi-IP host.
Local hostname or similar, see note below.
Like net.peer.port
but for the host port.
Remote address of the peer (dotted decimal for IPv4 or RFC5952 for IPv6).
Remote hostname or similar, see note below.
Remote port number.
Transport protocol used. See note below.
The service.name
of the remote service. SHOULD be equal to the actual service.name
resource attribute of the remote service if any.
The numeric status code of the gRPC request.
error.code
property of response if it is an error response.
error.message
property of response if it is an error response.
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.
Protocol version as in jsonrpc
property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.
The name of the (logical) method being called, must be equal to the $method part in the span name.
Note: 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).
The full (logical) name of the service being called, including its package name, if applicable.
Note: 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).
A string identifying the remoting system.
Current "managed" thread ID (as opposed to OS thread ID).
Current thread name.
Definition of available values for SemanticResourceAttributes This type is used for backward compatibility, you should use the individual exported constants SemanticResourceAttributes_XXXXX rather than the exported constant map. As any single reference to a constant map value will result in all strings being included into your bundle.
The ARN of an ECS cluster.
The Amazon Resource Name (ARN) of an ECS container instance.
The launch type for an ECS task.
The ARN of an ECS task definition.
The task definition family this task definition is a member of.
The revision for this task definition.
The ARN of an EKS cluster.
The Amazon Resource Name(s) (ARN) of the AWS log group(s).
Note: See the log group ARN format documentation.
The name(s) of the AWS log group(s) an application is writing to.
Note: 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.
The ARN(s) of the AWS log stream(s).
Note: 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.
The name(s) of the AWS log stream(s) an application is writing to.
The cloud account ID the resource is assigned to.
Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
Note: Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
Name of the cloud provider.
The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example Alibaba Cloud regions, AWS regions, Azure regions, or Google Cloud regions.
Container ID. Usually a UUID, as for example used to identify Docker containers. The UUID might be abbreviated.
Name of the image the container was built on.
Container image tag.
Container name.
The container runtime managing this container.
Name of the deployment environment (aka deployment tier).
A unique identifier representing the device.
Note: 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.
The model identifier for the device.
Note: 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.
The marketing name for the device model.
Note: It's recommended this value represents a human readable version of the device model rather than a machine readable alternative.
The unique ID of the single function that this runtime instance executes.
Note: Depending on the cloud provider, use:
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 invokable with multiple different aliases. GCP: The URI of the resource Azure: The Fully Qualified Resource ID.
On some providers, it may not be possible to determine the full ID at startup,
which is why this field cannot be made required. For example, on AWS the account ID
part of the ARN is not available without calling another AWS API
which may be deemed too slow for a short-running lambda function.
As an alternative, consider setting faas.id
as a span attribute instead.
The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
Note: * AWS Lambda: Use the (full) log stream name.
The amount of memory available to the serverless function in MiB.
Note: 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.
The name of the single function that this runtime instance executes.
Note: 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).
The immutable version of the function being executed.
Note: Depending on the cloud provider and platform, use:
AWS Lambda: The function version
(an integer represented as a decimal string).
Google Cloud Run: 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.
The CPU architecture the host system is running on.
Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider.
VM image ID. For Cloud, this value is from the provider.
Name of the VM image or OS install the host was instantiated from.
The version string of the VM image as defined in Version Attributes.
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.
Type of host. For Cloud, this must be the machine type.
The name of the cluster.
The name of the Container in a Pod template.
The name of the CronJob.
The UID of the CronJob.
The name of the DaemonSet.
The UID of the DaemonSet.
The name of the Deployment.
The UID of the Deployment.
The name of the Job.
The UID of the Job.
The name of the namespace that the pod is running in.
The name of the Node.
The UID of the Node.
The name of the Pod.
The UID of the Pod.
The name of the ReplicaSet.
The UID of the ReplicaSet.
The name of the StatefulSet.
The UID of the StatefulSet.
Human readable (not intended to be parsed) OS version information, like e.g. reported by ver
or lsb_release -a
commands.
Human readable operating system name.
The operating system type.
The version string of the operating system as defined in Version Attributes.
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
.
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
.
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.
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
.
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
.
The username of the user that owns the process.
Process identifier (PID).
An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler.
The version of the runtime of this process, as returned by the runtime without modification.
The string ID of the service instance.
Note: 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). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations).
Logical name of the service.
Note: 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
.
A namespace for service.name
.
Note: 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.
The version string of the service API or implementation.
The version string of the auto instrumentation agent, if used.
The language of the telemetry SDK.
The name of the telemetry SDK as defined above.
The version string of the telemetry SDK.
Additional description of the web engine (e.g. detailed version and edition information).
The name of the web engine.
The version of the web engine.
Identifies the Values for TelemetrySdkLanguageValues enum definition
The language of the telemetry SDK.
cpp.
dotnet.
erlang.
go.
java.
nodejs.
php.
python.
ruby.
webjs.
Enum value "aborted" for attribute ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT.
Enum value "handled" for attribute ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT.
Enum value "skipped" for attribute ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT.
Enum value "unhandled" for attribute ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT.
Enum value "acquired" for attribute ATTR_ASPNETCORE_RATE_LIMITING_RESULT.
Enum value "endpoint_limiter" for attribute ATTR_ASPNETCORE_RATE_LIMITING_RESULT.
Enum value "global_limiter" for attribute ATTR_ASPNETCORE_RATE_LIMITING_RESULT.
Enum value "request_canceled" for attribute ATTR_ASPNETCORE_RATE_LIMITING_RESULT.
Enum value "failure" for attribute ATTR_ASPNETCORE_ROUTING_MATCH_STATUS.
Enum value "success" for attribute ATTR_ASPNETCORE_ROUTING_MATCH_STATUS.
ASP.NET Core exception middleware handling result
Full type name of the IExceptionHandler
implementation that handled the exception.
Rate limiting policy name.
Rate-limiting result, shows whether the lease was acquired or contains a rejection reason
Flag indicating if request was handled by the application pipeline.
A value that indicates whether the matched route is a fallback route.
Match result - success or failure
Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
Client port number.
Describes a class of error the operation ended with.
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.
The exception message.
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.
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.
HTTP request method.
Original HTTP method sent by the client in the request line.
The ordinal number of request resending attempt (for any reason, including redirects).
The matched route, that is, the path template in the format used by the respective server framework.
Name of the garbage collector action.
Name of the garbage collector.
Name of the memory pool.
The type of memory.
Whether the thread is daemon or not.
State of the thread.
Local address of the network connection - IP address or Unix domain socket name.
Local port number of the network connection.
Peer address of the network connection - IP address or Unix domain socket name.
Peer port number of the network connection.
OSI application layer or non-OSI equivalent.
The actual version of the protocol used for network communication.
OSI network layer or non-OSI equivalent.
The name of the instrumentation scope - (InstrumentationScope.Name
in OTLP).
The version of the instrumentation scope - (InstrumentationScope.Version
in OTLP).
Name of the code, either "OK" or "ERROR". MUST NOT be set if the status code is UNSET.
Description of the Status if it has a value, otherwise not set.
Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.
Server port number.
Logical name of the service.
The version string of the service API or implementation. The format is not defined by these conventions.
SignalR HTTP connection closure status.
The language of the telemetry SDK.
The name of the telemetry SDK as defined above.
The version string of the telemetry SDK.
The URI fragment component
Absolute URL describing a network resource according to RFC3986
The URI path component
The URI query component
The URI scheme component identifying the used protocol.
Value of the HTTP User-Agent header sent by the client.
The launch type for an ECS task.
The launch type for an ECS task.
The constant map of values for AwsEcsLaunchtypeValues.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
Name of the cloud provider.
Name of the cloud provider.
Name of the cloud provider.
Name of the cloud provider.
The constant map of values for CloudPlatformValues.
The constant map of values for CloudProviderValues.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
The consistency level of the query. Based on consistency values from CQL.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
The constant map of values for DbCassandraConsistencyLevelValues.
The constant map of values for DbSystemValues.
Enum value "_OTHER" for attribute ATTR_ERROR_TYPE.
Describes the type of the operation that was performed on the data.
Describes the type of the operation that was performed on the data.
Describes the type of the operation that was performed on the data.
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
Type of the trigger on which the function is executed.
Type of the trigger on which the function is executed.
Type of the trigger on which the function is executed.
Type of the trigger on which the function is executed.
Type of the trigger on which the function is executed.
The constant map of values for FaasDocumentOperationValues.
The constant map of values for FaasInvokedProviderValues.
The constant map of values for FaasTriggerValues.
The CPU architecture the host system is running on.
The CPU architecture the host system is running on.
The CPU architecture the host system is running on.
The CPU architecture the host system is running on.
The CPU architecture the host system is running on.
The CPU architecture the host system is running on.
The CPU architecture the host system is running on.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
Enum value "CONNECT" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "DELETE" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "GET" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "HEAD" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "OPTIONS" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "_OTHER" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "PATCH" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "POST" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "PUT" for attribute ATTR_HTTP_REQUEST_METHOD.
Enum value "TRACE" for attribute ATTR_HTTP_REQUEST_METHOD.
The constant map of values for HostArchValues.
The constant map of values for HttpFlavorValues.
Enum value "heap" for attribute ATTR_JVM_MEMORY_TYPE.
Enum value "non_heap" for attribute ATTR_JVM_MEMORY_TYPE.
Enum value "blocked" for attribute ATTR_JVM_THREAD_STATE.
Enum value "new" for attribute ATTR_JVM_THREAD_STATE.
Enum value "runnable" for attribute ATTR_JVM_THREAD_STATE.
Enum value "terminated" for attribute ATTR_JVM_THREAD_STATE.
Enum value "timed_waiting" for attribute ATTR_JVM_THREAD_STATE.
Enum value "waiting" for attribute ATTR_JVM_THREAD_STATE.
Whether this is a received or sent message.
Whether this is a received or sent message.
The kind of message destination.
The kind of message destination.
A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.
A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.
Number of exceptions caught by exception handling middleware.
Number of requests that are currently active on the server that hold a rate limiting lease.
Number of requests that are currently queued, waiting to acquire a rate limiting lease.
Number of requests that tried to acquire a rate limiting lease.
The duration of rate limiting lease held by requests on the server.
The time the request spent in a queue waiting to acquire a rate limiting lease.
Number of requests that were attempted to be matched to an endpoint.
Duration of HTTP client requests.
Duration of HTTP server requests.
Number of classes currently loaded.
Number of classes loaded since JVM start.
Number of classes unloaded since JVM start.
Number of processors available to the Java virtual machine.
Recent CPU utilization for the process as reported by the JVM.
CPU time used by the process as reported by the JVM.
Duration of JVM garbage collection actions.
Measure of memory committed.
Measure of max obtainable memory.
Measure of memory used.
Measure of memory used, as measured after the most recent garbage collection event on this pool.
Number of executing platform threads.
Number of connections that are currently active on the server.
Number of TLS handshakes that are currently in progress on the server.
The duration of connections on the server.
Number of connections that are currently queued and are waiting to start.
Number of HTTP requests on multiplexed connections (HTTP/2 and HTTP/3) that are currently queued and are waiting to start.
Number of connections rejected by the server.
The duration of TLS handshakes on the server.
Number of connections that are currently upgraded (WebSockets). .
Number of connections that are currently active on the server.
The duration of connections on the server.
The constant map of values for MessageTypeValues.
The constant map of values for MessagingDestinationKindValues.
The constant map of values for MessagingOperationValues.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The internet connection type currently being used by the host.
The internet connection type currently being used by the host.
The internet connection type currently being used by the host.
The internet connection type currently being used by the host.
The internet connection type currently being used by the host.
Transport protocol used. See note below.
Transport protocol used. See note below.
Transport protocol used. See note below.
Transport protocol used. See note below.
Transport protocol used. See note below.
Transport protocol used. See note below.
Transport protocol used. See note below.
Enum value "pipe" for attribute ATTR_NETWORK_TRANSPORT.
Enum value "quic" for attribute ATTR_NETWORK_TRANSPORT.
Enum value "tcp" for attribute ATTR_NETWORK_TRANSPORT.
Enum value "udp" for attribute ATTR_NETWORK_TRANSPORT.
Enum value "unix" for attribute ATTR_NETWORK_TRANSPORT.
Enum value "ipv4" for attribute ATTR_NETWORK_TYPE.
Enum value "ipv6" for attribute ATTR_NETWORK_TYPE.
The constant map of values for NetHostConnectionSubtypeValues.
The constant map of values for NetHostConnectionTypeValues.
The constant map of values for NetTransportValues.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
The operating system type.
Enum value "ERROR" for attribute ATTR_OTEL_STATUS_CODE.
Enum value "OK" for attribute ATTR_OTEL_STATUS_CODE.
The constant map of values for OsTypeValues.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The numeric status code of the gRPC request.
The constant map of values for RpcGrpcStatusCodeValues.
The value of the AttributesToGet
request parameter.
The JSON-serialized value of each item in the AttributeDefinitions
request field.
The value of the ConsistentRead
request parameter.
The JSON-serialized value of each item in the ConsumedCapacity
response field.
The value of the Count
response parameter.
The value of the ExclusiveStartTableName
request parameter.
The JSON-serialized value of each item of the GlobalSecondaryIndexes
request field.
The JSON-serialized value of each item in the the GlobalSecondaryIndexUpdates
request field.
The value of the IndexName
request parameter.
The JSON-serialized value of the ItemCollectionMetrics
response field.
The value of the Limit
request parameter.
The JSON-serialized value of each item of the LocalSecondaryIndexes
request field.
The value of the ProjectionExpression
request parameter.
The value of the ProvisionedThroughput.ReadCapacityUnits
request parameter.
The value of the ProvisionedThroughput.WriteCapacityUnits
request parameter.
The value of the ScannedCount
response parameter.
The value of the ScanIndexForward
request parameter.
The value of the Segment
request parameter.
The value of the Select
request parameter.
The the number of items in the TableNames
response parameter.
The keys in the RequestItems
object field.
The value of the TotalSegments
request parameter.
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).
Note: This may be different from faas.id
if an alias is involved.
The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).
The method or function name, or equivalent (usually rightmost part of the code unit's name).
The line number in code.filepath
best representing the operation. It SHOULD point within the code unit named in code.function
.
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.
The consistency level of the query. Based on consistency values from CQL.
The data center of the coordinating node for a query.
The ID of the coordinating node for a query.
Whether or not the query is idempotent.
The name of the keyspace being accessed. To be used instead of the generic db.name
attribute.
The fetch size used for paging, i.e. how many rows will be returned at once.
The number of times a query was speculatively executed. Not set or 0
if the query was not executed speculatively.
The name of the primary table that the operation is acting upon, including the schema name (if applicable).
Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of db.statement
just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.
The connection string used to connect to the database. It is recommended to remove embedded credentials.
The HBase namespace being accessed. To be used instead of the generic db.name
attribute.
The fully-qualified class name of the Java Database Connectivity (JDBC) driver used to connect.
The collection being accessed within the database stated in db.name
.
The Microsoft SQL Server instance name connecting to. This name is used to determine the port of a named instance.
Note: If setting a db.mssql.instance_name
, net.peer.port
is no longer required (but still recommended if non-standard).
If no tech-specific attribute is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).
Note: In some SQL databases, the database name to be used is called "schema name".
The name of the operation being executed, e.g. the MongoDB command name such as findAndModify
, or the SQL keyword.
Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of db.statement
just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.
The index of the database being accessed as used in the SELECT
command, provided as an integer. To be used instead of the generic db.name
attribute.
The name of the primary table that the operation is acting upon, including the schema name (if applicable).
Note: It is not recommended to attempt any client-side parsing of db.statement
just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.
The database statement being executed.
Note: The value may be sanitized to exclude sensitive information.
An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.
Username for accessing the database.
Username or client_id extracted from the access token or Authorization header in the inbound request from outside the system.
Actual/assumed role the client is making the request under extracted from token or application security context.
Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an OAuth 2.0 Access Token or an attribute value in a SAML 2.0 Assertion.
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.
Note: 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 above.
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.
The exception message.
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.
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.
A boolean that is true if the serverless function is executed for the first time (aka cold-start).
A string containing the schedule period as Cron Expression.
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.
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.
Describes the type of the operation that was performed on the data.
The execution ID of the current function execution.
The name of the invoked function.
Note: SHOULD be equal to the faas.name
resource attribute of the invoked function.
The cloud provider of the invoked function.
Note: SHOULD be equal to the cloud.provider
resource attribute of the invoked function.
The cloud region of the invoked function.
Note: SHOULD be equal to the cloud.region
resource attribute of the invoked function.
Type of the trigger on which the function is executed.
The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For).
Note: This is not necessarily the same as net.peer.ip
, which would
identify the network-level peer, which may be a proxy.
This attribute should be set when a source of information different
from the one used for net.peer.ip
, is available even if that other
source just confirms the same value as net.peer.ip
.
Rationale: For net.peer.ip
, one typically does not know if it
comes from a proxy, reverse proxy, or the actual client. Setting
http.client_ip
when it's the same as net.peer.ip
means that
one is at least somewhat confident that the address is not that of
the closest proxy.
Kind of HTTP protocol used.
Note: If net.transport
is not specified, it can be assumed to be IP.TCP
except if http.flavor
is QUIC
, in which case IP.UDP
is assumed.
The value of the HTTP host header. An empty Host header should also be reported, see note.
Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned section of RFC 7230. When the header is not set the attribute MUST NOT be set.
HTTP request method.
The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size.
The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.
The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the Content-Length header. For requests using transport encoding, this should be the compressed size.
The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.
The matched route (path template).
The URI scheme identifying the used protocol.
The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( net.host.name
should be used instead).
Note: http.url
is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.
The full request target as passed in a HTTP request line or equivalent.
Full HTTP request URL in the form scheme://host[:port]/path?query[#fragment]
. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.
Note: http.url
MUST NOT contain credentials passed via URL in form of https://username:password@www.example.com/
. In such case the attribute's value should be https://www.example.com/
.
Value of the HTTP User-Agent header sent by the client.
Compressed size of the message in bytes.
MUST be calculated as two different counters starting from 1
one for sent messages and one for received message.
Note: This way we guarantee that the values will be consistent between different implementations.
Whether this is a received or sent message.
Uncompressed size of the message in bytes.
The identifier for the consumer receiving a message. For Kafka, set it to {messaging.kafka.consumer_group} - {messaging.kafka.client_id}
, if both are present, or only messaging.kafka.consumer_group
. For brokers, such as RabbitMQ and Artemis, set it to the client_id
of the client consuming the message.
The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".
The message destination name. This might be equal to the span name but is required nevertheless.
The kind of message destination.
Client Id for the Consumer or Producer that is handling the message.
Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.
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.
Note: 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.
Partition the message is sent to.
A boolean that is true if the message is a tombstone.
A value used by the messaging system as an identifier for the message, represented as a string.
The compressed size of the message payload in bytes.
The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.
A string identifying the kind of message consumption as defined in the Operation names section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.
The name of the transport protocol.
The version of the transport protocol.
RabbitMQ message routing key.
A string identifying the messaging system.
A boolean that is true if the message destination is temporary.
Connection string.
The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.
The mobile carrier country code.
The mobile carrier network code.
The name of the mobile carrier.
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.
The internet connection type currently being used by the host.
Like net.peer.ip
but for the host IP. Useful in case of a multi-IP host.
Local hostname or similar, see note below.
Like net.peer.port
but for the host port.
Remote address of the peer (dotted decimal for IPv4 or RFC5952 for IPv6).
Remote hostname or similar, see note below.
Remote port number.
Transport protocol used. See note below.
The service.name
of the remote service. SHOULD be equal to the actual service.name
resource attribute of the remote service if any.
The numeric status code of the gRPC request.
error.code
property of response if it is an error response.
error.message
property of response if it is an error response.
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.
Protocol version as in jsonrpc
property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.
The name of the (logical) method being called, must be equal to the $method part in the span name.
Note: 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).
The full (logical) name of the service being called, including its package name, if applicable.
Note: 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).
A string identifying the remoting system.
Current "managed" thread ID (as opposed to OS thread ID).
Current thread name.
The ARN of an ECS cluster.
The Amazon Resource Name (ARN) of an ECS container instance.
The launch type for an ECS task.
The ARN of an ECS task definition.
The task definition family this task definition is a member of.
The revision for this task definition.
The ARN of an EKS cluster.
The Amazon Resource Name(s) (ARN) of the AWS log group(s).
Note: See the log group ARN format documentation.
The name(s) of the AWS log group(s) an application is writing to.
Note: 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.
The ARN(s) of the AWS log stream(s).
Note: 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.
The name(s) of the AWS log stream(s) an application is writing to.
The cloud account ID the resource is assigned to.
Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.
Note: Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
The cloud platform in use.
Note: The prefix of the service SHOULD match the one specified in cloud.provider
.
Name of the cloud provider.
The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example Alibaba Cloud regions, AWS regions, Azure regions, or Google Cloud regions.
Container ID. Usually a UUID, as for example used to identify Docker containers. The UUID might be abbreviated.
Name of the image the container was built on.
Container image tag.
Container name.
The container runtime managing this container.
Name of the deployment environment (aka deployment tier).
A unique identifier representing the device.
Note: 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.
The model identifier for the device.
Note: 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.
The marketing name for the device model.
Note: It's recommended this value represents a human readable version of the device model rather than a machine readable alternative.
The unique ID of the single function that this runtime instance executes.
Note: Depending on the cloud provider, use:
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 invokable with multiple different aliases. GCP: The URI of the resource Azure: The Fully Qualified Resource ID.
On some providers, it may not be possible to determine the full ID at startup,
which is why this field cannot be made required. For example, on AWS the account ID
part of the ARN is not available without calling another AWS API
which may be deemed too slow for a short-running lambda function.
As an alternative, consider setting faas.id
as a span attribute instead.
The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.
Note: * AWS Lambda: Use the (full) log stream name.
The amount of memory available to the serverless function in MiB.
Note: 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.
The name of the single function that this runtime instance executes.
Note: 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).
The immutable version of the function being executed.
Note: Depending on the cloud provider and platform, use:
AWS Lambda: The function version
(an integer represented as a decimal string).
Google Cloud Run: 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.
The CPU architecture the host system is running on.
Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider.
VM image ID. For Cloud, this value is from the provider.
Name of the VM image or OS install the host was instantiated from.
The version string of the VM image as defined in Version Attributes.
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.
Type of host. For Cloud, this must be the machine type.
The name of the cluster.
The name of the Container in a Pod template.
The name of the CronJob.
The UID of the CronJob.
The name of the DaemonSet.
The UID of the DaemonSet.
The name of the Deployment.
The UID of the Deployment.
The name of the Job.
The UID of the Job.
The name of the namespace that the pod is running in.
The name of the Node.
The UID of the Node.
The name of the Pod.
The UID of the Pod.
The name of the ReplicaSet.
The UID of the ReplicaSet.
The name of the StatefulSet.
The UID of the StatefulSet.
Human readable (not intended to be parsed) OS version information, like e.g. reported by ver
or lsb_release -a
commands.
Human readable operating system name.
The operating system type.
The version string of the operating system as defined in Version Attributes.
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
.
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
.
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.
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
.
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
.
The username of the user that owns the process.
Process identifier (PID).
An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.
The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler.
The version of the runtime of this process, as returned by the runtime without modification.
The string ID of the service instance.
Note: 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). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations).
Logical name of the service.
Note: 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
.
A namespace for service.name
.
Note: 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.
The version string of the service API or implementation.
The version string of the auto instrumentation agent, if used.
The language of the telemetry SDK.
The name of the telemetry SDK as defined above.
The version string of the telemetry SDK.
Additional description of the web engine (e.g. detailed version and edition information).
The name of the web engine.
The version of the web engine.
Enum value "app_shutdown" for attribute ATTR_SIGNALR_CONNECTION_STATUS.
Enum value "normal_closure" for attribute ATTR_SIGNALR_CONNECTION_STATUS.
Enum value "timeout" for attribute ATTR_SIGNALR_CONNECTION_STATUS.
Enum value "long_polling" for attribute ATTR_SIGNALR_TRANSPORT.
Enum value "server_sent_events" for attribute ATTR_SIGNALR_TRANSPORT.
Enum value "web_sockets" for attribute ATTR_SIGNALR_TRANSPORT.
Create exported Value Map for SemanticAttributes values
Create exported Value Map for SemanticResourceAttributes values
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
The language of the telemetry SDK.
Enum value "cpp" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "dotnet" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "erlang" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "go" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "java" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "nodejs" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "php" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "python" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "ruby" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "rust" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "swift" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
Enum value "webjs" for attribute ATTR_TELEMETRY_SDK_LANGUAGE.
The constant map of values for TelemetrySdkLanguageValues.
HTTP request headers, <key>
being the normalized HTTP Header name (lowercase), the value being the header values.
HTTP response headers, <key>
being the normalized HTTP Header name (lowercase), the value being the header values.
Generated using TypeDoc
Identifies the Values for AwsEcsLaunchtypeValues enum definition
The launch type for an ECS task.
Use the AWSECSLAUNCHTYPEVALUES_XXXXX constants rather than the AwsEcsLaunchtypeValues.XXXXX for bundle minification.