View Source OpenTelemetry.SemanticConventions.Trace (opentelemetry_semantic_conventions v0.1.0)

Link to this section Summary

Functions

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

The value of the AttributesToGet request parameter

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 in the the GlobalSecondaryIndexUpdates request field

The JSON-serialized value of each item of the GlobalSecondaryIndexes 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 ScanIndexForward request parameter

The value of the ScannedCount response 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)

The event_id uniquely identifies the event

The source identifies the context in which an event happened

The subject of the event in the context of the event producer (identified by source)

The event_type contains a value describing the type of event related to the originating occurrence

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 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 keyspace name (if applicable)

The connection string used to connect to the database. It is recommended to remove embedded credentials

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

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)

The name of the operation being executed, e.g. the MongoDB command name such as findAndModify, or the SQL keyword

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 database name (if applicable)

The database statement being executed

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

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

A string containing the time when the data was accessed in the ISO 8601 format expressed in UTC

The execution ID of the current function execution

The name of the invoked function

The cloud provider of the invoked function

The cloud region of the invoked function

A string containing the function invocation time in the ISO 8601 format expressed in UTC

Type of the trigger which caused this function execution

The GraphQL document being executed

The name of the operation being executed

The type of the operation being executed

The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For)

Kind of HTTP protocol used

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 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 ordinal number of request re-sending attempt

The matched route (path template in the format used by the respective server framework). See note below

The URI scheme identifying the used protocol

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

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

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

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

Name of the RocketMQ producer/consumer group that is handling the message. The client type is identified by the SpanKind

The unique identifier for each client

Model of message consumption. This only applies to consumer spans

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

The secondary classifier of message besides topic

Namespace of RocketMQ resources, resources in different namespaces are individual

A string identifying the messaging system

A boolean that is true if the message destination is temporary

Connection string

Application layer protocol used. The value SHOULD be normalized to lowercase

Version of the application layer protocol used. See note below

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

Name of the local HTTP server that received the request

Port of the local HTTP server that received the request

Name of the database host

Logical remote port number

Protocol address family which is used for communication

Local socket address. Useful in case of a multi-IP host

Local socket port number

Remote socket peer address: IPv4 or IPv6 for internet protocols, path for local communication, etc

Remote socket peer name

Remote socket peer port

Transport protocol used. See note below

Parent-child Reference type

The service.name of the remote service. SHOULD be equal to the actual service.name resource attribute of the remote service if any

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 operation corresponding to the request, as returned by the AWS SDK

The name of the service to which a request is made, as returned by the AWS SDK

The value aws-api

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

Current thread name

The schema url for telemetry resources.

Link to this section Functions

Link to this macro

aws_dynamodb_attribute_definitions()

View Source (macro)
@spec aws_dynamodb_attribute_definitions() :: :"aws.dynamodb.attribute_definitions"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_attribute_definitions()
:"aws.dynamodb.attribute_definitions"
Link to this macro

aws_dynamodb_attributes_to_get()

View Source (macro)
@spec aws_dynamodb_attributes_to_get() :: :"aws.dynamodb.attributes_to_get"

The value of the AttributesToGet request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_attributes_to_get()
:"aws.dynamodb.attributes_to_get"
Link to this macro

aws_dynamodb_consistent_read()

View Source (macro)
@spec aws_dynamodb_consistent_read() :: :"aws.dynamodb.consistent_read"

The value of the ConsistentRead request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_consistent_read()
:"aws.dynamodb.consistent_read"
Link to this macro

aws_dynamodb_consumed_capacity()

View Source (macro)
@spec aws_dynamodb_consumed_capacity() :: :"aws.dynamodb.consumed_capacity"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_consumed_capacity()
:"aws.dynamodb.consumed_capacity"
Link to this macro

aws_dynamodb_count()

View Source (macro)
@spec aws_dynamodb_count() :: :"aws.dynamodb.count"

The value of the Count response parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_count()
:"aws.dynamodb.count"
Link to this macro

aws_dynamodb_exclusive_start_table()

View Source (macro)
@spec aws_dynamodb_exclusive_start_table() :: :"aws.dynamodb.exclusive_start_table"

The value of the ExclusiveStartTableName request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_exclusive_start_table()
:"aws.dynamodb.exclusive_start_table"
Link to this macro

aws_dynamodb_global_secondary_index_updates()

View Source (macro)
@spec aws_dynamodb_global_secondary_index_updates() ::
  :"aws.dynamodb.global_secondary_index_updates"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_global_secondary_index_updates()
:"aws.dynamodb.global_secondary_index_updates"
Link to this macro

