fargate.
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).
Alibaba Cloud.
Amazon Web Services.
Microsoft Azure.
Google Cloud Platform.
all.
any.
each_quorum.
local_one.
local_quorum.
local_serial.
one.
quorum.
serial.
three.
two.
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.
When an object is deleted.
When an object is modified.
When a new object is created.
Alibaba Cloud.
Amazon Web Services.
Microsoft Azure.
Google Cloud Platform.
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.
AMD64.
ARM32.
ARM64.
Itanium.
32-bit PowerPC.
64-bit PowerPC.
32-bit x86.
HTTP 1.0.
HTTP 1.1.
HTTP 2.
QUIC protocol.
SPDY protocol.
received.
sent.
A message sent to a queue.
A message sent to a topic.
process.
receive.
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.
cell.
unavailable.
unknown.
wifi.
wired.
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.
AIX (Advanced Interactive eXecutive).
Apple Darwin.
DragonFly BSD.
FreeBSD.
HP-UX (Hewlett Packard Unix).
Linux.
NetBSD.
OpenBSD.
Oracle Solaris.
Microsoft Windows.
IBM z/OS.
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.
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 SpanAttributes.
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 SpanAttributes.
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.
cpp.
dotnet.
erlang.
go.
java.
nodejs.
php.
python.
ruby.
webjs.
Generated using TypeDoc
ec2.