aws_dynamodb_global_secondary_indexes()

View Source (macro)
@spec aws_dynamodb_global_secondary_indexes() ::
  :"aws.dynamodb.global_secondary_indexes"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_global_secondary_indexes()
:"aws.dynamodb.global_secondary_indexes"
Link to this macro

aws_dynamodb_index_name()

View Source (macro)
@spec aws_dynamodb_index_name() :: :"aws.dynamodb.index_name"

The value of the IndexName request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_index_name()
:"aws.dynamodb.index_name"
Link to this macro

aws_dynamodb_item_collection_metrics()

View Source (macro)
@spec aws_dynamodb_item_collection_metrics() ::
  :"aws.dynamodb.item_collection_metrics"

The JSON-serialized value of the ItemCollectionMetrics response field

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_item_collection_metrics()
:"aws.dynamodb.item_collection_metrics"
Link to this macro

aws_dynamodb_limit()

View Source (macro)
@spec aws_dynamodb_limit() :: :"aws.dynamodb.limit"

The value of the Limit request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_limit()
:"aws.dynamodb.limit"
Link to this macro

aws_dynamodb_local_secondary_indexes()

View Source (macro)
@spec aws_dynamodb_local_secondary_indexes() ::
  :"aws.dynamodb.local_secondary_indexes"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_local_secondary_indexes()
:"aws.dynamodb.local_secondary_indexes"
Link to this macro

aws_dynamodb_projection()

View Source (macro)
@spec aws_dynamodb_projection() :: :"aws.dynamodb.projection"

The value of the ProjectionExpression request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_projection()
:"aws.dynamodb.projection"
Link to this macro

aws_dynamodb_provisioned_read_capacity()

View Source (macro)
@spec aws_dynamodb_provisioned_read_capacity() ::
  :"aws.dynamodb.provisioned_read_capacity"

The value of the ProvisionedThroughput.ReadCapacityUnits request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_provisioned_read_capacity()
:"aws.dynamodb.provisioned_read_capacity"
Link to this macro

aws_dynamodb_provisioned_write_capacity()

View Source (macro)
@spec aws_dynamodb_provisioned_write_capacity() ::
  :"aws.dynamodb.provisioned_write_capacity"

The value of the ProvisionedThroughput.WriteCapacityUnits request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_provisioned_write_capacity()
:"aws.dynamodb.provisioned_write_capacity"
Link to this macro

aws_dynamodb_scan_forward()

View Source (macro)
@spec aws_dynamodb_scan_forward() :: :"aws.dynamodb.scan_forward"

The value of the ScanIndexForward request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_scan_forward()
:"aws.dynamodb.scan_forward"
Link to this macro

aws_dynamodb_scanned_count()

View Source (macro)
@spec aws_dynamodb_scanned_count() :: :"aws.dynamodb.scanned_count"

The value of the ScannedCount response parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_scanned_count()
:"aws.dynamodb.scanned_count"
Link to this macro

aws_dynamodb_segment()

View Source (macro)
@spec aws_dynamodb_segment() :: :"aws.dynamodb.segment"

The value of the Segment request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_segment()
:"aws.dynamodb.segment"
Link to this macro

aws_dynamodb_select()

View Source (macro)
@spec aws_dynamodb_select() :: :"aws.dynamodb.select"

The value of the Select request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_select()
:"aws.dynamodb.select"
Link to this macro

aws_dynamodb_table_count()

View Source (macro)
@spec aws_dynamodb_table_count() :: :"aws.dynamodb.table_count"

The the number of items in the TableNames response parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_table_count()
:"aws.dynamodb.table_count"
Link to this macro

aws_dynamodb_table_names()

View Source (macro)
@spec aws_dynamodb_table_names() :: :"aws.dynamodb.table_names"

The keys in the RequestItems object field

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_table_names()
:"aws.dynamodb.table_names"
Link to this macro

aws_dynamodb_total_segments()

View Source (macro)
@spec aws_dynamodb_total_segments() :: :"aws.dynamodb.total_segments"

The value of the TotalSegments request parameter

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_dynamodb_total_segments()
:"aws.dynamodb.total_segments"
Link to this macro

aws_lambda_invoked_arn()

View Source (macro)
@spec aws_lambda_invoked_arn() :: :"aws.lambda.invoked_arn"

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

notes

Notes

This may be different from faas.id if an alias is involved

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.aws_lambda_invoked_arn()
:"aws.lambda.invoked_arn"
Link to this macro

cloudevents_event_id()

View Source (macro)
@spec cloudevents_event_id() :: :"cloudevents.event_id"

The event_id uniquely identifies the event

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.cloudevents_event_id()
:"cloudevents.event_id"
Link to this macro

cloudevents_event_source()

View Source (macro)
@spec cloudevents_event_source() :: :"cloudevents.event_source"

The source identifies the context in which an event happened

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.cloudevents_event_source()
:"cloudevents.event_source"
Link to this macro

cloudevents_event_spec_version()

View Source (macro)
@spec cloudevents_event_spec_version() :: :"cloudevents.event_spec_version"

The version of the CloudEvents specification which the event uses

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.cloudevents_event_spec_version()
:"cloudevents.event_spec_version"
Link to this macro

cloudevents_event_subject()

View Source (macro)
@spec cloudevents_event_subject() :: :"cloudevents.event_subject"

The subject of the event in the context of the event producer (identified by source)

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.cloudevents_event_subject()
:"cloudevents.event_subject"
Link to this macro

cloudevents_event_type()

View Source (macro)
@spec cloudevents_event_type() :: :"cloudevents.event_type"

The event_type contains a value describing the type of event related to the originating occurrence

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.cloudevents_event_type()
:"cloudevents.event_type"
Link to this macro

code_filepath()

View Source (macro)
@spec code_filepath() :: :"code.filepath"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.code_filepath()
:"code.filepath"
Link to this macro

code_function()

View Source (macro)
@spec code_function() :: :"code.function"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.code_function()
:"code.function"
@spec code_lineno() :: :"code.lineno"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.code_lineno()
:"code.lineno"
Link to this macro

code_namespace()

View Source (macro)
@spec code_namespace() :: :"code.namespace"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.code_namespace()
:"code.namespace"
Link to this macro

db_cassandra_consistency_level()

View Source (macro)
@spec db_cassandra_consistency_level() :: :"db.cassandra.consistency_level"

The consistency level of the query. Based on consistency values from CQL

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_consistency_level()
:"db.cassandra.consistency_level"
Link to this macro

db_cassandra_coordinator_dc()

View Source (macro)
@spec db_cassandra_coordinator_dc() :: :"db.cassandra.coordinator.dc"

The data center of the coordinating node for a query

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_coordinator_dc()
:"db.cassandra.coordinator.dc"
Link to this macro

db_cassandra_coordinator_id()

View Source (macro)
@spec db_cassandra_coordinator_id() :: :"db.cassandra.coordinator.id"

The ID of the coordinating node for a query

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_coordinator_id()
:"db.cassandra.coordinator.id"
Link to this macro

db_cassandra_idempotence()

View Source (macro)
@spec db_cassandra_idempotence() :: :"db.cassandra.idempotence"

Whether or not the query is idempotent

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_idempotence()
:"db.cassandra.idempotence"
Link to this macro

db_cassandra_page_size()

View Source (macro)
@spec db_cassandra_page_size() :: :"db.cassandra.page_size"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_page_size()
:"db.cassandra.page_size"
Link to this macro

db_cassandra_speculative_execution_count()

View Source (macro)
@spec db_cassandra_speculative_execution_count() ::
  :"db.cassandra.speculative_execution_count"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_speculative_execution_count()
:"db.cassandra.speculative_execution_count"
Link to this macro

db_cassandra_table()

View Source (macro)
@spec db_cassandra_table() :: :"db.cassandra.table"

The name of the primary table that the operation is acting upon, including the keyspace name (if applicable)

notes

Notes

This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of 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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_cassandra_table()
:"db.cassandra.table"
Link to this macro

db_connection_string()

View Source (macro)
@spec db_connection_string() :: :"db.connection_string"

The connection string used to connect to the database. It is recommended to remove embedded credentials

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_connection_string()
:"db.connection_string"
Link to this macro

db_jdbc_driver_classname()

View Source (macro)
@spec db_jdbc_driver_classname() :: :"db.jdbc.driver_classname"

The fully-qualified class name of the Java Database Connectivity (JDBC) driver used to connect

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_jdbc_driver_classname()
:"db.jdbc.driver_classname"
Link to this macro

db_mongodb_collection()

View Source (macro)
@spec db_mongodb_collection() :: :"db.mongodb.collection"

The collection being accessed within the database stated in db.name

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_mongodb_collection()
:"db.mongodb.collection"
Link to this macro

db_mssql_instance_name()

View Source (macro)
@spec db_mssql_instance_name() :: :"db.mssql.instance_name"

The Microsoft SQL Server instance name connecting to. This name is used to determine the port of a named instance

notes

Notes

If setting a db.mssql.instance_name, net.peer.port is no longer required (but still recommended if non-standard)

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_mssql_instance_name()
:"db.mssql.instance_name"
@spec db_name() :: :"db.name"

This attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails)

notes

Notes

In some SQL databases, the database name to be used is called "schema name". In case there are multiple layers that could be considered for database name (e.g. Oracle instance name and schema name), the database name to be used is the more specific layer (e.g. Oracle schema name)

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_name()
:"db.name"
Link to this macro

db_operation()

View Source (macro)
@spec db_operation() :: :"db.operation"

The name of the operation being executed, e.g. the MongoDB command name such as findAndModify, or the SQL keyword

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_operation()
:"db.operation"
Link to this macro

db_redis_database_index()

View Source (macro)
@spec db_redis_database_index() :: :"db.redis.database_index"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_redis_database_index()
:"db.redis.database_index"
Link to this macro

db_sql_table()

View Source (macro)
@spec db_sql_table() :: :"db.sql.table"

The name of the primary table that the operation is acting upon, including the database name (if applicable)

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_sql_table()
:"db.sql.table"
Link to this macro

db_statement()

View Source (macro)
@spec db_statement() :: :"db.statement"

The database statement being executed

notes

Notes

The value may be sanitized to exclude sensitive information

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_statement()
:"db.statement"
@spec db_system() :: :"db.system"

An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_system()
:"db.system"
@spec db_user() :: :"db.user"

Username for accessing the database

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.db_user()
:"db.user"
@spec enduser_id() :: :"enduser.id"

Username or client_id extracted from the access token or Authorization header in the inbound request from outside the system

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.enduser_id()
:"enduser.id"
Link to this macro

enduser_role()

View Source (macro)
@spec enduser_role() :: :"enduser.role"

Actual/assumed role the client is making the request under extracted from token or application security context

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.enduser_role()
:"enduser.role"
Link to this macro

enduser_scope()

View Source (macro)
@spec enduser_scope() :: :"enduser.scope"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.enduser_scope()
:"enduser.scope"
Link to this macro

exception_escaped()

View Source (macro)
@spec exception_escaped() :: :"exception.escaped"

SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.exception_escaped()
:"exception.escaped"
Link to this macro

exception_message()

View Source (macro)
@spec exception_message() :: :"exception.message"

The exception message

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.exception_message()
:"exception.message"
Link to this macro

exception_stacktrace()

View Source (macro)
@spec exception_stacktrace() :: :"exception.stacktrace"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.exception_stacktrace()
:"exception.stacktrace"
Link to this macro

exception_type()

View Source (macro)
@spec exception_type() :: :"exception.type"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.exception_type()
:"exception.type"
Link to this macro

faas_coldstart()

View Source (macro)
@spec faas_coldstart() :: :"faas.coldstart"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_coldstart()
:"faas.coldstart"
@spec faas_cron() :: :"faas.cron"

A string containing the schedule period as Cron Expression

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_cron()
:"faas.cron"
Link to this macro

faas_document_collection()

View Source (macro)
@spec faas_document_collection() :: :"faas.document.collection"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_document_collection()
:"faas.document.collection"
Link to this macro

faas_document_name()

View Source (macro)
@spec faas_document_name() :: :"faas.document.name"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_document_name()
:"faas.document.name"
Link to this macro

faas_document_operation()

View Source (macro)
@spec faas_document_operation() :: :"faas.document.operation"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_document_operation()
:"faas.document.operation"
Link to this macro

faas_document_time()

View Source (macro)
@spec faas_document_time() :: :"faas.document.time"

A string containing the time when the data was accessed in the ISO 8601 format expressed in UTC

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_document_time()
:"faas.document.time"
Link to this macro

faas_execution()

View Source (macro)
@spec faas_execution() :: :"faas.execution"

The execution ID of the current function execution

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_execution()
:"faas.execution"
Link to this macro

faas_invoked_name()

View Source (macro)
@spec faas_invoked_name() :: :"faas.invoked_name"

The name of the invoked function

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_invoked_name()
:"faas.invoked_name"
Link to this macro

faas_invoked_provider()

View Source (macro)
@spec faas_invoked_provider() :: :"faas.invoked_provider"

The cloud provider of the invoked function

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_invoked_provider()
:"faas.invoked_provider"
Link to this macro

faas_invoked_region()

View Source (macro)
@spec faas_invoked_region() :: :"faas.invoked_region"

The cloud region of the invoked function

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_invoked_region()
:"faas.invoked_region"
@spec faas_time() :: :"faas.time"

A string containing the function invocation time in the ISO 8601 format expressed in UTC

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_time()
:"faas.time"
Link to this macro

faas_trigger()

View Source (macro)
@spec faas_trigger() :: :"faas.trigger"

Type of the trigger which caused this function execution

notes

Notes

For the server/consumer span on the incoming side, faas.trigger MUST be set.

Clients invoking FaaS instances usually cannot set faas.trigger, since they would typically need to look in the payload to determine the event type. If clients set it, it should be the same as the trigger that corresponding incoming would have (i.e., this has nothing to do with the underlying transport used to make the API call to invoke the lambda, which is often HTTP)

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.faas_trigger()
:"faas.trigger"
Link to this macro

graphql_document()

View Source (macro)
@spec graphql_document() :: :"graphql.document"

The GraphQL document being executed

notes

Notes

The value may be sanitized to exclude sensitive information

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.graphql_document()
:"graphql.document"
Link to this macro

graphql_operation_name()

View Source (macro)
@spec graphql_operation_name() :: :"graphql.operation.name"

The name of the operation being executed

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.graphql_operation_name()
:"graphql.operation.name"
Link to this macro

graphql_operation_type()

View Source (macro)
@spec graphql_operation_type() :: :"graphql.operation.type"

The type of the operation being executed

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.graphql_operation_type()
:"graphql.operation.type"
Link to this macro

http_client_ip()

View Source (macro)
@spec http_client_ip() :: :"http.client_ip"

The IP address of the original client behind all proxies, if known (e.g. from X-Forwarded-For)

notes

Notes

This is not necessarily the same as net.sock.peer.addr, 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.sock.peer.addr, is available even if that other source just confirms the same value as net.sock.peer.addr. Rationale: For net.sock.peer.addr, 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.sock.peer.addr means that one is at least somewhat confident that the address is not that of the closest proxy

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_client_ip()
:"http.client_ip"
@spec http_flavor() :: :"http.flavor"

Kind of HTTP protocol used

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_flavor()
:"http.flavor"
@spec http_method() :: :"http.method"

HTTP request method

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_method()
:"http.method"
Link to this macro

http_request_content_length()

View Source (macro)
@spec http_request_content_length() :: :"http.request_content_length"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_request_content_length()
:"http.request_content_length"
Link to this macro

http_response_content_length()

View Source (macro)
@spec http_response_content_length() :: :"http.response_content_length"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_response_content_length()
:"http.response_content_length"
Link to this macro

http_retry_count()

View Source (macro)
@spec http_retry_count() :: :"http.retry_count"

The ordinal number of request re-sending attempt

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_retry_count()
:"http.retry_count"
@spec http_route() :: :"http.route"

The matched route (path template in the format used by the respective server framework). See note below

notes

Notes

'http.route' MUST NOT be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_route()
:"http.route"
@spec http_scheme() :: :"http.scheme"

The URI scheme identifying the used protocol

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_scheme()
:"http.scheme"
Link to this macro

http_status_code()

View Source (macro)
@spec http_status_code() :: :"http.status_code"

HTTP response status code

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_status_code()
:"http.status_code"
@spec http_target() :: :"http.target"

The full request target as passed in a HTTP request line or equivalent

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_target()
:"http.target"
@spec http_url() :: :"http.url"

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

notes

Notes

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/

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_url()
:"http.url"
Link to this macro

http_user_agent()

View Source (macro)
@spec http_user_agent() :: :"http.user_agent"

Value of the HTTP User-Agent header sent by the client

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.http_user_agent()
:"http.user_agent"
Link to this macro

message_compressed_size()

View Source (macro)
@spec message_compressed_size() :: :"message.compressed_size"

Compressed size of the message in bytes

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.message_compressed_size()
:"message.compressed_size"
@spec message_id() :: :"message.id"

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

notes

Notes

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.message_id()
:"message.id"
Link to this macro

message_type()

View Source (macro)
@spec message_type() :: :"message.type"

Whether this is a received or sent message

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.message_type()
:"message.type"
Link to this macro

message_uncompressed_size()

View Source (macro)
@spec message_uncompressed_size() :: :"message.uncompressed_size"

Uncompressed size of the message in bytes

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.message_uncompressed_size()
:"message.uncompressed_size"
Link to this macro

messaging_consumer_id()

View Source (macro)
@spec messaging_consumer_id() :: :"messaging.consumer_id"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_consumer_id()
:"messaging.consumer_id"
Link to this macro

messaging_conversation_id()

View Source (macro)
@spec messaging_conversation_id() :: :"messaging.conversation_id"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_conversation_id()
:"messaging.conversation_id"
Link to this macro

messaging_destination()

View Source (macro)
@spec messaging_destination() :: :"messaging.destination"

The message destination name. This might be equal to the span name but is required nevertheless

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_destination()
:"messaging.destination"
Link to this macro

messaging_destination_kind()

View Source (macro)
@spec messaging_destination_kind() :: :"messaging.destination_kind"

The kind of message destination

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_destination_kind()
:"messaging.destination_kind"
Link to this macro

messaging_kafka_client_id()

View Source (macro)
@spec messaging_kafka_client_id() :: :"messaging.kafka.client_id"

Client Id for the Consumer or Producer that is handling the message

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_kafka_client_id()
:"messaging.kafka.client_id"
Link to this macro

messaging_kafka_consumer_group()

View Source (macro)
@spec messaging_kafka_consumer_group() :: :"messaging.kafka.consumer_group"

Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_kafka_consumer_group()
:"messaging.kafka.consumer_group"
Link to this macro

messaging_kafka_message_key()

View Source (macro)
@spec messaging_kafka_message_key() :: :"messaging.kafka.message_key"

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

notes

Notes

If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_kafka_message_key()
:"messaging.kafka.message_key"
Link to this macro

messaging_kafka_partition()

View Source (macro)
@spec messaging_kafka_partition() :: :"messaging.kafka.partition"

Partition the message is sent to

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_kafka_partition()
:"messaging.kafka.partition"
Link to this macro

messaging_kafka_tombstone()

View Source (macro)
@spec messaging_kafka_tombstone() :: :"messaging.kafka.tombstone"

A boolean that is true if the message is a tombstone

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_kafka_tombstone()
:"messaging.kafka.tombstone"
Link to this macro

messaging_message_id()

View Source (macro)
@spec messaging_message_id() :: :"messaging.message_id"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_message_id()
:"messaging.message_id"
Link to this macro

messaging_message_payload_compressed_size_bytes()

View Source (macro)
@spec messaging_message_payload_compressed_size_bytes() ::
  :"messaging.message_payload_compressed_size_bytes"

The compressed size of the message payload in bytes

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_message_payload_compressed_size_bytes()
:"messaging.message_payload_compressed_size_bytes"
Link to this macro

messaging_message_payload_size_bytes()

View Source (macro)
@spec messaging_message_payload_size_bytes() ::
  :"messaging.message_payload_size_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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_message_payload_size_bytes()
:"messaging.message_payload_size_bytes"
Link to this macro

messaging_operation()

View Source (macro)
@spec messaging_operation() :: :"messaging.operation"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_operation()
:"messaging.operation"
Link to this macro

messaging_protocol()

View Source (macro)
@spec messaging_protocol() :: :"messaging.protocol"

The name of the transport protocol

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_protocol()
:"messaging.protocol"
Link to this macro

messaging_protocol_version()

View Source (macro)
@spec messaging_protocol_version() :: :"messaging.protocol_version"

The version of the transport protocol

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_protocol_version()
:"messaging.protocol_version"
Link to this macro

messaging_rabbitmq_routing_key()

View Source (macro)
@spec messaging_rabbitmq_routing_key() :: :"messaging.rabbitmq.routing_key"

RabbitMQ message routing key

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rabbitmq_routing_key()
:"messaging.rabbitmq.routing_key"
Link to this macro

messaging_rocketmq_client_group()

View Source (macro)
@spec messaging_rocketmq_client_group() :: :"messaging.rocketmq.client_group"

Name of the RocketMQ producer/consumer group that is handling the message. The client type is identified by the SpanKind

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_client_group()
:"messaging.rocketmq.client_group"
Link to this macro

messaging_rocketmq_client_id()

View Source (macro)
@spec messaging_rocketmq_client_id() :: :"messaging.rocketmq.client_id"

The unique identifier for each client

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_client_id()
:"messaging.rocketmq.client_id"
Link to this macro

messaging_rocketmq_consumption_model()

View Source (macro)
@spec messaging_rocketmq_consumption_model() ::
  :"messaging.rocketmq.consumption_model"

Model of message consumption. This only applies to consumer spans

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_consumption_model()
:"messaging.rocketmq.consumption_model"
Link to this macro

messaging_rocketmq_message_keys()

View Source (macro)
@spec messaging_rocketmq_message_keys() :: :"messaging.rocketmq.message_keys"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_message_keys()
:"messaging.rocketmq.message_keys"
Link to this macro

messaging_rocketmq_message_tag()

View Source (macro)
@spec messaging_rocketmq_message_tag() :: :"messaging.rocketmq.message_tag"

The secondary classifier of message besides topic

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_message_tag()
:"messaging.rocketmq.message_tag"
Link to this macro

messaging_rocketmq_message_type()

View Source (macro)
@spec messaging_rocketmq_message_type() :: :"messaging.rocketmq.message_type"

Type of message

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_message_type()
:"messaging.rocketmq.message_type"
Link to this macro

messaging_rocketmq_namespace()

View Source (macro)
@spec messaging_rocketmq_namespace() :: :"messaging.rocketmq.namespace"

Namespace of RocketMQ resources, resources in different namespaces are individual

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_rocketmq_namespace()
:"messaging.rocketmq.namespace"
Link to this macro

messaging_system()

View Source (macro)
@spec messaging_system() :: :"messaging.system"

A string identifying the messaging system

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_system()
:"messaging.system"
Link to this macro

messaging_temp_destination()

View Source (macro)
@spec messaging_temp_destination() :: :"messaging.temp_destination"

A boolean that is true if the message destination is temporary

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_temp_destination()
:"messaging.temp_destination"
Link to this macro

messaging_url()

View Source (macro)
@spec messaging_url() :: :"messaging.url"

Connection string

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.messaging_url()
:"messaging.url"
Link to this macro

net_app_protocol_name()

View Source (macro)
@spec net_app_protocol_name() :: :"net.app.protocol.name"

Application layer protocol used. The value SHOULD be normalized to lowercase

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_app_protocol_name()
:"net.app.protocol.name"
Link to this macro

net_app_protocol_version()

View Source (macro)
@spec net_app_protocol_version() :: :"net.app.protocol.version"

Version of the application layer protocol used. See note below

notes

Notes

net.app.protocol.version refers to the version of the protocol used and might be different from the protocol client's version. If the HTTP client used has a version of 0.27.2, but sends HTTP version 1.1, this attribute should be set to 1.1

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_app_protocol_version()
:"net.app.protocol.version"
Link to this macro

net_host_carrier_icc()

View Source (macro)
@spec net_host_carrier_icc() :: :"net.host.carrier.icc"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_carrier_icc()
:"net.host.carrier.icc"
Link to this macro

net_host_carrier_mcc()

View Source (macro)
@spec net_host_carrier_mcc() :: :"net.host.carrier.mcc"

The mobile carrier country code

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_carrier_mcc()
:"net.host.carrier.mcc"
Link to this macro

net_host_carrier_mnc()

View Source (macro)
@spec net_host_carrier_mnc() :: :"net.host.carrier.mnc"

The mobile carrier network code

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_carrier_mnc()
:"net.host.carrier.mnc"
Link to this macro

net_host_carrier_name()

View Source (macro)
@spec net_host_carrier_name() :: :"net.host.carrier.name"

The name of the mobile carrier

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_carrier_name()
:"net.host.carrier.name"
Link to this macro

net_host_connection_subtype()

View Source (macro)
@spec net_host_connection_subtype() :: :"net.host.connection.subtype"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_connection_subtype()
:"net.host.connection.subtype"
Link to this macro

net_host_connection_type()

View Source (macro)
@spec net_host_connection_type() :: :"net.host.connection.type"

The internet connection type currently being used by the host

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_connection_type()
:"net.host.connection.type"
Link to this macro

net_host_name()

View Source (macro)
@spec net_host_name() :: :"net.host.name"

Name of the local HTTP server that received the request

notes

Notes

Determined by using the first of the following that applies

  • The primary server name of the matched virtual host. MUST only include host identifier.
  • Host identifier of the request target if it's sent in absolute-form.
  • Host identifier of the Host header

SHOULD NOT be set if only IP address is available and capturing name would require a reverse DNS lookup

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_host_name()
:"net.host.name"
Link to this macro

net_host_port()

View Source (macro)
@spec net_host_port() :: :"net.host.port"

Port of the local HTTP server that received the request

notes

Notes

Determined by using the first of the following that applies

  • Port identifier of the primary server host of the matched virtual host.

  • Port identifier of the request target if it's sent in absolute-form.

  • Port identifier of the Host header

    iex> require OpenTelemetry.SemanticConventions.Trace ...> OpenTelemetry.SemanticConventions.Trace.net_host_port() :"net.host.port"

Link to this macro

net_peer_name()

View Source (macro)
@spec net_peer_name() :: :"net.peer.name"

Name of the database host

notes

Notes

net.peer.name SHOULD NOT be set if capturing it would require an extra DNS lookup

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_peer_name()
:"net.peer.name"
Link to this macro

net_peer_port()

View Source (macro)
@spec net_peer_port() :: :"net.peer.port"

Logical remote port number

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_peer_port()
:"net.peer.port"
Link to this macro

net_sock_family()

View Source (macro)
@spec net_sock_family() :: :"net.sock.family"

Protocol address family which is used for communication

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_sock_family()
:"net.sock.family"
Link to this macro

net_sock_host_addr()

View Source (macro)
@spec net_sock_host_addr() :: :"net.sock.host.addr"

Local socket address. Useful in case of a multi-IP host

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_sock_host_addr()
:"net.sock.host.addr"
Link to this macro

net_sock_host_port()

View Source (macro)
@spec net_sock_host_port() :: :"net.sock.host.port"

Local socket port number

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_sock_host_port()
:"net.sock.host.port"
Link to this macro

net_sock_peer_addr()

View Source (macro)
@spec net_sock_peer_addr() :: :"net.sock.peer.addr"

Remote socket peer address: IPv4 or IPv6 for internet protocols, path for local communication, etc

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_sock_peer_addr()
:"net.sock.peer.addr"
Link to this macro

net_sock_peer_name()

View Source (macro)
@spec net_sock_peer_name() :: :"net.sock.peer.name"

Remote socket peer name

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_sock_peer_name()
:"net.sock.peer.name"
Link to this macro

net_sock_peer_port()

View Source (macro)
@spec net_sock_peer_port() :: :"net.sock.peer.port"

Remote socket peer port

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_sock_peer_port()
:"net.sock.peer.port"
Link to this macro

net_transport()

View Source (macro)
@spec net_transport() :: :"net.transport"

Transport protocol used. See note below

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.net_transport()
:"net.transport"
Link to this macro

opentracing_ref_type()

View Source (macro)
@spec opentracing_ref_type() :: :"opentracing.ref_type"

Parent-child Reference type

notes

Notes

The causal relationship between a child Span and a parent Span

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.opentracing_ref_type()
:"opentracing.ref_type"
Link to this macro

peer_service()

View Source (macro)
@spec peer_service() :: :"peer.service"

The service.name of the remote service. SHOULD be equal to the actual service.name resource attribute of the remote service if any

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.peer_service()
:"peer.service"
Link to this macro

rpc_grpc_status_code()

View Source (macro)
@spec rpc_grpc_status_code() :: :"rpc.grpc.status_code"

The numeric status code of the gRPC request

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_grpc_status_code()
:"rpc.grpc.status_code"
Link to this macro

rpc_jsonrpc_error_code()

View Source (macro)
@spec rpc_jsonrpc_error_code() :: :"rpc.jsonrpc.error_code"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_jsonrpc_error_code()
:"rpc.jsonrpc.error_code"
Link to this macro

rpc_jsonrpc_error_message()

View Source (macro)
@spec rpc_jsonrpc_error_message() :: :"rpc.jsonrpc.error_message"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_jsonrpc_error_message()
:"rpc.jsonrpc.error_message"
Link to this macro

rpc_jsonrpc_request_id()

View Source (macro)
@spec rpc_jsonrpc_request_id() :: :"rpc.jsonrpc.request_id"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_jsonrpc_request_id()
:"rpc.jsonrpc.request_id"
Link to this macro

rpc_jsonrpc_version()

View Source (macro)
@spec rpc_jsonrpc_version() :: :"rpc.jsonrpc.version"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_jsonrpc_version()
:"rpc.jsonrpc.version"
@spec rpc_method() :: :"rpc.method"

The name of the operation corresponding to the request, as returned by the AWS SDK

notes

Notes

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)

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_method()
:"rpc.method"
@spec rpc_service() :: :"rpc.service"

The name of the service to which a request is made, as returned by the AWS SDK

notes

Notes

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)

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_service()
:"rpc.service"
@spec rpc_system() :: :"rpc.system"

The value aws-api

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.rpc_system()
:"rpc.system"
@spec thread_id() :: :"thread.id"

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

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.thread_id()
:"thread.id"
@spec thread_name() :: :"thread.name"

Current thread name

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.thread_name()
:"thread.name"
Link to this macro

trace_schema_url()

View Source (macro)
@spec trace_schema_url() :: String.t()

The schema url for telemetry resources.

iex> require OpenTelemetry.SemanticConventions.Trace
...> OpenTelemetry.SemanticConventions.Trace.trace_schema_url()
"https://opentelemetry.io/schemas/1.13.0"